OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1309|回复: 2

关于fsmc问题。rs时如何运作的?

[复制链接]

21

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
384
金钱
384
注册时间
2023-7-23
在线时间
89 小时
发表于 2023-10-5 15:37:20 | 显示全部楼层 |阅读模式
5金钱
关于rs如何运作的。
程序里用了一个结构体lcd来控制,lcd结构体被强制在0x6c0007fe。所以LCD_RED地址为0x6c0007fe和0x6c0007ff,LCD_RAM地址则是0x6c00080和0x6c00081。然后在寻找tftlcd型号时,由于我的型号是7789,所以当执行代码。
    if (lcddev.id != 0X9341)            //不是 9341 , 尝试看看是不是 ST7789
    {
        LCD_WR_REG(0X04);
        lcddev.id = LCD_RD_DATA();      //dummy read
        lcddev.id = LCD_RD_DATA();      //读到0X85
        lcddev.id = LCD_RD_DATA();      //读取0X85
        lcddev.id <<= 8;
        lcddev.id |= LCD_RD_DATA();     //读取0X52


        if (lcddev.id == 0X8552)        //将8552的ID转换成7789
        {
            lcddev.id = 0x7789;
        }

能得到正确的id

但是,我当时打开仿真用内存监视0x6c0007fe然后步进程序时,发现内存是这样的:FF FF 00 00 85 00 00 85 00 52 00 00.....然后LCD_RAM的值一直不是85和52。而这个过程一旦不监视内存时程序就能正确读取到值!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8205
金钱
8205
注册时间
2020-5-11
在线时间
3700 小时
发表于 2023-10-9 10:55:38 | 显示全部楼层
你监视的内存里不是出现了85和52吗,是监视时得到的lcddev.id不对吗?不是0X8552吗?那是多少呢?
监测的0x6c0007fe数据是8位还是16位?
LCD的数据引脚连接的是8位还是16位?
专治疑难杂症
回复

使用道具 举报

21

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
384
金钱
384
注册时间
2023-7-23
在线时间
89 小时
 楼主| 发表于 2023-10-10 19:34:45 | 显示全部楼层
LcwSwust 发表于 2023-10-9 10:55
你监视的内存里不是出现了85和52吗,是监视时得到的lcddev.id不对吗?不是0X8552吗?那是多少呢?
监测的0 ...

我盯着他时,他是有85和52,但是位置不对,所以结果不对。我不盯着他看的时候,他结果是对了,但是我不知道过程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表