1

我正在尝试制作一个与 SPBT2632C2A 蓝牙芯片对话的 LabWindows/CVI 程序。我正在使用 st eval spbt3atv3 加密狗。我正在尝试按下按钮并向芯片发送命令,但芯片不回复我。我知道我的 LabWindows 程序可以接收来自加密狗的消息,因为每次我按下加密狗上的重置按钮时,它都会向我显示启动消息。当我搜索时,我需要添加\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;
}

它是由按钮调用的事件。它将我的发现字符串附加到文本框中。所以我认为它正在正确地将数据发送到串口。但是我认为我的字符串是错误的,所以我没有从芯片中得到答案。

任何想法如何解决这个问题以获得芯片的响应?

4

1 回答 1

1

确保在调用ComWrt之前使用正确的参数调用OpenComConfig。您可以在超级终端中查找正确的端口设置(因为您提到它与设备正确通信)。更多信息请参考 NI 的文档

此外,尝试不同类型的行终止字符可能会有所帮助(尝试使用\r\n\n\r)。

于 2017-01-27T17:14:16.737 回答