flash学习记录1

学习flash到现在也有半年之久了,大部分是时间都是在周末进行的,学习的过程中自己也在不断的积累经验。flash包含的东西偏多,初次接触的时候让人摸不着头脑,这时候就要学会查阅不同的资料了。flash的学习不再像高中那样的方式了,因为它包含的东西比较多,简单的书本知识已经不能满足个人的学习,另一方面是因为书本上的东西已经不能包含flash的知识点,也不易于学习,更不容易掌握。网络的资源是相当强大的,这时候就要学会借助网络的资源了,不会就要学会在网上查找知识点。刚开始的时候可能会有好多的东西看不懂,但一定得坚持看下去,慢慢的就会发现自己的成长是明显的。当然学习为了运用,在学习的过程中要勇于尝试,在不断发现问题中减少问题。最近在做一个多媒体课件,本来想着很简单的问题,但在写好之后运行的时候总会遇到各种各样的问题,总之呢,不能一味的想想而不动手进行实践,实践是检验真理的唯一标准,实践也是检验自我知识是否牢固的重要标准。
### STM32 Flash 学习资料与技术笔记 STM32 Flash学习可以从其基本原理、编程操作以及实际应用展开。以下内容结合了相关引用和技术细节,帮助用户深入理解 STM32 Flash 的使用方法。 #### 1. STM32 Flash 基本原理 STM32 的 Flash 存储器分为主存储块和信息块两部分[^3]。主存储块用于存放用户程序代码,而信息块则用于存放一些特定配置信息,如选项字节等。Flash 的主要特性包括: - **启动模式**:STM32 支持三种启动模式,通过 BOOT[1:0] 引脚配置实现。最常用的是从用户闪存空间启动(Flash 空间 512K),即复位后直接从 Flash 运行程序[^1]。 - **耐用性**:用户 Flash 可以反复擦除约 10 万次,因此无需担心芯片锁死或被擦爆。 #### 2. Flash 编程操作 Flash 编程涉及写入、擦除和读取操作。以下是具体步骤和技术要点: - **写入选项字节**:在进行选项字节写入时,需要先检测忙状态 (BSY),然后解除小锁并设置控制寄存器 CR 的 OPTPG 位为 1,表示即将写入选项字节。之后通过指针写入指定地址的半字数据,并等待忙状态结束[^2]。 - **代码示例**:以下是一个简单的 Flash 写入代码示例: ```c #include "stm32f1xx_hal.h" void Flash_Write(uint32_t Address, uint16_t Data) { HAL_StatusTypeDef status; // 解锁 Flash HAL_FLASH_Unlock(); // 擦除页 FLASH_EraseInitTypeDef EraseInitStruct; EraseInitStruct.TypeErase = TYPEERASE_PAGES; EraseInitStruct.PageAddress = Address; EraseInitStruct.NbPages = 1; uint32_t PAGEError = 0; status = HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError); if (status == HAL_OK) { // 写入数据 status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, Address, Data); } // 锁定 Flash HAL_FLASH_Lock(); } ``` #### 3. 电子签名与唯一 ID STM32 的电子签名存储在系统存储器中,包含芯片识别信息,出厂时编写且不可更改。具体信息如下: - **闪存容量寄存器**:基地址为 `0x1FFFF7E0`,大小为 16 位,值表示 Flash 容量(单位 KB)。 - **产品唯一身份标识寄存器**:基地址为 `0x1FFFF7E8`,大小为 96 位,每个芯片的这 96 位数据均不同。可以利用该唯一 ID 实现加密功能,确保程序只能在指定设备上运行。 #### 4. 学习资源推荐 - **官方文档**:STMicroelectronics 提供的 STM32 数据手册和参考手册是学习 Flash 操作的最佳资源。 - **在线教程**:江科大 STM32 学习笔记(下) 和 STM32 学习基础知识笔记 是不错的入门材料。 - **实践项目**:通过实际编写 Flash 操作代码,加深对 Flash 编程的理解。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值