Bluetooth RN42蓝牙模块的UART通信行为

Bluetooth RN42蓝牙模块的UART通信行为,bluetooth,pic,uart,microchip,pic32,Bluetooth,Pic,Uart,Microchip,Pic32,我正在使用PIC32MX795F512H设备以及来自Microchip的RN42蓝牙模块 我注意到一种奇怪的行为。从这个C代码片段: secs = G_CLOCK; while(G_CLOCK-secs<300); // delay 300 ms UART3WriteString("$$$"); secs = G_CLOCK; while(G_CLOCK-secs<300); // delay 300 ms UART3WriteSt

我正在使用PIC32MX795F512H设备以及来自Microchip的RN42蓝牙模块

我注意到一种奇怪的行为。从这个C代码片段:

    secs = G_CLOCK;
    while(G_CLOCK-secs<300);  // delay 300 ms
    UART3WriteString("$$$");
    secs = G_CLOCK;
    while(G_CLOCK-secs<300);  // delay 300 ms
    UART3WriteString("gf\r\n");
    secs = G_CLOCK;
    while(G_CLOCK-secs<300);  // delay 300 ms
    strcpy(privData->btmac,result);
    UART3WriteString("---\r\n");
    secs = G_CLOCK;
    while(G_CLOCK-secs<600);  // delay 600 ms
    UART3WriteString("Test 123\r\n");
    UART3WriteString("Test 456\r\n");
    UART3WriteString("Test 789\r\n");
    UART3WriteString("Test abc\r\n");
奇怪的是,最后4张照片实际上都是一开始就输出的。 那么,首先到底发生了什么?是因为GF命令进入命令模式吗?还是4个“Test xxxx”UART3WriteString命令


谢谢

$$$命令缺少换行符\r\n,因此可能是其他东西将其输入cmd模式。通过独立测试每个部件进行检查,看看结果如何。或者对一个按钮进行编程,使按下的按钮发送下一个字符串。它不应该有换行符。所需要的只是$$$。不幸的是,我没有访问按钮!在每次写入检查UART3模块上的TXBUF Full后添加一个循环。而(U3STAbits.UTXB);还有,你到底在使用中断吗?你也有示意图吗?
Test 123 
Test 456 
Test 789 
Test abc

CMD

50B7C3F7033A

END