stm32mp157 QSPI释放clk
时间: 2023-11-13 22:54:00 浏览: 129
在STM32MP157上释放QSPI时钟需要执行以下步骤:
1. 禁用QSPI外设
2. 将QSPI时钟源设置为RCC时钟源
3. 将QSPI时钟分频系数设置为1
4. 重新使能QSPI外设
代码示例:
```
// 禁用QSPI外设
QSPI_Disable(QSPI_INSTANCE);
// 将QSPI时钟源设置为RCC时钟源
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_QSPI;
PeriphClkInitStruct.QspiClockSelection = RCC_QSPICLKSOURCE_CKPER;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
// 将QSPI时钟分频系数设置为1
RCC_PeripheralClocksTypeDef RCC_PeripheralClocks;
HAL_RCC_GetPeriphCLKDivision(&RCC_PeripheralClocks);
RCC_PeripheralClocks.QspiClockSelection = RCC_QSPIDIV_1;HAL_RCCEx_PeriphCLKConfig(&RCC_PeripheralClocks);
// 重新使能QSPI外设
QSPI_Enable(QSPI_INSTANCE);
```
相关问题
stm32mp157 QSPI读寄存器
要读取STM32MP157的QSPI寄存器,可以使用以下代码:
```
#include "stm32mp1xx_hal.h"
#include "stm32mp1xx_hal_qspi.h"
QSPI_HandleTypeDef hqspi;
void read_qspi_register(uint8_t reg_addr, uint8_t *reg_val)
{
uint8_t command[2];
command[0] = reg_addr;
command[1] = 0;
HAL_QSPI_Command(&hqspi, command, 2, 0);
HAL_QSPI_Receive(&hqspi, reg_val, 1, 1000);
}
```
其中,hqspi是已经初始化的QSPI句柄,reg_addr是要读取的寄存器地址,reg_val是读取结果的存储地址。
stm32mp157和stm32mp135比较
STM32MP157和STM32MP135都是STMicroelectronics推出的基于Arm Cortex-A7和Cortex-M4内核的双核处理器。它们都采用了28nm工艺制造,支持多种接口,例如USB、Ethernet、UART、SPI、I2C等等,同时支持多种存储介质,例如DDR3L、eMMC、SD卡、NAND Flash等等。它们还都拥有强大的安全性能,包括支持安全启动、加密算法、安全存储等等。
然而,两者之间还是存在一些差异的。STM32MP157相对于STM32MP135来说,处理器的频率更高,可以达到650MHz,而STM32MP135只能达到650MHz。此外,STM32MP157还支持更多的接口和存储介质,例如PCIe和QSPI Flash等等。此外,STM32MP157支持更高级别的图形处理,例如OpenGL ES 2.0和OpenVG 1.1,而STM32MP135只支持OpenGL ES 1.1。
因此,如果你需要更高的处理器频率、更多的接口和存储介质以及更高级别的图形处理,那么STM32MP157可能更适合你的需求。但是如果你的应用只需要较低的处理器频率和基本的接口和存储介质,那么STM32MP135可能更加经济实惠。
阅读全文