STM uart 통신 예제

UART 통신에는 TX 핀, RX 핀 및 접지 핀이 필요하지만 Nucleo 보드의 핀은 어디에 있습니까? 여기서는 마이크로의 UART를 통해 한 가지 더 예제를 살펴보겠습니다. 인프라 현명한 그것은 거의 이전 타이머 LED 예제와 동일. 리커 스크립트, 시작 파일, OpenOcd 구성. 파일 및 쓰기 바이너리 배시 스크립트는 모두 동일합니다. 내가 다르게 한 유일한 것은 라이브러리 함수를 복사하여 응용 프로그램 파일에 붙여 넣는 대신 관련 라이브러리 C 파일을 별도로 컴파일하고 모든 것을 링커에 남겨 두었다는 것입니다. 그래서 여기에 우리의 Makefile입니다 : C 언어로 표준 라이브러리의 표준 출력 기능, 기본 출력 장치는 표시자입니다. 직렬 출력 또는 LCD 출력을 구현하려면 표준 라이브러리의 출력 기능을 재정의해야 합니다. 예를 들어 함수 printf를 직렬 포트로 출력하려면 함수 fputc의 출력을 직렬 포트(리디렉션)로 보내야 합니다. 그렇게 하는 것은 쉽습니다. 함수 int fputc(int ch, FILE *f)를 추가하고 직렬 포트가 문자를 출력할 수 있는지 확인합니다. 직렬 전송, 폴링 모드, 인터럽트 제어 모드 및 DMA 모드를 위한 세 가지 통신 모드가 있습니다: 이 튜토리얼은 ST Nucleo 개발 보드가 UART를 사용하여 PC와 대화할 수 있도록 처음부터 간단한 임베디드 프로젝트를 만드는 것을 다룹니다. 직렬 통신. DMC에서 주로 다른 서비스 영역에서 임베디드 프로젝트 작업을 담당하는 새로운 엔지니어 또는 엔지니어를 소개하는 데 사용되며 DMC 임베디드 프로젝트에서 일반적으로 사용되는 다양한 주제, 기술 및 도구를 다룹니다.

직렬 통신의 baud 속도는 9600으로 설정됩니다. 이 경우 USART_BRR이어야 합니다: 앞에서 설명했듯이 DR(데이터 레지스터) 레지스터는 실제로 수신 및 발신 데이터를 다룹니다. 임시 데이터 버퍼와 같습니다. 위의 코드 예제는 설명이 있습니다. 데이터가 수신되거나 성공적으로 전송될 때까지 기다립니다. 이 작업은 담당하는 하드웨어 주변 기기에서 설정한 SR(상태 등록) 하드웨어 플래그를 모니터링하여 수행됩니다. 따라서 위의 코드는 폴링 방법을 기반으로 합니다. 나는 또한 인터럽트와 압축 폴더에 MikroC의 내장 라이브러리와 예제를 포함하고 그들이 내 설명을 이해해야 탐구하는 독자를 위해 그들을 둡니다. 폴링 모드: CPU는 IO 장치를 지속적으로 쿼리하고 장치에서 요구 사항을 처리합니다. 예를 들어 CPU는 데이터 전송이 완료되었는지 여부를 직렬 포트를 쿼리합니다. 전송 시간이 지남에 따라 시간 초과 오류가 반환됩니다. 폴링은 CPU 시간을 차지할 수 있기 때문에 비효율적인 방법입니다.

모든 코드 예제는 USART 루프이므로 STM32에 쓰는 모든 것이 PC USART 터미널 프로그램으로 반환됩니다. MikroC 다른 많은 IID처럼 USART 터미널 지원을 가지고 우리는 매우 쉽게 사용할 수 있습니다. 일반적으로 USART1 하드웨어는 부트 로더 모드에 사용하는 하드웨어이며 일반적인 USART 핀이 다른 곳에서 리메즈되지 않는 경우 추가 물건을 배선하지 않고 USART 코드 검사에 사용할 수 있습니다. 우리는 테스트 하기 전에 코드를 업로드 하기 위해 그것을 와이어. 이것은 내가 예에서 한 일입니다. 직렬 통신에서는 데이터가 문자로 전송되고 각 문자는 바이트로 전송됩니다. 항상 시작 비트에서 시작하여 중지 비트로 끝납니다. 전송 하기 전에 호스트와 슬 레이 브 가 동일한 baud 속도 사용 하 여 있는지 확인 하십시오. 일반적으로 두 가지 기본 직렬 통신 모드, 동기 통신 및 비동기 통신이 있습니다.