반응형
stm32f429 는 터치 스크린이 포함되어 있습니다.
스텝 으로 나눠서 차근차근 사용해보겠습니다.
도움이 되셨다면 댓글좀..달아주세요 ㅠㅠ 너므 외로워...😢😢😢😢
step1
여기 까지가 LCD 설정 입니다.
LTDC 로 핀설정 하고 SPI5로 LCD와 통신을 하게 됩니다.
I2C3는 터치 스크린 i2c 통신입니다.
USART1는 모니터링을 위해 추가하겠습니다.
크럭설정입니다.
구 버전 사용시
더보기
Project Manager 에서 버전을 1.23 으로 바꿔주세요.
신 버전 사용시
새로운 버전으로 하면 arm7 버그가 나더라구요.
https://hnydiy.tistory.com/217
step2
구 버전 사용 시
더보기
바로 생성 했을 때 입니다.
위에 EXTI 주석 처리와 exti.c를 삭제해주세요.
이 파일을
이렇게 오픈 폴더 열어서 Drivers 안에다가 넣습니다.
요로케 BSP 그룹을 만들어서 .c를 넣어주세요.
프로젝트 설정에서 폴더 위치를 추가해주세요.
step3
main.h 에
#include "stm32f429i_discovery_lcd.h"
#include "stm32f429i_discovery_ts.h"
#include <stdio.h>
추가해주세요
int fputc(int ch, FILE *f)
{
uint8_t temp[1]={ch};
HAL_UART_Transmit(&huart1, temp, 1, 2);
return(ch);
}
uint16_t frame_buffer[76800];
이 코드를 추가해주세요.
int main(void)
{
/* USER CODE BEGIN 1 */
TS_StateTypeDef TS_State;
static uint32_t x = 0, y = 0;
uint8_t buffer_str[50]={0,};
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA2D_Init();
MX_I2C3_Init();
MX_LTDC_Init();
MX_SPI5_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
printf("test\r\n");
BSP_LCD_Init();
BSP_LCD_LayerDefaultInit(LCD_BACKGROUND_LAYER, (uint32_t)frame_buffer);
BSP_LCD_SelectLayer(LCD_BACKGROUND_LAYER);
BSP_LCD_DisplayOn();
BSP_LCD_Clear(LCD_COLOR_WHITE);
BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
BSP_LCD_SetBackColor(RGB_LCD_COLOR_WHITE);
BSP_LCD_SetTextColor(RGB_LCD_COLOR_BLACK);
BSP_LCD_SetFont(&LCD_20_FONT);
BSP_LCD_DisplayStringAt(0,150, (uint8_t*)"TEST1", CENTER_MODE);
BSP_LCD_SetFont(&LCD_16_FONT);
BSP_LCD_DisplayStringAt(0,180, (uint8_t*)"TEST2", CENTER_MODE);
BSP_LCD_SetFont(&LCD_DEFAULT_FONT);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
BSP_TS_GetState(&TS_State);
if ((TS_State.TouchDetected)){
x = TS_State.X;
y = TS_State.Y;
sprintf(buffer_str, "X=%d ",x);
BSP_LCD_DisplayStringAt(0,50, (uint8_t*)buffer_str, LEFT_MODE);
memset(buffer_str,0,50);
sprintf(buffer_str, "Y=%d ",y);
BSP_LCD_DisplayStringAt(0,100, (uint8_t*)buffer_str, LEFT_MODE);
memset(buffer_str,0,50);
}
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
결과
반응형
'공부 > STM32F4' 카테고리의 다른 글
17. [STM32F429] A4988 스텝모터 구동 (1) | 2020.06.01 |
---|---|
mpu_arm7.h 에서 에러 (0) | 2020.05.22 |
[오류]stm32f429i-disc1 외부전원 사용 시 문제점 (0) | 2020.01.29 |
[TouchGFX]STM32F4 와 TouchGFX 시작 (0) | 2019.08.08 |
15.[STM32F429] Timer CH1N CH2N CH3N 사용하기 (0) | 2019.08.02 |