arm-contex-A9接口技术—GPIO

本文介绍了如何通过配置寄存器来控制GPIO,以实现对LED灯(LED2)的操作。首先,找到对应的GPIO口(gpx2-7),然后配置gpx2con寄存器,确保设置为输出模式。通过位运算避免影响其他寄存器位,如GPX2CON[6]。最后,配置GPX2DAT寄存器设置LED的电平。代码以C语言编写,并需要通过makefile编译成.bin文件,以便在无操作系统的环境下运行。

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

接口技术:
说白了就是,你要控制什么的东西然后,你找出这个东西是哪个口来控制,这个口所对应的是那个控制器,那你往那个控制器里面去配置一些寄存器就可以实现了(配置控制器里面的寄存器)
GPIO
在这里插入图片描述
我们这里要控制一盏的(LED2)
在这里插入图片描述
在这里插入图片描述
翻芯片手册,找gpx2-7;
在这里插入图片描述
这里配置的是gpx2con寄存器,基本上每一个寄存器都是3位,你配置[31-28]就是配置了gpx2con[7]的状态,这里我们配置为输出(output mode)就是GPX2CON的31-28位为0x1
GPX2CON = 0X01000000;
这样写是错误的,因为你改变了其它位的值,比如我的GPX2CON[6]在UART状态,你直接就给我改成了input输入状态了
我们要只改我们想要改变的值
用位运算
gpx2con = gpx2con | (0x1 << 28)
(这样写,明显也是错的,你没有把31~29位清零,万一之前有值呢?)
所以我们应该先把31~28位清零,再把28位置一
GPX2CON = GPX2CON & (~(0XF << 28)) | (0X1 << 8)
下面还要配置一个数据位
在这里插入图片描述
GPX2DAT寄存器虽然是32位寄存器但是它只用了8位,英文解读为第几位为1,那么第几为输出为高电平
gpx2dat = gpx2dat | (0x1 << 8)
代码:
汇编:
在这里插入图片描述
C
在这里插入图片描述
在这里插入图片描述
在这里,我们的板子还没有装操作系统,这样写的cpu肯定不认识,所以我们使用了,c工程和封装,利用makefile去编译成.bin文件,
MAKEFILE我也写不来,不要问我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值