我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1176|回复: 0

利用fsmc控制液晶命令和数据操作地址赋值方法

[复制链接]

该用户从未签到

1

主题

2

回帖

3

积分

一级逆天

积分
3

社区居民

QQ
发表于 2014-12-24 10:04:20 | 显示全部楼层 |阅读模式
stm32 fsmc3分区控制为例:
寄存器基地址 = 0X6C00 0000
写指令地址计算:#define LCD_ CMD (*((vu16 *) 0x6c000000+2^0*0= 0X6C00 0000))
写数据地址计算:#define LCD_DATA (*((vu16 *) 0x6c020000+2^p*2))   注:其中p指数据命令线挂在第几个总线上  当选择不同的地址线时,地址要重新计算  

rg
1:液晶的数据指令控制线挂载在A0上则
#define LCD_ CMD (*(volatileu16 *)0x6c000000)//RS0,写指令  利用FSMC_A0地址线控制这个引脚 FSMC_A0=0
#define LCD_ DATA (*(volatileu16 *)0x6c000000+2^0*2)= 0x6c000002   //RS1,写数据  利用FSMC_A0地址线控制这个引脚 FSMC_A0=1

2 eg:液晶的数据指令控制总线挂载在A16上则
/*A16=1 -- cmd*/
#define LCD_CMD (*((vu16 *) 0x6c000000))
/*A16=0 -- dat*/
#define LCD_DATA (*((vu16 *) 0x6c000000+2^16*2))= 0x6c020000      //A16
写数据时:LCD_DATA = data;
读数据时:data = LCD_DATA;
读命令时:data = LCD_CMD;
写命令时:LCD_CMD=data;

3:又eg:液晶的数据指令总线挂载在A23上则:
#define LCD_CMD(*((vu16 *) 0x6c000000))            //Disp Reg ADDR
#define LCD_DATA(*((vu16 *) 0x6c000000+2^23*2)) =0x6D000000)        // A23 PE2


回复

使用道具 举报

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

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表