joseph@(qy) : sf read
Usage: sf read addr offset len
sf read 0x82000000 0x00000000 0x1000000(16M)
2、使用jlink中命令savebin拷贝内存数据到本地
命令 名称 起始地址 长度(要读取的长度)
savebin F:\3518\uboot_tools\3518a.bin 0x820000000x1000000(16M)
这样就可以把flash中数据保存为bin文件了
PC机经串口把文件过来,再由STM32用串口接收,接收到之后再写入STM32内部的Flash?这样的话首先就是数据写入Flash问题,一般过程是:Flash解锁->Flash擦除->Flash写入->Flash上锁,这些都可以使用库函数来完成(在STM32F10x_flash.c文件里面,针对STM32F10x系列的产品),关于Flash的读写 *** 作代码网上一大堆;在一个就是串口接收的问题,有三种方法:
1、在PC机上使用普通的串口工具(一般的串口工具都支持文件传送功能),将波特率调至最低,2400到9600那样吧,然后发送文件,STM32这边接收,接收到2个字节数据就写入Flash。将波特率调低的目的是使STM32有足够的时间将数据写入Flash。
2、使用串口通信协议传输文件(如XModem,YModem,ZModem等),一般使用ZModem吧,因为比较简单,但前提是是必须要完全了解这个协议,支持这些协议传输的工具:XP系统的超级终端、SecureCRT软件等;然后你还要在STM32这边针对ZModem协议编写串口接收的程序。
3、首先在PC机这边要会串口编程,用C、C++、Java语言都好,VC++、QT开发工具都好,反正就是你自己能编程控制串口和文件的读写 *** 作就行,然后可以怎么方便怎么打开读取文件,再通过串口传输到STM32中。
例如有一个单片机,向它发送数据,在Dos下,用敕令行敲入:什么ReadFile,WriteFile之类。typecon>com1回车//启动写modecom196N81回车//先设置波特率,等然后敲任何键后回车均能触发单片机。//写入任何数据转换到windows/nt后,体系不许可直接 *** 作串口,所以必须用Api函数。有谁有实例过程吗?望全法度榜样写上,在此万分感激!!!!!!!!查看答案>>欢迎分享,转载请注明来源:内存溢出
评论列表(0条)