(四)嵌入式:GPIO点亮LED,实现按键控制(操作寄存器)

本文介绍了如何通过操作GPIO寄存器来控制LED灯的亮灭,并实现按键控制LED的功能。首先,配置GPIOselect寄存器和GPIOOutputEN寄存器,设置GPIO0为输入,GPIO1为输出。然后,通过写入输出寄存器控制LED状态。在程序led_on.c中,编译并执行后,LED5成功点亮。接着,添加按键功能,当检测到按键按下时,LED状态反转。整个过程中,深入理解了GPIO配置和寄存器操作的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使能LED灯

本次课程主要是了解GPIO的使用,我们查阅了相应的手册资料之后,可以知道板子上的GPIO0连接到的是按键S2,GPIO1连接到的是LED5。如图1-1所示:在这里插入图片描述

图1-1 GPIO的引脚关系

然后查阅手册知道了GPIO的使用流程,GPIO的基地址,寄存器偏移地址,如图1-2和1-3所示:
在这里插入图片描述

图1-2 GPIO的基地址
在这里插入图片描述
图1-3 GPIO的寄存器偏移量

使用GPIO,首先要配置GPIOselect寄存器,然后使其的选择输出寄存器,那么配置每一位都是B01,选择寄存器有两个,每一个16位,那么两个选择寄存器的值都要设置为0x5555。如图1-4所示:
在这里插入图片描述
图1-4 设置GPIO的选择寄存器

然后要设置GPIO的引脚输入输出模式,即设置寄存器GPIOOutputEN。如图1-5所示:
在这里插入图片描述
图1-5 设置GPIO的引脚模式
由于GPIO的0和1引脚的对应关系,我们要设置的是从1引脚输入,从0引脚输出,这样可以实现,按键按下以后从输入信号到1引脚,然后从0引脚输出电平到LED引脚,点亮或者熄灭LED灯。因此设置寄存器值为*((unsigned short *)(0x8000d000+0x08)) = 0xfffe;
(0是输出模式,1是输入模式)
引脚的输入输出模式配置好后,就开始往GPIO输出寄存器里面写入数据,使其输出后点亮LED灯。输出寄存器,如图1-6所示:
在这里插入图片描述
图1-6 写GPIO的输出寄存器
由图可以知道,写输出寄存器的值得前提条件就是设置选择寄存器的模式为输出模式。为了点亮LED灯,而且知道LED灯是低电平有效的,于是我们往输出寄存器里面写入数据0xfffe&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值