MFC单文档之串口通讯三次无返回值报错提醒
2017-04-17 18:17
246 查看
1.引言
当一个上位机软件大体部分完成之后,就要完善细节了。在串口通讯中,假如上位机发送的指令下位机没有接收到怎么办?这里可以设置一个返回值程序,即接收到之后返回某值给上位机,上位机接收到此值后就可以判断下位机状态,假如上位机连续发送3次指令都没有收到返回值的话,此时就应该提示串口通讯故障了。2.cpp中添加代码
unsigned int alarmcount_card = 0, alarm_card = 0; void CCARDNUM::OnCommMscommCardnum() if (m_mscomm_cardnum.get_CommEvent() == 2) //值为 2 表示接收缓冲区内有字符 { alarm_card = 1; } void CCARDNUM::OnBnClickedSearchcard() { m_mscomm_cardnum.put_Output(COleVariant(senddata));//发送数据 if (alarmcount_card == 2) { if (alarm_card == 0) MessageBox("通讯故障,请检查机器后重试!"); alarmcount_card = 0; } alarmcount_card++; }
3.注意事项
注意这里假如要是有多个发送指令需要多个返回值时,alarmcount_card就应该相应的改为alarmcount1_card、alarmcount2_card等,但是alarm_card可以用同一个,仔细想想这是很有道理的。另外,不同的cpp文件中的alarmcount变量名不能相同,不然会报错提示obj文件中重定义,所以要做相应修改,如alarmcount_card。
相关文章推荐
- 简单而强大的多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序及详细编程步骤)
- MFC单文档之基于MSCOMM的多个编辑框的串口通讯
- 多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序及详细编程步骤)
- MFC单文档之利用全局变量一次设置多个对话框的串口通讯
- MFC单文档之串口通讯实现16进制数据的发送和接收
- 简单而强大的多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序及详细编程步骤)
- 简单而强大的多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序及详细编程步骤)
- MFC 串口通讯程序
- VC中基于文档(SDI/MDI)程序中能直接用串口MSComm通讯控件吗?
- 在基于单文档(SDI)程序中应用MSCOMM串口通讯控件
- MFC 视图、文档、框架(通讯)
- MFC单文档之串口数据发送和接收的校验
- MFC串口通讯
- Windows CE下的串口通讯实例
- STM32 IO口模拟串口通讯
- VS2010 mfc 单文档写界面入门
- [51单片机] 串口通讯 简单通信
- java串口通讯环境配置
- 出现XML 文档结构必须从头至尾包含在同一个实体内的报错
- 串口通讯,关于javax.comm的安装配置