streamlee 发表于 2020-3-20 11:34:49

STM32H750使用FMC控制LCD数据异常

      简单来说就是:给lcd发送1个数据,逻辑分析仪检测到4个数据波形,其中只有第一个数据是我要发送的!
      工程是用Cube配置的,同样的配置在F407上正常,LCD能正常显示,但是H750只有单字节命令ok(开关屏显,sleep等),无法正常显示,最后拿逻辑分析仪检测到:发一个数据会出现4个数据波形,只有第一个数据波形是正常的,后边的数据波形不知道怎么来的。

#define Lcd_Cmd_Reg*((__IO uint16_t *)((uint32_t)0x60000000)) // ?? ?? C/D(A19)=1
#define Lcd_Data_Reg *((__IO uint16_t *)((uint32_t)0x60100000)) //?? C/D(A19)=0
//写寄存器函数
//regval:寄存器值
static void LCD_WR_REG(uint16_t regval)
{
   Lcd_Cmd_Reg = regval; //写入要写的寄存器序号
}

//写LCD数据
//data:要写入的值
static void LCD_WR_DATA(uint16_t data)
{
   Lcd_Data_Reg = data;
}
//LCD开启显示
void LCD_DisplayOn(void)
{
   LCD_WR_REG(0x11);//Sleep out
   osDelay(120);
   LCD_WR_REG(0x29);// Display on
}    图片波形是发送0x11的波形

streamlee 发表于 2020-3-20 13:40:24

补充一点:H750在cube配置中没有使能i-cache,d-cache,mpu

zhikaiwu 发表于 2020-3-25 14:58:33

MPU需要设置一下

zhikaiwu 发表于 2020-3-25 15:25:18

void MPU_Config(void)
{
MPU_Region_InitTypeDef MPU_InitStruct = {0};

/* Disables the MPU */
HAL_MPU_Disable();
/** Initializes and configures the Region and the memory to be protected
*/
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 = 0x0;
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);
/* Enables the MPU */
HAL_MPU_Enable(MPU_HFNMI_PRIVDEF);

}

zhikaiwu 发表于 2020-3-25 15:52:26

开CACHE ,按我上面的代码就可以了

huangxuejia-292 发表于 2020-3-25 23:21:45

我百度网盘有H750+FSMC+9341 TFT LCD的代码
用STM32CubeIDE编译的。
有需要的话去我网站www.wujique.com

streamlee 发表于 2020-4-20 15:03:12

zhikaiwu 发表于 2020-3-25 15:25
void MPU_Config(void)
{
MPU_Region_InitTypeDef MPU_InitStruct = {0};


谢谢,已解决,主要是MPU和指令数据地址需要修改

streamlee 发表于 2020-4-20 15:05:00

huangxuejia-292 发表于 2020-3-25 23:21
我百度网盘有H750+FSMC+9341 TFT LCD的代码
用STM32CubeIDE编译的。
有需要的话去我网站www.wujique.com ...

多谢,已解决
页: [1]
查看完整版本: STM32H750使用FMC控制LCD数据异常