FLASH怎么写入三个字节
时间: 2023-12-14 22:39:21 浏览: 30
在FLASH中写入三个字节可以通过以下步骤实现:
1. 将三个字节数据存储在一个32位的变量中。
2. 打开FLASH写入/擦除功能,设置写入地址,长度和数据缓存区。
3. 在数据缓存区中将32位变量的值写入前三个字节。
4. 关闭FLASH写入/擦除功能。
下面是一个简单的示例代码:
```
uint32_t flash_data = 0xAABBCC00; // 三个字节的数据
FLASH_Unlock(); // 解锁FLASH写入/擦除功能
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR);
FLASH_ErasePage(FLASH_BASE_ADDRESS); // 擦除FLASH页面
FLASH_ProgramWord(FLASH_BASE_ADDRESS, flash_data); // 写入32位变量的值
FLASH_Lock(); // 锁定FLASH写入/擦除功能
```
在上面的代码中,`FLASH_BASE_ADDRESS`表示要写入数据的FLASH地址,`FLASH_Unlock()`和`FLASH_Lock()`分别用于解锁和锁定FLASH写入/擦除功能,`FLASH_ClearFlag()`用于清除写入/擦除操作的标志位,`FLASH_ErasePage()`用于擦除FLASH页面,`FLASH_ProgramWord()`用于将32位变量的值写入FLASH。
相关问题
STM32F407 1M的内部存储器 扇区三的大小16K 我写入一个156字节的数组,需要多长时间
STM32F407芯片的内部存储器扇区三大小为16KB,即包含128个页,每个页的大小为128字节。如果你要写入一个156字节的数组,那么需要先将整个扇区擦除,然后再进行写入操作。擦除整个扇区的时间约为40ms左右,写入156字节的时间约为10us左右。
因此,总的时间约为40.01ms左右。需要注意的是,这里的时间是估算值,实际时间可能会因为各种因素而有所差异,比如系统时钟频率、Flash操作速度等。
norflash擦写
NorFlash的擦写过程是将对应的Page擦除,即将所有位都写为1的过程,这是Flash的编程原理决定的。在NorFlash中,CPU读取地址0和1对应的字节时,Flash会返回第一个字,即地址为0的字节。而NorFlash没有本地坏区管理,因此一旦存储区块发生毁损,软件或驱动程序必须处理这个问题,否则可能会导致设备出现异常。在解锁、抹除或写入NorFlash区块时,会先写入已擦除的记忆区的第一页(Page),然后NorFlash芯片会提供可用的指令清单给实体驱动程序,这些指令是由一般性闪存接口(CFI)所定义的。与用于随机存取的ROM不同,NorFlash也可以用于存储设备,但相比NAND Flash,NorFlash的写入速度一般会慢很多。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [NOR Flash的三种基本操作擦(erase),写(write),更新(update)实现方式](https://blog.csdn.net/bkyy123/article/details/80167344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [NOR Flash擦写和原理分析 (一)](https://blog.csdn.net/u012351051/article/details/81032913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]