티스토리 뷰

stm32 & rtos

[stm32] uart 입출력 (polling)

별의 별 2022. 7. 8. 16:05

[stm32] uart 입출력


stm32h743vit6 사용합니다.

https://newbie-developer.tistory.com/165?category=1245815 

 

STM32 CubeIDE , HAL을 사용한 Uart/Usart 공부(1) Rx Interrupt

★ CubeIDE의 Code Gen 기능과 HAL 라이브러리를 사용하여 Uart 메세지를 인터럽트 형태로 받아보자 참고로 Usart의 s는 Synchronous 를 의미한다. 우리가 사용하는 MCU에서 UART 1,2,3은 Synchronous가 지원되는..

newbie-developer.tistory.com


1. uart연결을 해준다.

connectivity를 눌러 uart 4를 사용, mode를 Asynchronous로 한다.

uart rx,tx핀을 설정해준다. 데이터 시트를 활용해서 잘 찾아줄것!

2. LED도 연결해주기

uart연결한 거처럼 led gpio찾아서 설정!

 

3. system core->RCC-> HSE를 crystal로 맞춘후 clock configuration을 chip에 맞게 설정합니다.

4. ctrl+ s로 코드 생성하기

5. main 밖에 변수 선언

/* USER CODE BEGIN 0 */

uint8_t received;
HAL_StatusTypeDef rcvStat;

/* USER CODE END 0 */

6. main  while문 안에 uart 통신 코드

 /* USER CODE BEGIN WHILE */
  while (1)
  {
	  rcvStat = HAL_UART_Receive(&huart4, &received, 1, 10);
	  if(rcvStat == HAL_OK)
	  {
		  HAL_UART_Transmit(&huart4, &received, 1, 10);
	  	  HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
	  }
	  HAL_Delay(10);

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

항상 코드를 적을때 USER CODE BEGIN안에 적어야 안없어집니다!

ctrl +b 빌드 ->초록버튼하면 완료!

 

 

 

trea term 이나 hypertrm 을 써서 키보드 치면 칠 때마다 led에 불이 들어올 것입니다~!

 

'stm32 & rtos' 카테고리의 다른 글

[stm32] rtos+lwip  (0) 2022.07.28
[ stm32] uart 통신  (0) 2022.07.18
[stm32] rtos + lwip  (0) 2022.07.15
관련 url  (0) 2022.07.14
[stm32] rtos uart semaphore (interrupt)  (0) 2022.07.12
댓글