按键 PF15 按键按下时,PF15为低电平;未按下时,PF15为高电平
运行灯PC14 输出低电平时,LED亮,输出高电平时,LED熄灭。可以不要
UART4 115200bps, 用于接收hex文件,及打印消息,通过 usb转ttl 或 者usb转RS232,链接单片机和电脑
STM32F407ZET6的FLASH存储空间如下,在 用户手册中可以查看详细信息
#define ADDR_Sector_0 0x08000000 //0x0800 0000 - 0x0800 3FFF 16 Kbytes
#define ADDR_Sector_1 0x08004000 //0x0800 4000 - 0x0800 7FFF 16 Kbytes
#define ADDR_Sector_2 0x08008000 //0x0800 8000 - 0x0800 BFFF 16 Kbytes
#define ADDR_Sector_3 0x0800C000 //0x0800 C000 - 0x0800 FFFF 16 Kbytes
#define ADDR_Sector_4 0x08010000 //0x0801 0000 - 0x0801 FFFF 64 Kbytes
#define ADDR_Sector_5 0x08020000 //0x0802 0000 - 0x0803 FFFF 128 Kbytes
#define ADDR_Sector_6 0x08040000 //0x0804 0000 - 0x0805 FFFF 128 Kbytes
#define ADDR_Sector_7 0x08060000 //0x0806 0000 - 0x0805 FFFF 128 Kbytes
其中 ADDR_Sector_0 - ADDR_Sector_1 共32Kb,用于存放 IAP 程序,
其中 ADDR_Sector_2 - ADDR_Sector_7 ,用于存放 APP 程序,
***********************************************使用方法***********************************************
IAP程序编译后,使用烧录器烧录单片机,本程序使用的烧录器是ST-LINK V2(盗版),SWD接口4线VCC、GND、SWCLK、SWDIO。
IAP程序上电运行时,PF15若是低电平(PF15按键被按下),则擦除ADDR_Sector_2 - ADDR_Sector_7的存储空间,擦除过程中,释放PF15按键
且UART4串口打印擦除falsh的过程,擦除完毕,UART4打印等待hex文件...,sscom 打开hex文件(app程序)后,点击发送按钮,即可每帧256字节(发送帧时间间隔可设置,最小10ms)下发hex文件。
单片机解析hex文件,从ADDR_Sector_2首地址开始,将数据存储在ADDR_Sector_2 - ADDR_Sector_7区域内
当整个hex文件发送完毕,单片机处理完特定的hex文件结束符后,自行重启,重启后,PF15按键已释放,便会跳转到ADDR_Sector_2地址运行程序,即为程序升级。
IAP程序上电运行时,PF15若是高电平(PF15按键未按下),则直接跳转到ADDR_Sector_2地址运行程序
IAP程序和我们平时开发程序时的keil配置一模一样,只是在代码中多了个跳转程序 main.c 34-55行
APP程序和我们平时开发程序时的keil配置也可以一模一样,不需要配置,代码也可以一模一样,若APP程序不开中断、不通过 烧录器 直接烧录APP程序,就不会有问题
但是,程序通常会开中断的,所以要进行中断向量表偏移,中断向量表地址默认是 0x0800 0000,要把地址偏移到APP首地址,即 Sector_2, NVIC_SetVectorTable(NVIC_VectTab_FLASH, ADDR_Sector_2 - FLASH_BASE); main.c 40行
有时我们也想通过烧录器直接烧录APP程序,又不想覆盖掉IAP程序,未避免通过烧录器直接烧录APP程序时覆盖掉IAp程序,需要配置keil,要使编译出来的hex文件的FLASH存储地址为 Sector_2 的首地址
具体方法是 “魔术棒” -- “Target”---IROM1 : 0x0800 8000 - 0x7 8000(原本是0x0800 0000 - 0x8 0000)
这样编译完毕后,无论通过烧录器直接烧录APP程序,还是使用本文方法通过usb转TTL(或usb转RS232)烧录APP程序,都不会覆盖IAP程序。
总结:
1. IAP程序和我们平时开发程序时的keil配置一模一样,只是在代码中多了个跳转程序 main.c 34-55行
2. APP程序需要设置地址,具体方法是 “魔术棒” -- “Target”---IROM1 : 0x0800 8000 - 0x7 8000(原本是0x0800 0000 - 0x8 0000)
3. main.c 内要增加函数 NVIC_SetVectorTable(NVIC_VectTab_FLASH, ADDR_Sector_2 - FLASH_BASE); APP例程main.c 40行
没有合适的资源?快使用搜索试试~ 我知道了~
STM32F407ZET6,IAP、APP程序,PF15 按键,PC14 LED,UART4 115200bps
共276个文件
h:106个
c:100个
s:24个
需积分: 0 2 下载量 5 浏览量
2024-04-26
21:53:20
上传
评论
收藏 1.67MB RAR 举报
温馨提示
IAP程序: 按键输入: PF15,在sys_gpio_config() 函数内配置,在 main.c 227行使用 运行灯:PC14,在sys_gpio_config() 函数内配置,在 main.c 305行使用,在board_config.h 9-11行定义 升级用的串口 UART4, 开启IDLE中断,DMA1_Stream4发送,配置 DMA1_Stream2 接收 ,程序编译后,使用烧录器来烧录单片机,本程序使用的烧录器是ST-LINK V2(盗版),SWD接口4线VCC、GND、SWCLK、SWDIO。 APP程序: 按键输入: PF15,在sys_gpio_config() 函数内配置,在 main.c 227行使用,本程序未使用 运行灯:PC14,在sys_gpio_config() 函数内配置,在 main.c 49行使用,在board_config.h 9-11行定义 使用UART4,仅使用了打印功能,程序上电后..... 请下载(免费)压缩包后解压,解压出来 2个文件夹 、 两张图片 和 1个txt文件,更详细的介绍在txt文件内
资源推荐
资源详情
资源评论
收起资源包目录
STM32F407ZET6,IAP、APP程序,PF15 按键,PC14 LED,UART4 115200bps (276个子文件)
stm32f407zet6_project.uvguix.admin 176KB
stm32f407zet6_project.uvguix.admin 176KB
stm32f407zet6_project.axf 416KB
stm32f407zet6_project.axf 413KB
stm32f407zet6_project_sct.Bak 494B
keilkilll.bat 65B
keilkilll.bat 65B
stm32f4xx_rcc.c 133KB
stm32f4xx_rcc.c 133KB
stm32f4xx_tim.c 121KB
stm32f4xx_tim.c 121KB
stm32f4xx_rtc.c 100KB
stm32f4xx_rtc.c 100KB
stm32f4xx_dfsdm.c 84KB
stm32f4xx_dfsdm.c 84KB
stm32f4xx_adc.c 67KB
stm32f4xx_adc.c 67KB
stm32f4xx_can.c 65KB
stm32f4xx_can.c 65KB
stm32f4xx_flash.c 62KB
stm32f4xx_flash.c 62KB
stm32f4xx_fmc.c 61KB
stm32f4xx_fmc.c 61KB
stm32f4xx_dsi.c 60KB
stm32f4xx_dsi.c 60KB
system_stm32f4xx.c 59KB
system_stm32f4xx.c 59KB
stm32f4xx_cryp_aes.c 56KB
stm32f4xx_fmpi2c.c 56KB
stm32f4xx_cryp_aes.c 56KB
stm32f4xx_fmpi2c.c 56KB
stm32f4xx_usart.c 56KB
stm32f4xx_usart.c 56KB
stm32f4xx_i2c.c 53KB
stm32f4xx_i2c.c 53KB
stm32f4xx_spi.c 51KB
stm32f4xx_spi.c 51KB
stm32f4xx_dma.c 51KB
stm32f4xx_dma.c 51KB
stm32f4xx_sai.c 48KB
stm32f4xx_sai.c 48KB
stm32f4xx_fsmc.c 45KB
stm32f4xx_fsmc.c 45KB
stm32f4xx_pwr.c 42KB
stm32f4xx_pwr.c 42KB
stm32f4xx_ltdc.c 38KB
stm32f4xx_ltdc.c 38KB
stm32f4xx_sdio.c 38KB
stm32f4xx_sdio.c 38KB
stm32f4xx_cryp.c 34KB
stm32f4xx_cryp.c 34KB
stm32f4xx_lptim.c 33KB
stm32f4xx_lptim.c 33KB
stm32f4xx_qspi.c 31KB
stm32f4xx_qspi.c 31KB
stm32f4xx_dma2d.c 26KB
stm32f4xx_dma2d.c 26KB
stm32f4xx_dac.c 26KB
stm32f4xx_dac.c 26KB
stm32f4xx_hash.c 26KB
stm32f4xx_hash.c 26KB
stm32f4xx_gpio.c 24KB
stm32f4xx_gpio.c 24KB
stm32f4xx_cec.c 24KB
stm32f4xx_cec.c 24KB
stm32f4xx_dcmi.c 18KB
stm32f4xx_dcmi.c 18KB
board_config.c 18KB
stm32f4xx_spdifrx.c 17KB
stm32f4xx_spdifrx.c 17KB
stm32f4xx_syscfg.c 16KB
stm32f4xx_syscfg.c 16KB
board_config.c 15KB
stm32f4xx_rng.c 14KB
stm32f4xx_rng.c 14KB
misc.c 11KB
misc.c 11KB
stm32f4xx_cryp_tdes.c 10KB
stm32f4xx_cryp_tdes.c 10KB
stm32f4xx_wwdg.c 10KB
stm32f4xx_wwdg.c 10KB
stm32f4xx_cryp_des.c 9KB
stm32f4xx_cryp_des.c 9KB
stm32f4xx_exti.c 9KB
stm32f4xx_exti.c 9KB
stm32f4xx_hash_sha1.c 9KB
stm32f4xx_hash_sha1.c 9KB
stm32f4xx_hash_md5.c 9KB
stm32f4xx_hash_md5.c 9KB
main.c 9KB
stm32f4xx_iwdg.c 9KB
stm32f4xx_iwdg.c 9KB
stm32f4xx_dbgmcu.c 6KB
stm32f4xx_dbgmcu.c 6KB
stm32f4xx_it.c 5KB
stm32f4xx_it.c 5KB
stm32f4xx_flash_ramfunc.c 5KB
stm32f4xx_flash_ramfunc.c 5KB
user_json.c 5KB
user_json.c 5KB
共 276 条
- 1
- 2
- 3
资源评论
Helloo_CSDN
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功