1,stm32的bootloader,网上有很多例程,官网也有。文章最后我也会附上源代码链接。
开发环境keil.
设置地址如下:
这里需要一个按键(根据自己使用的开发板调整)
STM_EVAL_PBInit()//按键初始化
if(STM_EVAL_PBGetState()) //判断按键是否进入bootloader.
......
Main_Menu ()//这部分主要是bootloader升级部分,要重点细看
......
/* 这里是跳转到应用程序部分*/
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
{
/* Jump to user application */
JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4)
Jump_To_Application = (pFunction) JumpAddress
/* Initialize user application's Stack Pointer */
__set_MSP(*(__IO uint32_t*) ApplicationAddress)
Jump_To_Application()
}
......
2,找一个支持Ymodem的串口工具,这个很重要。有很多都不能升级,然后我去secureCRT官网下载了个试用版本就可以IAP了。
Download - SecureCRT (vandyke.com)
http://pan.baidu.com/s/1dELQHY5
密码:9yum 打开软件 根据自己电脑系统,选择对应版本 第一次打开会d出快速链接,选择串口协议,然后点击连接。 , 根据实际情况设置端口,和波特率,去掉流控制, 点连接。 如果什么也没有提示说明连接成功。1、下载stm32的官方例程:STM32_USB-Host-Device_Lib_V2.1.02、开发板是安富莱的STM32-X3开发板
3、打开例程:STM32_USB-Host-Device_Lib_V2.1.0\Project\USB_Device_Examples\VCP\MDK-ARM里的工程
配置cpu为stm32F407VG,
4、c/C++预定义:USE_STDPERIPH_DRIVER,STM32F4XX,USE_STM324xG_EVAL,USE_USB_OTG_HS,USE_ULPI_PHY
把USE_USB_OTG_HS 改为 USE_USB_OTG_FS 。
把USE_ULPI_PHY 删除,因为接高速设备的话,需要外接PHY芯片。
5、打开 USB_conf.h文件,把 #define VBUS_SENSING_ENABLED 封掉。因为我们不用VBUS(PA9).开发板上的
这个引脚做他用了。
6、编译,下载,复位板子,计算机中的虚拟串口终于出来了,呵呵,这个端口是多么漂亮。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)