请选择 进入手机版 | 继续访问电脑版

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

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出现的波形
收藏 评论10 发布时间:2020-3-20 11:34

举报

10个回答
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

查看全部评分

wujique 回答时间: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 ...

多谢,已解决
weiwen1990 回答时间:2020-10-30 20:43:23
你好,我遇到和你一样的问题,FMC操作一个地址,实际IO上会出现4次操作,请问是什么原因,怎么解决的?能否解答一下!着急!谢谢!
xudongqiang 回答时间:2021-2-22 11:10:08
你好 能发一下F4的程序嘛?谢谢,xudongqiang987@126.com
xudongqiang 回答时间:2021-2-22 11:21:07
你好 能发一下F4跟H7的程序嘛?谢谢,xudongqiang987@126.com
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版