上传者: robinson_911 
                                    |
                                    上传时间: 2021-12-25 16:54:15
                                    |
                                    文件大小: 961KB
                                    |
                                    文件类型: -
                                
                            
                                
                            
                                感觉stm32官方的IAP例程写的太乱了,于是自己写了个串口IAP,希望可以帮助到正在或者即将学习IAP的童鞋们!
用的MCU是stm32f103ze,编译工具室IAR 5.4,仅仅用了USART1,不需要按键来,即仅仅使用了2个管脚,就实现了串口IAP的功能。
大概思路如下:
IAP部分:IAP地址如下
#define StartAddr               ((u32)0x08000000)
#define EndAddr               ((u32)0x08010000)  
IAP 程序部分大概思路:
              1.将 通过串口接收的APP文件利用数组先保存下来存储到USART_Buffer中
              2.if(USART_RX_BUF[0]==0xAF)// WRITE APP TO FLASH
                  当串口接收到AF时,将APP文件写入到flash中
              3.   if (USART_RX_BUF[0]==0xAC)// RUN APP
                  当串口接收到AC时,开始运行APP文件,不返回!
APP部分:APP地址如下
#define StartAddr               ((u32)0x08010000)
#define EndAddr                 ((u32)0x0807ffff)   
将APP的中断向量表定位到  ((u32)0x08010000)   ,具体可以参见我上传的程序!