你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H750使用FMC控制LCD数据异常

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

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

  9. //写LCD数据
  10. //data:要写入的值
  11. static void LCD_WR_DATA(uint16_t data)
  12. {
  13.    Lcd_Data_Reg = data;
  14. }
  15. //LCD开启显示
  16. void LCD_DisplayOn(void)
  17. {
  18.    LCD_WR_REG(0x11);//Sleep out
  19.    osDelay(120);
  20.    LCD_WR_REG(0x29);// Display on
  21. }
复制代码
   图片波形是发送0x11的波形

发送命令0x11出现的波形

发送命令0x11出现的波形
收藏 评论7 发布时间:2020-3-20 11:34

举报

7个回答
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 ,按我上面的代码就可以了

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

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 ...

多谢,已解决

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版