STM32WB55 용으로 STM32CubeIDE 에서 제공하는 BLE 개발 예제는 많이 않고 독자적인 라이브러리를 사용하기 때문에 호환성이 많이 떨어진다.
ST에서 제공하는 Arduino 도 BLE 기능을 제공하지만 거의 안되는 기능이 많아 사용하기 힘들다.
찾아보니 STM32WB 용 BLE 라이브러리를 Arduino 코드로 제공하는 곳이 있다.
https://github.com/GrumpyOldPizza/ArduinoCore-stm32wb
먼저 Arduino IDE의 Preferences에서 Boards Manager URL을 추가 한다.
Boards Manager 에서 SWM32WB로 검색해서 Tlera Corp STM32WB를 설치 한다.
STM32WB의 BLE를 가장 간단하게 테스트 할수 있는 BLEUart를 테스트 해보자.
코드는 정말 심플하다.
#include "Arduino.h"
#include "STM32WB.h"
#include "BLE.h"
BLEUart SerialBLE(BLE_UART_PROTOCOL_NORDIC);
void setup()
{
Serial.begin(115200);
while (!Serial) { }
BLE.begin();
BLE.setLocalName("STM32WB-UART");
BLE.setAdvertisedServiceUuid(SerialBLE.uuid());
BLE.addService(SerialBLE);
BLE.advertise();
delay(1000);
}
void loop()
{
int c;
if (!BLE.advertising() && !BLE.connected()) {
BLE.advertise();
}
SerialBLE.println();
while ((c = SerialBLE.read()) >= 0)
{
if (c == '\n')
{
Serial.write('\r');
}
Serial.write(c);
}
delay(1);
}
다운로드 후 실행하면 ST에서 제공하는 앱에서 BLE UART로 인식이 되고 데이터 송수신이 가능하다.
다른 BLE용 터미널 프로그램에서도 인식되고 데이터가 송수신 되는것을 확인 할 수 있다.
반응형