STM32-64 Ardu Board의 UART는 PA2(TXD), PA3(RXD)에 할당되어 있다.
STM32-64 Ardu Board에는 [xBee EVM] 모듈을 연결 할 수 있는 커넥터가 있어 Bluetooth 모듈이나 WiFi 모듈을 테스트 할 수 있다.
SM-Type EVM 모듈 커넥터에도 Serial 테스가 가능하다.
STM32-64 Ardu Board에서 UART는 USART1, USART2, USART3, UART4, USART6 에 할당 가능하다.
STM32F7 Arduino 설정 파일에서 UART로 사용할 수 있는 핀맵을 확인하고 원하는 시리포트를 사용 할 수 있다.
#ifdef HAL_UART_MODULE_ENABLED
WEAK const PinMap PinMap_UART_TX[] = {
{PA_0, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
{PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
{PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
{PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
{PB_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
{PC_6, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
{PC_10, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
{PC_10_ALT1, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
{PC_12, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
{NC, NP, 0}
};
#endif
#ifdef HAL_UART_MODULE_ENABLED
WEAK const PinMap PinMap_UART_RX[] = {
{PA_1, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
{PA_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
{PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
{PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
{PB_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
{PC_7, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
{PC_11, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
{PC_11_ALT1, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
{PD_2, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
{NC, NP, 0}
};
#endif
시리얼 포트를 하나더 할당하여 테스트 해보자
HardwareSerial Serial1(PA10, PA9);
void setup() {
Serial.begin(115200);
Serial.println("Serial Init");
Serial1.begin(115200);
Serial1.println("Serial1 Init");
}
[nRF52 xBee EVM] Arduino BLE UART Test 예제를 이용하여 스마트폰에서 STM32F7 보드를 제어 할 수 있다.
void loop()
{
if(Serial.available() > 0)
{
String getDATA = Serial.readStringUntil('\n');
if(getDATA.equals("led1on"))
{
Led1On();
}
else if(getDATA.equals("led1off"))
{
Led1Off();
}
}
}
반응형