UART

다니엘·2022년 5월 26일
0

Universal Asynchronous Receiver transmitter

비동기식만 됨 // 동기식은 안됨

pc와 타겟보드 통신할때 가장 기본적인 통신포트

USB를 컴퓨터 에 꽂으면 포트가 몇번 포트인지
확인할 수 있다. (장치관리자에서 확인)

USART 는 호환성이 좋으나 1대1만 되서 확장성이
떨어짐

원래는 위와같은 형식이 있으나 M3가 부터는STLINK PART가 있어서 쓰지 않는다.

Received Data
Transmitted Data
Signal Ground


USART3번을 씀 : 동기식과 비동기식이 모두 가능함

USART 가 되면 동기식 + 비동기식 다 된다.

ST-Link 파트
USB 인터페이스로 PC와 연결됨

closed 된 부분 0ohm 저항이 붙어있다.


TX 데이터 보내기
RX 데이터 받기
SW_RX
IRDA_OUT 적외선 통신 출력
IRDA_IN 적외선 통신 입력
RTS Request to send 수신 가능시 low로 신호 변환
CTS clear to send cts 신호가 low 시 데이터 전송
CK CLOCK 동기식 통신을 할 때 사용하는 클럭 핀

stm32f429_hal_uart.h


BaudRate 통신에 대한 속도 얼만큼 하는지
8bit 1byte 를 보낼 수 있다.
시작bit 스탑비트가 있다.
parity 데이터를 제대로 보냈는지 안보냈는지 확인하는 비트
mode 비동기식인지 동기식인지 확인
hwflowctl 하드웨어 제어하는거
oversampling 데이터가 오버했는지 않했는지

HAL_UART_Init()

Transmit 송신
Receive 수신
Transmit_IT 송신 인터럽트
Receive_IT 수신 인터럽트
Transmit_DMA () 직접 메모리에 접근해서 보낸다
Receive_DMA () 직접 메모리에 접근해서 받는다.

Interrupt 는 콜백 함수를 써야함
interrupt가 falling? 보다 빠르다

폴링 interrupt

HAL_UART_TxCpltCallback()

Timeout (1000) 1초(x초)동안 데이터 수신이 안되면
에러를 띄워라 했을때 timeout 을 쓴다.


폴링모드


인터럽트 모드

GPIO EXTI UART
HAL - GPIO,EXTI,UART - ~
콜백함수 반환값없다.

Middleware 에서 LWIP Enabled check 체크안하면 GPIO 안됨 최신버전에서는 체크안해도 됨

connectivity 통신과 관련된 카테고리
uart3 에서 모드는 asynchronous 로하고
hardware flow control disable 로 설정

폴링모드시에는 필요없지만 interrupt 모드시에는
enable 체크해줘야한다.

PD8~9

NVIC 에서 USART3 global interrupt 체크

stdio.h 없어도 코드는 짜진다.
problems 에서 확인가능

command shell
serial port
iso 8859
new 누를시 팝업창 뜸
COM3
Baud rate, Data size , Parity ,Stop bits

uart (connected) 통신을 가능하게함
tera term도 사용 가능
이미 cubeide 에서 제공하고있음
\r

polling mode 할 상태를 체크한다.

0개의 댓글