Я пытаюсь связаться с микроконтроллером STM32 через последовательную связь. До того, как я использовал USB-кабель, связь работала безупречно. Однако, когда я переключил тот же последовательный режим с USB на BLE (HM-10), микроконтроллер не отвечает правильно с первой попытки, но после этого все в порядке. В чем может быть проблема?
Я попытался найти, было ли это связано с буферами или стартовыми / стоповыми битами. Но это мне не сильно помогло, потому что я понятия не имел о том, как реализовать их через код. Я использую MbedOS для программирования своей платы разработчика.
КОД:
#include "mbed.h"
DigitalOut led1(LED1);
#define MAX_INPUT_LENGTH 2
int code[MAX_INPUT_LENGTH];
Serial bt(PD_5, PD_6);
//Serial pc(USBTX, USBRX);
int main()
{
while(1)
{
while(bt.readable()==1)
{
volatile char str[2];
bt.scanf("%2s",str);
int index = 0;
while(index<=MAX_INPUT_LENGTH)
{
code[index] = str[index] - '0'; // convert to an int.
index++; // increase the index.
}
if(code[0]==0 && code[1]==1)
{
bt.printf("\n01 RECIEVED.");
for(int x=0;x<15;x++)
{
led1 = 1;
wait(0.25);
led1 = 0;
wait(0.25);
}
}
else
bt.printf("\nINCORRECT VALUE RECIEVED.");
}
}
}
Я ожидал, что выходные данные ble serial будут работать так же, как и usb serial, но при первом запуске он не получился.