uart的后续,控制开发板按键,并且与led进行联系

说在前面

其实我一直以为简单的东西可以不用做笔记或者记录。
直到现在我发现我错了
第一次学的时候是觉得很简单所以就没怎么做笔记,当时过两天还能写出来,但是到了后面一点,就算是最简单的东西也会忘记。所以还是一步步从头记录吧

用轮询的方式去控制按键。

轮询就是一直在扫描等待是否有响应的信息出现。
其实控制按键还是挺简单的,不论什么开发板。但是要注意寄存器的配置。

通过看原理图得知要配置的按键的对应寄存器是哪些。

在这里插入图片描述
在这里插入图片描述

用GPH0为例子

2.2.56 PORT GROUP GPH0 CONTROL REGISTER
There are four control registers including GPH0CON, GPH0DAT, GPH0PUD and GPH0DRV in the Port GroupGPH0 Control Registers.
在这里插入图片描述
在这里插入图片描述

其实GPH0寄存器下面有包括了四个控制寄存器,分别是
GPH0CON :控制输入输出以及中断模式的。
GPH0DAT :数据位,用来判断是否置位。
GPH0PUD :控制上下拉的
GPH0DIV :应该是配置驱动能力的,有1x、2x、3x、4x

另外要在数据手册上提取的关键信息还有寄存器的地址。
例如这里的GPH0CON的地址就是0xE0200C00

写key的相关函数。

记得,每用一个外设,都先按照初始化然后再使用的方法
初始化其实就是配置寄存器,让它在合适的工作模式下进行工作。
所以应该是先进行key_init,然后再key_polling(轮询用)

记得包含好头文件

因为要延续之前的uart,用到了别人移植的printf函数,所以头文件也要包含别人的“stdio.h”
另外,需要跟led进行联系,大概思想是想按键按一下就有led显示,所以需要用到led相关的c文件
从这时候开始,慢慢的文件多了起来会觉得乱了,所以要做好文件名字规范管理,而且最好做一个main.h来包含所有头文件(uart的、led、key)这样的话就以后只要包含main.h头文件即可。

具体代码上传附件吧。我用的是《朱老师物联网大讲堂》里面的嵌入式课程的S5pv210开发板。

发布了38 篇原创文章 · 获赞 1 · 访问量 1021

猜你喜欢

转载自blog.csdn.net/qq_40897531/article/details/105344360