Nucleo Board STM32F401re UART2 사용

소개



f401re는 3개의 UART를 사용할 수 있습니다만, 그 중의 1개가 구입시의 상태라고 사용할 수 없었기 때문에 사용할 수 있도록 했습니다.

이번 기사에서는 PlatformIO IDE for VSCode를 사용하고 있습니다만, 기사의 본제와는 별로 관계 없습니다.

운영 환경



이번 운영 환경은
  • Windows10
  • PlatformIO IDE for VSCode
  • STSTM32(ver4.4.0)

  • 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로 기사를 써 보았지만, 거기에 있어서 다양한 사이트를 조사해 보다 이해가 깊어졌으므로, 또 뭔가 있으면 기사를 써 가려고 생각한다.

    좋은 웹페이지 즐겨찾기