我正在尝试制作一个LabWindows/CVI程序,与SPBT2632C2A蓝牙芯片对话。我用的是圣瓦拉( spbt3atv3 )钢丝绳。我试图按下一个按钮,并发送命令给芯片,但芯片不对我负责。我知道我的LabWindows程序可以接收来自dongle的消息,因为每次我按下dongle上的重置按钮,它都会显示启动消息。当我搜索时,我需要将\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;
}这是由按钮调用的事件。它将我的发现字符串附加到文本框中。所以我认为它是正确地将数据发送到串口。但我认为我的弦错了,所以我不能从芯片上得到答案。
有什么办法解决这个问题来得到芯片的响应吗?
发布于 2017-01-27 17:14:16
在调用OpenComConfig之前,确保使用正确的参数调用ComWrt。您可以在超级终端中查找正确的端口设置(因为您提到了它与设备的正确通信)。有关这方面的更多信息,请参阅NI的文档。
此外,尝试不同类型的行终止字符可能会有所帮助(尝试使用\r\n、\n或\r)。
https://stackoverflow.com/questions/40864515
复制相似问题