티스토리 뷰
STM32 STM32CubeMX로 먼저 설정 했다고 가정해서 만든 코드 테스트입니다.
인터럽트 방식인데
먼저 Rxbuffer에 값을 읽어서 넣은 뒤, 그 값을 printf을 이용해 터미널에 표시해주는 방식입니다.
#include "main.h"
#include "stm32f1xx_hal.h"
UART_HandleTypeDef huart1; // UART핸들 타입 구조체 선언
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
uint8_t Rxbuffer1[10] = ""; // 버퍼 사이즈 10을 기준으로 데이터를 받아드리는 메모리 영역
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
while (1)
{
HAL_UART_Receive_IT(&huart1, (uint8_t*)Rxbuffer1 ,9); // UART 1에서 데이터 9개를 Rxbuffer에 저장하게 됨
for(int i=0; i<9;i++)
{
if(i==0){printf("U1: ");}
printf("%c",Rxbuffer1[i]);
if(i==8){printf("\n");}
HAL_Delay(10); // 약간의 딜레이를 줌
}
HAL_Delay(100);
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); // 데이터 수신마다 불 점등 반복
}
}
'mcu > stm32' 카테고리의 다른 글
STM32F103C8 - 레지스터를 이용한 LED 점등 (0) | 2018.03.01 |
---|---|
STM32F103C8 보드 테스트 해보다 (0) | 2018.03.01 |