串口数据校验?

[复制链接]
4518|5
 楼主| 7120223 发表于 2010-11-29 13:51 | 显示全部楼层 |阅读模式
如:一组数据共有十个字节组成,前两位是数据头,最后一位是校验位,现在内部空间不够,我把头和尾去掉,就存储七个字节,一次数据发来共100组,空间正好用完。波特率为38400,波特率不能变小,100组也不能变小。我本想来一组我检验一组,但单片机速度不够,校验程序加上(累加和校验方法),串口会死掉。如果我想检验数据正确与否,还有什么方法?
mohanwei 发表于 2010-11-29 14:16 | 显示全部楼层
接收1个字节有360多微秒,你自己算一下可以执行多少条指令……足够你在串口接收中断里直接处理完校验了。
如果Flash够大,把校验表放到Flash里,一个字节查一次表也不过几个机器周期。
 楼主| 7120223 发表于 2010-11-29 15:37 | 显示全部楼层
不够啊 串口中断不是最高优先级的哦 还有个中断程序会消耗一些时间的
 楼主| 7120223 发表于 2010-11-29 16:32 | 显示全部楼层
本帖最后由 7120223 于 2010-11-29 16:36 编辑

.....
wubing1211 发表于 2010-11-30 09:00 | 显示全部楼层
改优先级
coody 发表于 2010-11-30 10:17 | 显示全部楼层
38400bps,大约260us一个字节,不算快了,用CRC16校验都容易做到,别说累加和校验。
优化下程序,合理分配时间隙,没有问题的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

389

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部