MFC单文档之串口数据发送和接收的校验
来源:互联网 发布:qt语言编程 编辑:程序博客网 时间:2024/06/04 17:48
1、引言
上一篇中收发数据讲的是数据格式的转换,现在来讲讲最关键的部分:串口通信协议,即收发数据的规则制定同时怎么防止数据出错。
2、校验和的形式校验
收发数据协议:
1、发送和接收信号数组结构: 0xAA55(cmd)(data1, data2,……,data32)(check1)(check2);
2、cmd、data、check范围:01-FF
3、所有数据加起来的和得到的高位为(check1),低位为(check2),然后收到数据方再累加一次与(check1)(check2)进行比较,可以有效防止数据出错,出错概率为1/256*1/256。
校验和的实现
怎么把累加得到的三字节或者四字节的16进制数拆成两半分别放置呢,用一个&就可以完美实现了。
data37 = (data36 & 0xff00) >> 8, data38 = (data36 & 0xff);
实现代码
CByteArray receivedata; int receivedatalen; receivedatalen = Str2Hex(buffer, receivedata); int data36 = receivedata[0] + receivedata[1] + receivedata[2] + receivedata[3] + receivedata[4] + receivedata[5] + receivedata[6] + receivedata[7] + receivedata[8] + receivedata[9] + receivedata[10] + receivedata[11] + receivedata[12] + receivedata[13] + receivedata[14] + receivedata[15] + receivedata[16] + receivedata[17] + receivedata[18] + receivedata[19] + receivedata[20] + receivedata[21] + receivedata[22] + receivedata[23] + receivedata[24] + receivedata[25] + receivedata[26] + receivedata[27] + receivedata[28] + receivedata[29] + receivedata[30] + receivedata[31] + receivedata[32] + receivedata[33] + receivedata[34], data37 = (data36 & 0xff00) >> 8, data38 = (data36 & 0xff); if ((receivedata[35] == data37) && (receivedata[36] == data38)) { if ((receivedata[2] == 0x01)) { MyPublicData.Public_card = strcard; m_cardnum = strcard; SetDlgItemText(IDC_CARDSHOW, m_cardnum); AfxMessageBox(_T("已识别卡号!")); m_StateLed1.SetIcon(m_hIconLedGreen); } }
0 0
- MFC单文档之串口数据发送和接收的校验
- MFC单文档之串口通讯实现16进制数据的发送和接收
- 利用STM32 的串口来发送和接收数据实验
- 多串口数据接收和发送
- 异步串口模式发送和接收数据
- VC上位机MFC利用串口控件发送接收数据
- MFC串口发送数据大于128数据出错的解决办法(发送0xFE接收得到0x3F等问题)
- MFC之CSerialPort类双串口发送接收
- [CC2530]串口接收发送数据
- C#----串口数据接收发送
- upD79F8513A(NEC)或upD78F0511A(NEC)之串口0中断发送和接收数据
- linux多线程下打开串口发送和接收数据
- Qt中串口16进制发送和接收数据
- linux多线程下打开串口发送和接收数据
- 串口通讯中接收和发送float类型数据
- linux多线程下打开串口发送和接收数据
- ajax之xml数据的服务器端发送和客户端接收。
- UDT4协议源码分析之数据的发送和接收
- PHP 文件系统(PHP 5 Filesystem 函数) 全解析
- hadoop配置错误
- bzoj 2820 YY的GCD
- 修改solr访问路径
- 南阳理工ACM 题目198 数数
- MFC单文档之串口数据发送和接收的校验
- 腾讯前端面试题
- day40_s2sh整合
- struts2 环境搭建
- 抽象类
- task_struct结构注释
- day41_s2sh整合之CRM
- bzoj1821: [JSOI2010]Group 部落划分 Group
- Session