项目场景:
之前使用得一直都是F1和F4系列的芯片,通过配置好GPIO和FSMC就可以驱动LCD屏了。
问题描述
在配置好H750的FMC之后,并且写好LCD屏的驱动,编译没有报错,烧录........... 发现LCD屏只出现了灰屏
原因分析:
H7的芯片需要先设置好MPU
解决方案:
开启MPU就可以了
初始化代码仅供参考
void MPU_Config(void)
{
MPU_Region_InitTypeDef MPU_InitStruct = {0};
HAL_MPU_Disable();
MPU_InitStruct.Enable = MPU_REGION_ENABLE; /* 使能该保护区域 */
MPU_InitStruct.Number = MPU_REGION_NUMBER0; /* 设置保护区域 */
MPU_InitStruct.BaseAddress = 0x60000000; /* 设置基地址 */
MPU_InitStruct.Size = MPU_REGION_SIZE_256MB; /* 设置保护区域 */
MPU_InitStruct.SubRegionDisable = 0x00; /* 禁止子区域 */
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
HAL_MPU_ConfigRegion(&MPU_InitStruct);
HAL_MPU_Enable(MPU_HFNMI_PRIVDEF);
}