我正在尝试制作一个与 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;
}
它是由按钮调用的事件。它将我的发现字符串附加到文本框。所以我认为它正在将数据正确发送到串口。但我认为我的字符串是错误的,所以我没有从 chip 得到答案。
有什么想法可以解决这个问题以获得芯片的响应吗?
确保在调用 ComWrt 之前使用正确的参数调用 OpenComConfig。您可以在 super 终端中查找正确的端口设置(因为您提到它可以与设备正确通信)。引用NI的documentation有关更多信息。
此外,尝试不同类型的行终止字符可能会有所帮助(尝试使用 \r\n、\n 或 \r)。
我是一名优秀的程序员,十分优秀!