Nucleo Board STM32F401re UART2 사용
소개
f401re는 3개의 UART를 사용할 수 있습니다만, 그 중의 1개가 구입시의 상태라고 사용할 수 없었기 때문에 사용할 수 있도록 했습니다.
이번 기사에서는 PlatformIO IDE for VSCode를 사용하고 있습니다만, 기사의 본제와는 별로 관계 없습니다.
운영 환경
이번 운영 환경은
STSTM32는 mbed 호환 stm32bit 마이크로 컴퓨터를 mbed로 작성하기위한 PlatformIO 플랫폼 중 하나입니다.
배선
PC와 Mini USB를 연결하는 것만으로 f401re의 전원이 켜지도록 리셋 버튼 바로 아래에 있는 점퍼를 PWR이 U5V와 연결되도록 교체합니다.
일단 저항을 사이에 끼워 UART1의 TX 핀(PA_9)과 UART2의 RX 핀(PA_3)을 연결합니다.
(mbed에서 사용하는 f401re의 핀 이름의 정의는 여기 의 mbed가 발행하고 있는 f401re의 개요 페이지에 있습니다)

테스트 프로그램
UART1의 TX에서 적당한 신호를 보내 UART2에서 받으면 L치카 하는 간단한 프로그램입니다.
src/main.cpp
#include <mbed.h>
void Receiving();//受信時割り込み
Serial send(PA_9, PA_10, 19200);//(TX, RX, baud)
Serial receive(PA_2, PA_3, 19200);
DigitalOut userLED(PA_5);//LD2
int main() {
userLED = 0;
receive.attach(&Receiving,Serial::RxIrq);
while(1) {
send.putc('a');
wait(0.5);
}
}
void Receiving(){
userLED =!userLED;//Lチカ
receive.getc();//念のため
}
platformio.ini
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:nucleo_f401re]
platform = ststm32
board = nucleo_f401re
framework = mbed
주제
그러나 이것만으로는 UART2를 사용할 수 없습니다.
STMicroelectronics가 내놓고 있다 사용자 매뉴얼 를 보면, 8.3 USART communication에(이 기사에서는 UART로서 사용하고 있습니다만), USART2는 디폴트에서는 PA_2/PA_3에는 연결되어 있지 않고, 대신에 SB13과 SB14를 개입시켜 가상 COM과 연결되어 있습니다.

한층 더 페이지를 진행하면(자), 그런 그림도 나옵니다.
(아래 이미지의 SB62/SB63의 다리 같은 곳을 연결하면 연결될 것 같다)

아래 이미지는 Figure 29. ST-LINK/V2-1의 일부입니다. PA2/PA3가 SB14/SB13을 통해 STLINK의 TX/RX와 연결되어 있습니다.

f401re 뒷면의 빨간색 프레임 부분, SB62/SB63을 연결하여 SB13/SB14의 0Ω 저항을 제거합니다.

.
.
.
할 수 있었습니다.

프로그램을 실행하면, 1초 주기로 L치카하고 있는 것을 확인할 수 있었습니다.

보내는 것을 UART2로 바꾸어도 L치카 할 수 있었으므로, TXRX 함께 정상적으로 움직이고 있는 것 같습니다.
요약
이 핀의 접속법(이라고 하는지 보드의 설계)은 MB1136을 베이스로 한 STM32 Nucleo-64 마이크로컴퓨터에서 공통인 것 같기 때문에 nucleo f411re나 그 외의 마이크로 컴퓨터에서도 같은 작업을 실시할 필요가 있다.
그리고 이 작업을 하면 USBTX/USBRX를 사용할 수 없게 된다.
하지만, 이번 자신은 그 기능은 필요 없었다면 좋을까라고 생각한다.
또, 자신의 메모용으로 생각해 처음으로 Qiita로 기사를 써 보았지만, 거기에 있어서 다양한 사이트를 조사해 보다 이해가 깊어졌으므로, 또 뭔가 있으면 기사를 써 가려고 생각한다.
Reference
이 문제에 관하여(Nucleo Board STM32F401re UART2 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sora_nag/items/128ec56d87f5762d1c64텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)