OpenEdv-开源电子网

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

LCD的三个很不理解的问题

[复制链接]

8

主题

17

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-4-17
在线时间
5 小时
发表于 2016-10-16 14:22:50 | 显示全部楼层 |阅读模式
1金钱
问题一:
写寄存器值函数 :voidLCD_WR_REG(u16 regval)
这个函数是不是就是写指令啊?什么是写寄存器值呢?9341不就是写指令或者写数据吗?
问题二:
    vu16 ram;            //防止被优化
这个防止被优化还有-o在视频中说的很模糊,对于初学者很难懂啊,能解释一下吗?
问题三:    LCD_WriteReg(0x0000,0x0001);
    delay_ms(50); // delay 50 ms
      lcddev.id = LCD_ReadReg(0x0000);  
读id的时候这两句话是什么意思呢,实在搞不懂,ppt里没有写这个指令啊

最佳答案

查看完整内容[请看2#楼]

1,你也可以理解为写指令。他也可以写寄存器值。 2,就是-o2优化的时候,会导致读写异常,至于为什么异常自己去看汇编代码。改为vu16后,就可以防止这种异常导致的错误结果。 3,第一句可以去掉。第二句,对9341来说,就是读ID了。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-10-16 14:22:51 | 显示全部楼层
1,你也可以理解为写指令。他也可以写寄存器值。
2,就是-o2优化的时候,会导致读写异常,至于为什么异常自己去看汇编代码。改为vu16后,就可以防止这种异常导致的错误结果。
3,第一句可以去掉。第二句,对9341来说,就是读ID了。。。
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2016-10-16 23:32:39 | 显示全部楼层
问题一:
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2016-10-16 23:41:54 | 显示全部楼层
问题一:
typedef struct
{
        vu16 LCD_REG;
        vu16 LCD_RAM;
} LCD_TypeDef;
//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令区分线
//注意设置时STM32内部会右移一位对其!                             
#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)
void LCD_WR_REG(u16 regval)
{   
        LCD->LCD_REG=regval;//写入要写的寄存器序号         
}
上面这些看懂了,就知道了,LCD_BASE 中是一个地址,这个地址和LCD对应起来了。


回复

使用道具 举报

18

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1068
金钱
1068
注册时间
2012-6-18
在线时间
158 小时
发表于 2016-10-17 00:00:50 来自手机 | 显示全部楼层
LCD_WriteReg(0x0000,0x0001); //写指令到寄存器    delay_ms(50); // delay 50 ms 等待屏反映一下        lcddev.id = LCD_ReadReg(0x0000);//读 处屏的ID值
回复

使用道具 举报

8

主题

17

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-4-17
在线时间
5 小时
 楼主| 发表于 2016-10-18 11:02:58 | 显示全部楼层
xiedonghui258 发表于 2016-10-16 23:41
问题一:
typedef struct
{

这个我明白。我是想说,应该是写指令吧,不是写寄存器吧。
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2016-10-18 12:53:40 | 显示全部楼层
vu16 ram;
V字头的是防止编译器自动优化的,如果优化了,有可能这个ram是8位,
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2016-10-18 12:59:39 | 显示全部楼层
不知道楼主看的这个没,,
1.png
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 23:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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