* 목표 : USART6을 이용하여 "hello world" 송신
USART6은 stm32f746-disco 보드에서 사용자가 핀을 사용할 수 있는 유일한 방법이다.
datasheet를 참고하면
TX / D1 (PC6) = USART6_TX
RX / D0 (PC7) = USART6_RX
1. 보드 설정
- USART6 활성화
- FREERTOS task 생성
touchGFX와 함께 사용하기 때문에 uart 통신을 하는 task하나를 따로 하나 더 만들어서 사용하였다.
2. 코드 작성
printf를 사용하기 위해서는 추가해야할 2가지 코드가 있다.
1)
#include <stdio.h>
2)
/* USER CODE BEGIN 0 */
#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/**
* @brief Retargets the C library printf function to the USART.
* @param None
* @retval None
*/
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
/* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
if(ch == '\n')
{
HAL_UART_Transmit(&huart6, (uint8_t *) "\r", 1, 0xFFFF);
}
HAL_UART_Transmit(&huart6, (uint8_t *) &ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END 0 */
=> 빨간 부분은 사용하는 USART 번호에 맞게 수정하면 됨
'STM32 > touchGFX_STM32' 카테고리의 다른 글
[KEIL][TIP!] keil IDE 한글 깨짐 해결법 (0) | 2020.09.11 |
---|---|
[STM32F746] RS-232 (0) | 2020.09.08 |
[touchGFX] Multi-Language (0) | 2020.09.03 |
[stm32F746] PWM (0) | 2020.09.01 |
[stm32F746] printf 사용 시 추가해야할 코드 (0) | 2020.09.01 |