串口校验的问题

2019-07-21 00:25发布

stm32 f407  VGT  在做IAP实验过程中,我要把app文件变成bin文件发送给booter程序,但是我的app文件有60k,我在发送的过程中如何避免发送出错,如何做校验码?
我想问的问题是,如何对bin文件做校验,怎样保证串口发送文件数据不出错?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
jermy_z
1楼-- · 2019-07-21 04:24
笨鸟先飞鱼 发表于 2015-12-31 17:53
你好,请问您还能说详细点吗?我的bin文件时通过keil 生成的。  如何去取校验码和如何对接收的文件取校验 ...

首先,你会不会写上位机?不会写?那你可以不用问这个问题了

如果你会写上位机,自己做协议,ok,继续往下看

在发送之前,对要发送的数据,进行CRC的计算

下位机收到数据后进行CRC的校验

校验通过,则是没有错误
365mcu
2楼-- · 2019-07-21 04:53
 精彩回答 2  元偷偷看……
笨鸟先飞鱼
3楼-- · 2019-07-21 06:00
365mcu 发表于 2015-12-31 15:32
IAR本省有CRC32校验,生成在bin文件最后,你接收完成了用硬件计算一下文件CRC32是否正确即可。

你好,请问您还能说详细点吗?我的bin文件时通过keil 生成的。  如何去取校验码和如何对接收的文件取校验码?
正点原子
4楼-- · 2019-07-21 09:42
 精彩回答 2  元偷偷看……
笨鸟先飞鱼
5楼-- · 2019-07-21 15:12
正点原子 发表于 2015-12-31 23:06
只有做协议,才可以保证百分百正确.
协议可以参考modbus协议.
采用应答机制,确保数据万无一失.

请问下,我这样做可好?  上位机准备把要发送的数据读出来,计算一个CRC校验值,单片机把接收到数据计算一个校验值, 如果两个校验值相等,则表示数据正确,如果校验值不相等,那么单片机把数据清零,要求上位机重新发送数据。
笨鸟先飞鱼
6楼-- · 2019-07-21 16:28
 精彩回答 2  元偷偷看……