关于STM32的Flash使用规划以及程序设计(以f407ZGT6为例)

关于STM32的Flash使用规划以及程序设计(以f407ZGT6为例)

在涉及到比较多功能应用的时候,我们在对单片机内存资源的应用也是做一些规划比较好。不可胡乱的做内存的划分。
1.STM32F407ZGT6的Flash资源:
在这里插入图片描述
共有12个扇区,1M的Flash。

2.Flash使用的扇区规划:
在这里,我假定单片机的功能需求有:IAP程序升级功能,参数存取,默认参数备份。
(1)关于IAP程序,我们一般把它放在扇区0与扇区1共32K的Flash大小即可,一般我们会涉及到单片机上在IAP程序运行时去判断是否需要进行升级,而这我们可以添加一个程序升级标志位,把它放到BKP备用寄存器中即可;
(2)APP程序存放,可以放在继IAP程序之后的扇区2、3、4、5共224KB的大小,这在工业应用上也能够满足了;
(3)参数存放,个人是把程序运行中涉及到一些参数放到了扇区6、7共256K大小,有人会有疑问,说程序中涉及的参数用不到这么大的空间,这个也确实是,但是之所以放两个扇区,是因为其中一个是作为备用的,当遇到当前存放扇区存放数据快满时我们可以根据自己想要保留的一些参数读取到RAM然后再写进参数备用的扇区之中,因为Flash的擦除就必须擦除整个扇区的特性,不得已而为之;
(4)默认参数备份,根据参数大小设置即可,一般一个扇区就足够了,这里主要是防止,因各种特殊的原因导致程序需要用到的参数受损,这个时候便可通过程序判断然后将默认的备份的参数复制到参数区进行使用。
在这里插入图片描述

3.关于Flash的使用
在书写代码之前就要设计需要使用到的Flash扇区,因为Flash擦除的时候,单片机处于无应答的状态,所以在单片机上电程序运行功能函数之前,把需要用到的扇区先进行擦除,以免后面遇到要用的时候进行扇区擦除操作会使得程序的响应节拍打乱。

4.附上我写的一份简单的功能代码吧,博客都写了感觉不放点代码总觉的怪怪的,哈哈哈哈

https://download.csdn.net/download/tiange1996/85045074

### STM32F407ZGT6 和 GD32F407ZGT6 的规格对比 #### 1. 基本参数比较 STM32F407ZGT6 和 GD32F407ZGT6 都属于高性能微控制器系列,基于 ARM Cortex-M4 内核设计。然而,在具体的技术细节上存在一些差异。 - **内核频率** - STM32F407ZGT6 支持最高达 168 MHz 的工作频率[^3]。 - GD32F407ZGT6 同样支持高达 168 MHz 的主频操作[^4]。 - **闪存大小** - STM32F407ZGT6 提供了 1 MB Flash 存储器容量[^3]。 - GD32F407ZGT6 则提供稍低一点的 512 KB Flash 容量[^4]。 - **RAM 大小** - STM32F407ZGT6 拥有 192 KB SRAM[^3]。 - GD32F407ZGT6 配备了 128 KB SRAM[^4]。 #### 2. 接口和支持外设 两款芯片都提供了丰富的接口选项,包括但不限于 SPI、I²C、USART 等标准通信协议的支持。不过: - **USB OTG FS/HS** - STM32F407ZGT6 支持 USB On-The-Go Full Speed (FS) 及 High Speed (HS)[^3]。 - GD32F407ZGT6 主要强调对 USB OTG FS 的兼容性[^4]。 - **ADC/DAC 数模转换精度** - STM32F407ZGT6 中集成的是 12-bit ADCs 和 DACs[^3]。 - GD32F407ZGT6 类似地也采用了相同位数级别的 AD 转换组件[^4]。 #### 3. 生态系统与工具链 尽管硬件特性相似,但在软件开发环境方面有所区别: - STMicroelectronics 为 STM32 用户提供了完善的 HAL 库以及 CubeMX 初始化配置工具;而 GigaDevice 对于 GD32 平台也有相应的库文件和 IDE 插件支持,但社区活跃度可能不及前者。 综上所述,虽然这两款 MCU 在架构层面非常接近,但从资源分配到生态系统建设等方面仍存在一定差距。对于开发者而言,选择哪一款取决于项目需求和个人偏好等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修才生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值