1.FLASH主存储器每页字节数不同
stm32f103RBT6: 128K byte的FLASH; 中等容量 其FLASH主存储器每页1K字节;
stm32f103C8T6: 64K byte的FLASH; 中等容量 其FLASH主存储器每页1K字节;
stm32f103ZET6: 512K byte的FLASH; 大容量; 其FLASH主存储器每页2K字节;
因此在stmflash.h头文件里要输入单片机的FLASH容量,例如 stm32f103RBT6单片机的设置:
#define STM32_FLASH_SIZE 128 //所选STM32的FLASH容量大小(单位为K)
在stmflash.c文件里会自动计算页字节数:例如:
#if STM32_FLASH_SIZE<256
#define STM_SECTOR_SIZE 1024 //字节
#else
#define STM_SECTOR_SIZE 2048
#endif
2. FLASH总容量不同
stm32f103C8T6: 64K = 64*1024 = 0x10000;
stm32f103RBT6: 128K = 128*1024 = 0x20000;
stm32f103ZET6: 512K = 512*1024 = 0x80000;
3. 在main.c函数里设置的存取地址范围就不同;
#define FLASH_SAVE_ADDR 0x08010000 (例如stm32f103RBT6可以这样设置)
//设置FLASH 保存地址(必须为偶数,且其值要 大于本代码所占用FLASH的大小+0x08000000)
#define FLASH_SAVE_ADDR 0x08070000 (例如stm32f103ZET6可以这样设置)
//设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0x08000000)
#define FLASH_SAVE_ADDR 0x08008000 (例如stm32f103C8T6可以这样设置)
//设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0x08000000)



