공부방/ARM_STM32 노진호교수님_필기

240426 Serial Communication(UART, I2C, SPI ) & BUFF

맘스터치보단파파이스 2024. 4. 26. 15:06

하드웨어적으로 봤을 때 차이점

BaudRate : 얼마나 많은 데이터묶음을 전송하는가. 

9600bps bit/sec --> BPS : Bit Per Second xxx --> 1bit을 보내기 위해 1/9600 sec 만큼의 시간이 필요하다.

STOP bit : LOW--> HIGH 신호 유지

Parity : Even or Odd

Parity : 전송쪽에서 같이 보내는 신호. 1비트 오류 신호 검출

UART2 : USB PORT 방향으로 연결되는 신호

통신을 위한 코드

1 or 2 수신에 상관없이 PA5 LED를 깜빡이고 싶은데 코드에 블락킹되어 1 or 2 수신 될 때만 LED가 깜빡거리는 신호가 되었다. 

==> 수신을 인터럽트 방식으로 하면 해결이 된다.

인터럽트 관련 코드들이 모여있는 곳

Vector Table에 선언되어 있다.

UART HAL 함수들

cplt : 1byte 

UART가 1byte 받게 되면 부른다.

인터럽트 되면 이 함수를 부르게 설정한다.

 

warning

./Core/Src/main.c:72:30: warning: pointer targets in passing argument 2 of 'HAL_UART_Transmit' differ in signedness [-Wpointer-sign]

 

--> 매개변수 ptr 내부는 uint8 이기 때문에 이걸 맞춰주어야 한다.

 

 

초기화를 못해줘서 문제

이 코드도 문제가 있다.