
在使用STM32F103C8T6单片机IAP功能时,可以自己写bootloader程序,也可以使用官方bootloader文件。下面说一下使用官方bootloader的使用方法。7 g' t( X' V K6 C/ p- |" _ 首先下载官方bootloader文件/ l( @; d/ l' q k' N2 | ![]() 4 E- { Q2 G% r8 Y+ e0 k$ T 目前使用的是这个版本,打开文件夹,选择适合自己编译器的工程。' W8 ] X, j' K: D$ Y- z ![]() & S \' G8 Z! n# |4 y* Z 目前使用的是keil,所以打开MDK-ARM文件夹 ![]() 打开IAP工程 / O4 T8 q4 M9 D% l. p/ t ![]() & T6 T, p- c- t% ~* \/ h) C/ f 打开后根据自己的单片机型号,对工程进行简单的修改。用的是STM32F103C8T6单片机,FLASH为64K,SRAM为20K。 ![]() 设置IROM1的起始地址和大小。 8 @2 T( f) m! [ ![]() 设置引用的头文件,STM32F103C8T6为中等容量,所以设置文件为STM32F10X_MD,。8 b1 t: X- t( ` 下来要设置APP的起始地址,这个地址要和下载的APP运行地址对应,否则下载的APP不能正常运行。 ![]() 在common.h 头文件中将 ApplicationAddress 地址设置为APP在FLASH中存储的位置。要因为要测试的APP在FLASH中的起始位置为0x8005000,所以此处将ApplicationAddress值也设置为0x8005000。然后编译项目, [, c6 }+ s' I ![]() * I# s7 t* R* A$ D 没有出现错误,将代码下载到单片机中。然后打开secureCRT软件。" x$ r+ X5 p) I! T& E7 z0 V# s9 m # _ b4 p% v( l- N5 x/ N' C) m ![]() 选择串口端口号和波特率 ![]() 程序默认波特率为115200,8位数据位,1位停止位。无奇偶校验位。设置好之后选择连接。4 s; l, u& H' a M- ^' j/ O% ]" f6 s/ L8 D ![]() 然后给单片机重新上电,这时候软件上就会显示提示信息。 ![]() 7 p/ a: |$ j4 G$ `8 t3 s 然后按键盘的数字1,准备下载bin文件。$ ^9 W: n" z+ F: X - ^( ]* A& a7 s1 b; y1 h5 M ![]() 9 ~" U3 }# b( p 在菜单栏上面选择 传输----发送Ymodem选项。3 ?1 v( G+ p$ h9 N+ I4 Z K - \6 ^4 z# |+ } M2 J* l ![]() 选择要下载的bin文件,然后点添加按钮。0 g* ]# t2 w& V% \( g; r! t/ s5 c 添加好bin文件后,选择确定按钮。/ t* D9 U) L( w" M: W, N ![]() ![]() 文件传输成功后,会出现提示信息。这时候说明bin文件已经下载到了FLASH中。 下来在按键盘上的数字3,APP就开始执行了。 这个串口软件上没有回显功能,所以按下的数字键,界面上不会显示的。光标永远是个小黑点在闪烁。APP有没有成功运行,直接看单片机的现象就行。 ' P) L1 b+ H" k z* C9 t 1 Y2 B/ C( p/ p% Z. J ' v, s, }$ R) ?5 B* p! Y3 N |