OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 818|回复: 4

[STM32练习题] 将LCD结构体改成直接操作地址形式,驱动LCD

[复制链接]

  离线 

511

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
133718
金钱
133718
注册时间
2010-12-1
在线时间
1279 小时
发表于 2017-8-1 18:01:32 | 显示全部楼层 |阅读模式
我们例程,原来是:
[C] 纯文本查看 复制代码
//LCD地址结构体
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)

发现大家比较难理解,改为直接访问地址方式:
[C++] 纯文本查看 复制代码
#define TFT_REG  * (vu16*)(0X6C000000|(0<<11))
#define TFT_RAM  * (vu16*)(0X6C000000|(1<<11))

改成这种方式后,就比较直白了,方便初学者掌握。
代码可以写成:
[C] 纯文本查看 复制代码
//写寄存器函数
//regval:寄存器值
void LCD_WR_REG(u16 regval)
{   
	TFT_REG=regval;//写入要写的寄存器序号	 
}
//写LCD数据
//data:要写入的值
void LCD_WR_DATA(u16 data)
{	 
	TFT_RAM=data;		 
}
//读LCD数据
//返回值:读到的值
u16 LCD_RD_DATA(void)
{
	vu16 ram;			//防止被优化
	ram=TFT_RAM;	
	return ram;	 
}					   
//写寄存器
//LCD_Reg:寄存器地址
//LCD_RegValue:要写入的数据
void LCD_WriteReg(u16 LCD_Reg,u16 LCD_RegValue)
{	
	TFT_REG = LCD_Reg;		//写入要写的寄存器序号	 
	TFT_RAM = LCD_RegValue;//写入数据	    		 
}	   
//读寄存器
//LCD_Reg:寄存器地址
//返回值:读到的数据
u16 LCD_ReadReg(u16 LCD_Reg)
{										   
	LCD_WR_REG(LCD_Reg);		//写入要读的寄存器序号
	delay_us(5);		  
	return LCD_RD_DATA();		//返回读到的值
}   
//开始写GRAM
void LCD_WriteRAM_Prepare(void)
{
 	LCD->LCD_REG=lcddev.wramcmd;	  
}	 
//LCD写GRAM
//RGB_Code:颜色值
void LCD_WriteRAM(u16 RGB_Code)
{							    
	LCD->LCD_RAM = RGB_Code;//写十六位GRAM
}

实验13 TFTLCD显示实验.rar (326.94 KB, 下载次数: 201)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

  离线 

1

主题

10

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2017-7-20
在线时间
6 小时
发表于 2017-8-1 18:03:20 | 显示全部楼层
我又在第一时间粗线了
回复 支持 反对

使用道具 举报

  离线 

15

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2015-4-28
在线时间
79 小时
发表于 2017-8-1 18:20:51 | 显示全部楼层
顶     
回复 支持 反对

使用道具 举报

  离线 

5

主题

104

帖子

0

精华

高级会员

Rank: 4

积分
669
金钱
669
注册时间
2014-9-29
在线时间
192 小时
发表于 2017-8-3 09:34:28 | 显示全部楼层
改了之后地址不相同了?
回复 支持 反对

使用道具 举报

  离线 

53

主题

608

帖子

0

精华

高级会员

Rank: 4

积分
890
金钱
890
注册时间
2013-3-29
在线时间
18 小时
发表于 2017-8-6 15:17:27 | 显示全部楼层
这个教的非常仔细和认真。我后悔没有去报名、
学电子,学音乐!!
回复 支持 反对

使用道具 举报

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

本版积分规则




关闭

报名原子哥新品发布会&粉丝见面会上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-10-18 21:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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