我正在尝试制作一个LabWindows/CVI程序,它与SPBT2632C2A蓝牙芯片进行通信。我使用的是st eval spbt3atv3加密狗。我试着按下一个按钮,向奇普发出一个命令,但奇普不回答我。我知道我的LabWindows程序可以接收来自加密狗的消息,因为每次我按下加密狗上的reset按钮,它都会显示引导消息。当我搜索时,我需要在字符串的末尾添加\n\r,但它仍然不起作用。芯片不发送偶数错误信息。
代码

int CVICALLBACK rasti (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        case EVENT_COMMIT:
              sprintf(discovery,"AT+AB discovery\n\r");
              if(ComWrt (4,discovery, 18)!= 18){
                 SetCtrlVal (panelHandle, PANEL_TEXTBOX, "Nesekmingas duomenu siuntimas");
                                                        //Unsuccessful sending data
              }
              else {
                  SetCtrlVal (panelHandle, PANEL_TEXTBOX, discovery);
              }

            break;
    }
    return 0;
}

这是按钮调用的事件。它将我的发现字符串附加到文本框中。所以我认为它把数据正确地发送到串行端口。但我觉得我的线错了,所以我没有从奇普那里得到答案。
有什么办法解决这个问题从芯片上得到响应吗?

最佳答案

在调用ComWrt之前,请确保使用正确的参数调用OpenComConfig。您可以在超级终端中查找正确的端口设置(因为您提到它与设备通信正确)。
有关更多信息,请参阅NIdocumentation
此外,尝试不同类型的行终止字符可能会有帮助(请尝试使用\r\n、\n或\r)。

关于c - 通过LabWindows代码将AT命令发送到SPBT2632C2A,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40864515/

10-11 22:09