使用Msp430的串口中断接收一包数据
来源:互联网 发布:餐厅叫号软件 编辑:程序博客网 时间:2024/04/27 23:31
使用Msp430的串口中断接收一包数据
假设有一数据包,数据格式如表所示:
序号
项 目
长度(字节)
说明
1
数据包头(STX)
1
常量:0x02
2
数据单元长度(Data_len)
2
需传输的数据单元Data部分的长度,高字节在前,低字节在后。
例如:0x0010表示Data部分有16个字节。
3
需传输的数据单元(Data)
不定
长度由Data_len指出,数据单元头两个字节是命令码(终端发送命令到读写器)或状态码(读写器返回数据给终端),后面是其它参数。
4
冗余检验值(LRC)
1
Data部分数据各字节异或值。
5
数据包尾(ETX)
1
常量:0x03
数据包总长度为: Data_len + 5 字节,最长不能超过512字节。
程序实现如下所示:
本程序一个致命的bug就是,如果长度信息那两个字节的数据接收时出现错误,会导致不能正确组成一包数据,后面发送过来的数据包也不能正确接收。
如有一包数据(16进制):02 00 02 11 11 00 03,
如果接收过程出现错误,导致将长度的两个字节00 02在接收端变成了00 05,因此接收端会等待接收完5个字节的数据之后才认为完整的接收完一包数据,从而导致后面发送过来的完整的数据包的一部分会被拆分,周而复始的这样恶性循环下去,暂时还没想到好的解决办法!
- 使用Msp430的串口中断接收一包数据
- MSP430串口接收程序(使用中断)
- stm32的串口空闲中断接收数据
- stm32的串口空闲中断接收数据
- msp430串口接收调试
- STM32使用DMA加串口空闲中断接收数据
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- STM32串口中断接收一个完整的数据帧
- STM32串口中断接收一个完整的数据帧
- 串口的中断和接收
- 多线程串口接收数据 | 全局变量的使用
- msp430 串口接收程序处理
- MSP430串口接收控制LED
- 串口数据的接收
- 使用.net的SerialPort串口监控控件接收串口数据
- STM32F429串口IDLE中断+DMA接收串口数据
- STM8S003F使用IO口模拟串口(三)使用中断方式发送和接收数据
- 比较经典的中断串口接收方法
- javascript实现流行的淡入淡出相册
- 第一次面试
- android学习方法
- 基于STL的KMP算法
- 政协常委会第十次会议举行专题分组讨论
- 使用Msp430的串口中断接收一包数据
- 安装 drupal 6.17 出错:Deprecated: Function ereg() is deprecated in .../drupal-6.17/includes/file.inc on line 926
- 指针与const限定符的类型识别
- TextBox的种种限制
- XForms简介
- Java中split的用法
- JQuery Form - 异步提交表单
- JavaScript中大括号“{}”作用
- 记录点滴