STM32 串口怎么传文件到FLASH?大神给思路
1个回答
展开全部
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中。
这样的话首先就是数据写入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中。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询