STM32 isp程序下载协议

2020-01-10 19:42发布

最近公司要做一个STM32的手持编程器,按照ST公司给ISP协议写了出来,能和STm32握手擦除写ROM等。。。。但是写完后STM32没反应???
现在怀疑是写数据的问题。
过程:
下发数据要写到的地址:08 00 00 00四个字节,后面紧跟一个字节的异或校验码(即前四个字节按位异或校验)08,ISP给予回复79,然后loader下发一个字节的数据数量“FB(252)”,ISP接收后并不回复,等待loader发送252字节的数据,发送完后,loader再发送一个包括前面数据量在内的253个字节数据的异或后结果的校验码7C(视每次具体发送的数据内容而定校验码的数值),如果isp校验结果于此相同,即回复79,否则1F,重新传送。因为每次ISP接收不能超过256字节,所以,需要发送8*252+1*32(每次只发送252个数据,且下发的格式为N+1,其中N为数据长度,1为数据长度)共九次一个大的数据发送循环。
现在没反应啊~!!!!谁有程序,或者是有人懂的求赐教

另送文档,供大家研究!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
27条回答
laylovesb1314
1楼-- · 2020-01-11 18:39
guanglv2008 发表于 2015-3-23 20:40
等待着楼主的好消息~~~

好消息!~!今天做成功了!。。。。其实是读FLASH的时候读到65536的时候地址变错了。
laylovesb1314
2楼-- · 2020-01-11 21:38
if( sendnum == 0xFFFF )其实是这里的问题,不应该=0xffff而是要在0x10000,的时候才对,源码暂时还不能给大家分享,整理好了再分享给大家。
guanglv2008
3楼-- · 2020-01-11 23:50
laylovesb1314 发表于 2015-3-24 18:28
if( sendnum == 0xFFFF )其实是这里的问题,不应该=0xffff而是要在0x10000,的时候才对,源码暂时还不能给 ...

坐等福利  呵呵  
loggerjy
4楼-- · 2020-01-12 02:03
 精彩回答 2  元偷偷看……
ZL_electric
5楼-- · 2020-01-12 03:42
支持楼主,如果能做成RS485就好了
jackrich
6楼-- · 2020-01-12 05:56
打算学习中,更新程序方便,不要带编程器了!

一周热门 更多>