OpenEdv-开源电子网

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

viod LCD_WR_REG(VU16 REGVAL)求助

[复制链接]

8

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-9
在线时间
5 小时
发表于 2014-12-29 09:49:48 | 显示全部楼层 |阅读模式
5金钱

//写寄存器函数
//regval:寄存器值
void LCD_WR_REG(vu16 regval)
{  
 regval=regval;  //使用-O2优化的时候,必须插入的延时
 LCD->LCD_REG=regval;//写入要写的寄存器序号 
}


我对此函数的理解是regval是命令,从后面void LCD_Init(void)里面,LCD_WR_REG(0XD3),也得到了证实。

请求确认这两处是否冲突?我的理解对还是例子的注释对?

最佳答案

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

这就是写入一个寄存器,完全不存在难理解啊。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-12-29 09:49:49 | 显示全部楼层
这就是写入一个寄存器,完全不存在难理解啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-12-29 11:12:13 | 显示全部楼层
它的操作是往该地址写数据,至于功能,建议你翻手册。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

8

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-9
在线时间
5 小时
 楼主| 发表于 2014-12-29 13:52:56 | 显示全部楼层
回复【2楼】styleno1:
---------------------------------
我看了好几遍,有问问题请教:
typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;
//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A6作为数据命令区分线 
//注意设置时STM32内部会右移一位对其! 111 1110=0X7E     
#define LCD_BASE        ((u32)(0x6C000000 | 0x0000007E))
#define LCD             ((LCD_TypeDef *) LCD_BASE)
当:
void LCD_WR_REG(vu16 regval)
 {   
  regval=regval;  //使用-O2优化的时候,必须插入的延时
 LCD->LCD_REG=regval;//写入要写的寄存器序号  
 } 
也就是将regval的值,通过数据线,送到内存0x6C00007E。但是,由于rs是上接的是0,所以送来的数据被认为是对地址寻址?所以是要写入的寄存器的序号?
回复

使用道具 举报

8

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-9
在线时间
5 小时
 楼主| 发表于 2014-12-29 13:54:41 | 显示全部楼层
求大神指导啊!
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2019-8-26
在线时间
3 小时
发表于 2019-9-5 17:35:51 | 显示全部楼层
正点原子 发表于 2014-12-29 09:49
这就是写入一个寄存器,完全不存在难理解啊。

我就想问一下定义typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;
通过代码LCD->LCD_REG=regval
我猜想只有LCD_REG和LCD_RAM都指向FSMC_D0~FSMC_D15,然后又FSMC自主控制,完成读写操作,但是为什么LCD_REG和LCD_RAM都指向FSMC_D0~FSMC_D15的呢?不太清楚硬件怎么实现这个功能的?

回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2019-8-30
在线时间
31 小时
发表于 2020-3-24 11:21:26 | 显示全部楼层
void LCD_WR_REG(vu16 regval)
{   
        regval=regval;                //使用-O2优化的时候,必须插入的延时
        LCD->LCD_REG=regval;//写入要写的寄存器序号         
}
我有这里有一个疑问,不加这一行regval=regval可以吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 07:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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