打印
[资料分享与下载]

向按键控制液晶屏

[复制链接]
801|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
仙女山|  楼主 | 2015-8-6 08:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的:使用五向按键控制液晶屏显示不同的图片内容


基本的硬件连接
1.首先介绍一下五向按键的硬件连接方式
五向按键是通过连接了一个下拉电阻接到了地,在配置MCU是需要将GPIO配置为上拉模式这样是GPIO采集到的信号更准确。



2.液晶屏是通过FLEXBUS连接到MCU的。



软件的配置方法
简要介绍一下软件的配置方法,首先MCU的给个引脚都是复用的方式,并且还有中断和GPIO,在这里我们是将引脚配置成了GPIO模式再读取IO的值进行判断按键是否有按下。
在使用GPIO时要配置一下寄存器
  • I/O模块时钟配置寄存器SCGC5[PORTx]
  • I/O的控制与中断寄存器PORTx
  • I/O控制寄存器n PORTx_PCRn
  • GPIO输入数据寄存器GPIOx_PDIR
  • GPIO设置方向寄存器GPIOx_PDDR
官方给出的库函数中可以有两个层面的选择,一个是HAL层,另一个是Driver层配置,
简单的理解HAL层的函数更贴近硬件函数简单功能单一,Driver层函数相对复杂,功能强大。
在本次实例中使用的是HAL层的函数配置的GPIO
  • 使用SIM_HAL_EnablePortClock使能对应硬件的端口
  • 使用PORT_HAL_SetMuxMode将引脚配置成GPIO模式
  • 使用GPIO_HAL_SetPinDir再将对应的引脚配置成输入模式
  • 使用PORT_HAL_SetPullCmd使能上下拉电阻模式
  • 使用PORT_HAL_SetPullMode配置上拉电阻模式
这样就配置好了GPIO的基本模式
接下来就可以使用GPIO_HAL_ReadPinInput读取引脚的值,
按键程序中还要添加消抖,和松手检测,这样才算是一个相对完整的按键程序,同时也提高了按键程序的稳定性。
另外LCD的显示比较复杂今天这里就不做介绍了
官方给出的库函数中给出了显示用的函数可以直接调用,简要介绍一下图片在LCD上的显示原理,图片在程序中是以数组的形式存在的,显示的时候是将数组中的每个像素点的值读出送给显示控制器,在屏幕上显示一个像素点,逐行逐列的显示就实现了一个画面,图片到数组的转化需要一些小工具,例如:Image2Lcd
将图片到工具中转化为数组添加到程序中,使用的时候直接调用就可以了,
我在这个例程中使用的是
初始化 显示 hello world
中间的按键显示ECBC 各个方向键显示各个方向的箭头。
下面是显示的照片。
初始化

中间按键

方向按键上

方向按键下

方向按键左

方向按键右


相关帖子

沙发
FSL_TICS_Jeremy| | 2015-8-6 09:00 | 只看该作者
谢谢楼主分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

340

帖子

2

粉丝