打印

串口数据校验?

[复制链接]
3110|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 编辑

.....

使用特权

评论回复
5
wubing1211| | 2010-11-30 09:00 | 只看该作者
改优先级

使用特权

评论回复
6
coody| | 2010-11-30 10:17 | 只看该作者
38400bps,大约260us一个字节,不算快了,用CRC16校验都容易做到,别说累加和校验。
优化下程序,合理分配时间隙,没有问题的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

389

帖子

0

粉丝