stm32H7 backup sram 使用
时间: 2023-07-11 10:52:19 浏览: 148
STM32H7系列MCU的Backup SRAM(备份SRAM)是备份域中的一部分,可以用于存储一些关键数据,比如RTC的值、备份寄存器的值等等,即使在断电情况下这些数据也能够被保留。Backup SRAM的容量根据具体型号的不同而有所差异,一般在几KB到几十KB之间。
使用Backup SRAM需要进行如下步骤:
1. 使能Backup SRAM时钟,例如:
```c
__HAL_RCC_BKPSRAM_CLK_ENABLE();
```
2. 配置Backup SRAM的访问权限,例如:
```c
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_BKPSRAM_CLK_ENABLE();
```
3. 读写Backup SRAM,例如:
```c
#define BKPSRAM_BASE (0x40024000UL)
#define BKPSRAM_SIZE (0x400UL) // 1KB
uint32_t* p_bkpsram = (uint32_t*)BKPSRAM_BASE;
*p_bkpsram = 0x12345678;
```
需要注意的是,Backup SRAM的读写速度相比其他存储器要慢一些,因此在存取时需要注意效率。此外,为了保证数据的可靠性,建议在写入数据时进行校验,确保数据的正确性。
相关问题
stm32H723 backup sram 初始化
对于STM32H723,使用Backup SRAM需要进行如下初始化步骤:
1. 使能Vbat电源时钟,例如:
```c
__HAL_RCC_PWR_CLK_ENABLE();
HAL_PWREx_EnableVbat();
```
2. 使能备份域时钟,例如:
```c
__HAL_RCC_BKPRAM_CLK_ENABLE();
```
3. 配置备份域的访问权限,例如:
```c
HAL_PWR_EnableBkUpAccess();
```
4. 配置Backup SRAM的大小,例如:
```c
HAL_PWR_EnableBkUpRegulator();
__HAL_RCC_BKPRAM_CLK_ENABLE();
HAL_RCCEx_SelectLSEClock(RCC_LSE_LOWPOWER_MODE, RCC_LSE_DIV2); // 选择LSE作为RTC时钟源
HAL_RCCEx_EnableLSECSS(); // 使能LSE时钟监测
while(!HAL_RCCEx_LSECSS_GetFlagStatus()); // 等待LSE时钟监测完成
PWR_BackupAccessCmd(ENABLE);
__HAL_RCC_BKPRAM_CLK_ENABLE();
/* 设置备份SRAM的容量为4KB */
HAL_StatusTypeDef status = HAL_PWREx_EnableBkUpReg(BKP_DR1, PWR_BKPREG_SIZE_4B);
if(status != HAL_OK) {
/* 备份SRAM初始化失败 */
while(1);
}
```
需要注意的是,备份SRAM的容量在STM32H723中通过调用`HAL_PWREx_EnableBkUpReg()`函数来设置,该函数的第一个参数为备份寄存器的地址,第二个参数为备份寄存器的大小,可以选择2B、4B或16B。在上述代码中,我们将备份SRAM的容量设置为4KB,备份寄存器的地址为BKP_DR1。
5. 读写Backup SRAM,例如:
```c
#define BKPSRAM_BASE (0x40024000UL)
#define BKPSRAM_SIZE (0x1000UL) // 4KB
uint32_t* p_bkpsram = (uint32_t*)BKPSRAM_BASE;
*p_bkpsram = 0x12345678;
```
在进行Backup SRAM的读写操作时,需要注意地址的范围不要超出备份SRAM的容量,否则会出现未定义的行为。
stm32H7SDIO
STM32H7SDIO是指STM32H7系列微控制器的SDIO接口。在STM32H7平台上,可以通过SDIO接口连接SD卡,并使用DMA传输数据。为了在使用FreeRTOS实时操作系统的情况下正常工作,需要进行一些硬件设置和内存分配。在设置操作系统可使用的堆栈时,最好设置较大的值,因为操作系统版本的sd_diskio.h文件中使用了队列进行进程间通信。在STM32H7的内部SRAM较大的情况下,可以直接给操作系统分配256KB的内存,并选择默认的heap_4算法进行内存分配。
另外,如果想要在STM32H743上驱动16G EMMC进行测试,可以移植从官方获取的测试程序。测试结果显示,读速度为22.1Mbyte/S,写速度为33.3Mbyte/S。这个驱动程序已经在项目中进行了稳定可靠的应用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)