IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> H3 GPIO笔记 -> 正文阅读

[嵌入式]H3 GPIO笔记

NanoPi-NEO-Core最近买了一块,这个板子使用全志H3。查看H3的数据手册,把GPIO这部分做个笔记。

H3有7组GPIO,如下

分别是PA,PC,PD,PE,PF,PG,PL.没有PB这一组

PA有22个端口

PC有19个端口

PD有18个端口

PE有16个端口

PF有7个端口

PG有14个端口

PL有12个端口

其中两组IO支持中断。PA和PG支持中断

PIO的基址为0x01c2_0800

抛却中断配置,主要PIO的寄存器有4个,Pn_CFG, Pn_DAT,Pn_DRV,Pn_PUL

每组IO有4个Pn_CFG寄存器,Pn_CFG0-Pn_CFG3,每4bit配置一个端口模式

?????????? ??????????????? PA有22个端口,则需要4×22=88bit,则需要配置寄存器Pn_CFG0-Pn_CFG2

??????????????? 例如PA的端口0配置,在Pn_CFG0的bit2-0,bit3保留位

?Pn_CFG地址计算:基址+n*36+(0-3)*4.

例如:

????????PA_CFG0地址=0x01c2_0800 + 0×36 +0×4=0x01c2_0800

????????PA_CFG1地址=0x01c2_0800 + 0×36 +1×4=0x01c2_0804

????????PA_CFG2地址=0x01c2_0800 + 0×36 +2×4=0x01c2_0808

????????PA_CFG3地址=0x01c2_0800 + 0×36 +3×4=0x01c2_080c

??????? ....

????????PC_CFG0地址=0x01c2_0800 + 1×36 +0×4=0x01c2_0824

每组IO有1个Pn_DAT寄存器,每一bit代表IO的状态。当IO配置输出,写此寄存器改变输出状态,当配置输入,读此值代表输入状态。

Pn_DAT地址计算:基址+n*36+(4)*4

例如:

????????PA_DAT地址=0x01c2_0800 + 0×36 +4×4=0x01c2_0810

??????? PC_DAT地址=0x01c2_0800 + 1×36 +4×4=0x01c2_0834

??????? .....

每组IO由2个Pn_DRV寄存器。此寄存器中每2bit表示一个IO的驱动能力。共有level0-level3

Pn_DRV 地址计算:基址+n*36+(5,6)*4

例如:

PA_DRV0地址=0x01c2_0800 + 0×36 +5×4=0x01c2_0814

PA_DRV1地址=0x01c2_0800 + 0×36 +6×4=0x01c2_0818

每组IO有2个Pn_PUL寄存器,此寄存器中每2bit表示IO上下拉配置。2'b00:上下拉禁止,2'b01:上拉,2'b10:下拉,2'b11:保留

Pn_PUL地址计算:基址+n*36+(7,8)*4

例如:

PA_PUL0地址=0x01c2_0800 + 0×36 +7×4=0x01c2_081c

PA_PUL1地址=0x01c2_0800 + 0×36 +8×4=0x01c2_0820

综上所述,每组IO有9个寄存器,所占空间9×4=36=0x24字节空间

io中断寄存器

只有PA和PG支持中断

?每组IO的中断,也是4类寄存器:PA_INT_CFG,PA_INT_CTL,PA_INT_STA,PA_INT_DEB

PA_INT_CFG0-3:每4bit配置一个IO的中断类型

??????? 4'b0000:上升沿

??????? 4'b0001:下降沿

??????? 4'b0010:高电平

??????? 4'b0011:低电平

??????? 4'b0100:双边沿

??????? 其它:保留

PA_INT_CTL:每bit控制中断的使能和禁止

PA_INT_STA:中断状态,每一bit表示中断状态,挂起或者没有中断挂起

PA_INT_DEB:中断防抖设置。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:45:28  更:2022-03-10 22:47:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:26:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码