stm32f4 uart 예제

이 예는 Keil 평가 보드 MCBSTM32로 테스트됩니다. STM32 시리즈의 대부분은 IDLE 라인 감지기능이 있는 U(S)ART를 가지고 있습니다. IDLE 회선 감지를 사용할 수 없는 경우 일부 수신자 시간 지정 기능이 프로그래밍 가능한 지연이 있습니다. 이 경우에도 사용할 수 없는 경우 응용 프로그램은 아래에 제공된 예제와 함께 DMA가 있는 폴링 모드만 사용할 수 있습니다. 이제 단일 응용 프로그램에서 DMA 및 USART의 모든 기능을 사용할 차례입니다. 우리는 응용 프로그램에 의해 20 바이트를받을 것으로 예상의 이전 예로 이동하는 경우 (실제로 만 수신 14), 우리는 지금 할 수 있습니다 : 태그 : 비동기 메모리 액세스maidno2stm32 familystm32f4stm32f7tutorialusartartartart idle 라인 감지 (또는 수신기 시간 시간()은 수신 회선이 수신을 위해 최소 1문자에 대한 통신 없이 안정될 때 USART 인터럽트를 트리거할 수 있습니다. 연습 예: 115200bauds에서 10바이트를 받았다고 가정해 보겠습니다. 115200 bauds의 각 바이트는 UART 라인에서 약 10us, 총 100us가 소요됩니다. IDLE 라인 인터럽트는 RX 라인에서 1자 비활성을 감지할 때 응용 프로그램에 통보하며, 이는 마지막 문자 후 10us 이후를 의미합니다. 응용 프로그램은 이 이벤트에 반응하고 그에 따라 데이터를 처리할 수 있습니다.

여기서는 마이크로의 UART를 통해 한 가지 더 예제를 살펴보겠습니다. 인프라 현명한 그것은 거의 이전 타이머 LED 예제와 동일. 리커 스크립트, 시작 파일, OpenOcd 구성. 파일 및 쓰기 바이너리 배시 스크립트는 모두 동일합니다. 내가 다르게 한 유일한 것은 라이브러리 함수를 복사하여 응용 프로그램 파일에 붙여 넣는 대신 관련 라이브러리 C 파일을 별도로 컴파일하고 모든 것을 링커에 남겨 두었다는 것입니다. 그래서 여기에 우리의 메이크 파일입니다 : 태그 : coidecoocoxgpiolibrary마이크로 컨트롤러sm32f429stm32f429디스커버리스트m32f4discoveryststm32fstm32f4xxuartusartusartusartartartusartartusartartartusartartartusartartartartartartsartartartartartsartlibrary 이 예제에 대해 정말 감사합니다. 그것은 하나의 걸림돌을 제외하고 바로 일했다 – 내 실제 baud 비율은 내가 “USART_InitStruct.USART_BaudRate = 9600″에서 3으로 나눈 것입니다. 57600을 지정했는데 19200 baud로 설정하면 단말이 올바르게 표시됩니다.

디버깅을 시작할 수 있는 위치에 대한 단서만 있습니까? STM32 USART_Irq 예제 프로그램은 인터럽트 구동 모드에서 STMicroelectronics STM32F103xx 마이크로 컨트롤러의 USART1을 구성하고 사용하는 방법을 보여줍니다. USART1의 구성은 9600 Baud, 8 데이터 비트, 1 스톱 비트, 패리티 및 흐름 제어 없음입니다. Retargetting는 직렬 입력을 통해 문자를 읽고 직렬 출력에 문자열을 인쇄하는 데 사용됩니다. 데이터 전송/수신을 위해 버퍼 처리가 구현됩니다. 다음으로 메인 소스 파일의 코드를 교체 : minicom 전송에 간단한 코드와 설명을 주셔서 감사합니다 “아니오”로 직렬 포트 HW 흐름 후 작동합니다. 그런 다음 핀을 초기화하면 USART 주변 장치를 초기화해야 하므로 이 리포지토리는 수신할 바이트 수를 미리 알 수 없을 때 DMA를 사용하여 UART에서 데이터를 읽는 방법에 대한 정보를 제공할 수 있습니다. 이것은 매우 유용합니다. 하지만 TTL 컨버터에 USB를 사용하는 경우 STM32 보드와 PC 사이의 정확한 연결은 무엇입니까? 당신이 볼 수 있듯이, 우리는 HT 또는 TC 이벤트에 DMA에 의해 알림을 받을. 응용 프로그램이 20 바이트를 수신한다고 가정하지만 14 만 수신한다고 가정합니다 : 아이디어는 이전 의 경우 (폴링 전용)와 완전히 동일하지만 데이터 처리를 위해 별도의 스레드를 사용하여 UART 인터럽트 처리기를 제거하고 DMA 인터럽트 처리기 및 2 UART를 추가합니다. 콜백: USART는 들어오는 데이터에 인터럽트를 사용하기 때문에 NVIC(중첩 벡터 인터럽트 컨트롤러)를 초기화해야 합니다. 데이터가 올 때마다, 우리의 주요 프로그램은 실행을 중지하고 우리의 인터럽트 루틴에 뛰어 들 것입니다.

시계와 USART의 구성은 파일 STM32_Init.c의 구성 마법사를 사용하여 수행됩니다. 두 가지 μVision 대상을 사용할 수 있습니다: DMA 하드웨어는 수신된 데이터를 메모리로 전송하는 것을 처리하지만 응용 프로그램은 지속적으로 새로운 변경 사항을 폴링하고 수신된 데이터를 덮어쓰지 않도록 빠르게 읽어야 합니다. 수신된 데이터의 처리는 스레드 모드의 경우 P1-4의 경우, 아래 의 스니펫은 DMA 위치를 얻는 방법과 처리할 데이터의 양을 보여 주며 있습니다.

 
Mobile Site

Follow Us On Facebook Follow Us On Twitter Follow Us On Google + Follow Us On LinkedIn Follow Us On You Tube Copyright 2019 © All Rights Reserved. Powered by - ARE Network Solutions