泰山派--用io命令控制LED灯

老小孩
原创
发布时间: 2025-06-14 15:37:39 | 阅读数 0收藏数 0评论数 0
封面
在嵌入式Linux中有好几种方法控制GPIO引脚,今天实验一下通过使用io命令操控寄存器点亮一颗LED灯。

准备工作:

材料:

  1. 泰山派开发板(buildroot系统)
  2. 一颗带杜邦母插的LED灯珠
1

硬件连接

连接开发板到PC,然后连上串口终端MobaXterm。

点亮LED灯选择GPIO引脚,这次还是39(GND),37(正极输出脚,GPIO0_B7)。然后对号把LED灯珠连接到开发板的排针上。

2

确定GPIOB的复用功能为GPIO

打开Rockchip_RK3568_TRM_Part1_V1.3文档(附件),找到GPIOB的复用寄存器基地址:PMU_GRF: 0xFDC20000

PMU_GRF_GPIO0B_IOMUX_H的地址 : 偏移地址0x000C + 0xFDC20000 = 0xFDC2000C,我们主要看14:12位的值,用io命令检查这个引脚的复用状态:io -r -4 0xFDC2000C. 结果是0x00000110,那么相应的12-14位也就是0.也就是表示GPIO0_B7默认是GPIO功能。不用修改。

PDF
Rockchip_RK3568_TRM_Part1_V1.3-20220930P.pdf
11.27MB
3

设置GPIO数据方向寄存器

找到GPIO0的基地址:0xFDD60000,找到GPIO数据方向寄存器GPIO_SWPORT_DDR_L的地址:0xFDD60000 + 0x0008 = 0xFDD60008,先用命令:io -r -4 0xFDD60008 查看它的值为:0x00000004,用计算器修改相应的15位和31位,结果为:0x80008004。 用io命令把这个修改过的值写到GPIO_SWPORT_DDR_L中:io -w -4 0xFDD60008 0x80008004.这样就把默认的输入状态改为了输出状态。

4

设置GPIO数据寄存器

找到数据寄存器GPIO_SWPORT_DR_L的地址:偏移地址为0x0000 + 0xFDD60000 = 0xFDD60000,先用命令:io -r -4 0xFDD60000 查看它的值为:0x00000000,修改相应位后为:0x80008000,然后用命令:io -w -4 0xFDD60000 0x80008000写入寄存器中。

5

结果

LED点亮

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载