[STM32F1] IAP边接收边写FLASH的问题

[复制链接]
2576|11
 楼主| max_v 发表于 2014-1-3 22:22 | 显示全部楼层 |阅读模式
我参考正点原子的代码,实现了边接收边写FLASH的功能,方法就是在串口中断里边接收边计算接收的个数,当计到32个字节后就写进FLASH,最后接收完了再把不够32个字节的数据写进flash

现在的问题是总感觉自己的代码有很多问题,每接收32个字节就写进了flash,我试过如果多了就会漏掉一些数据,我想可能是这边还没写完,又来串口中断的原因

另一个问题是没加校验,但是也没出现啥问题

我大概看了看官方的例程,他用的是ymodem协议,我是没看懂,不过他好像是一次接收完才写flash的
泰山特曲123 发表于 2014-1-3 23:35 来自手机 | 显示全部楼层
对flash进行擦除或者编程时,cpu是停止的,这时是无法响应中断的。所以你每32个字节的发送时间间隔应该大于40ms
 楼主| max_v 发表于 2014-1-4 12:56 来自手机 | 显示全部楼层
泰山特曲123 发表于 2014-1-3 23:35
对flash进行擦除或者编程时,cpu是停止的,这时是无法响应中断的。所以你每32个字节的发送时间间隔应该大于 ...

请问40毫秒是怎么来的?
还有就是我用串口助手发送bin文件,点击发送就一下子都发完了啊
lsh505 发表于 2014-1-4 14:33 | 显示全部楼层
加个协议.
上位机发送数据,等待下全机回复.再写下一包.
 楼主| max_v 发表于 2014-1-4 14:38 | 显示全部楼层
lsh505 发表于 2014-1-4 14:33
加个协议.
上位机发送数据,等待下全机回复.再写下一包.

那这样的话是不是得自己写上位机啊,就不能用网上下载的哪种串口助手了?
5186 发表于 2014-1-4 18:11 | 显示全部楼层
max_v 发表于 2014-1-4 12:56
请问40毫秒是怎么来的?
还有就是我用串口助手发送bin文件,点击发送就一下子都发完了啊 ...

有些串口助手可以设置延时的,你找找
coody 发表于 2014-1-4 20:04 | 显示全部楼层
我也是用Y-MODEM来做的,数据包是128字节或1024字节。
 楼主| max_v 发表于 2014-1-4 20:42 | 显示全部楼层
coody 发表于 2014-1-4 20:04
我也是用Y-MODEM来做的,数据包是128字节或1024字节。

你是参考的官方例程么,他的好像是一次接收完了,再写啊,这样的话app很大就不好办了
 楼主| max_v 发表于 2014-1-4 22:27 | 显示全部楼层
max_v 发表于 2014-1-4 12:56
请问40毫秒是怎么来的?
还有就是我用串口助手发送bin文件,点击发送就一下子都发完了啊 ...

能推荐个串口助手么?我每找到那种能设置多少字节然后延时再发送的
 楼主| max_v 发表于 2014-1-4 22:27 | 显示全部楼层
5186 发表于 2014-1-4 18:11
有些串口助手可以设置延时的,你找找

能推荐个串口助手么?我每找到那种能设置多少字节然后延时再发送的
5186 发表于 2014-1-5 11:54 | 显示全部楼层
max_v 发表于 2014-1-4 22:27
能推荐个串口助手么?我每找到那种能设置多少字节然后延时再发送的

实在没有合适的,就找个开源的修改下,串口操作在VC中有专门的类可以用的,简单的很
 楼主| max_v 发表于 2014-1-5 19:01 | 显示全部楼层
5186 发表于 2014-1-5 11:54
实在没有合适的,就找个开源的修改下,串口操作在VC中有专门的类可以用的,简单的很 ...

好吧 我不会VC,只会点qt,估计也不难
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

170

帖子

0

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