网站文章页图片大全/信息流广告加盟代理

   日期:2024-12-27    作者:gzsunmi 移动:http://mip.riyuangf.com/mobile/quote/70866.html

网站文章页图片大全/信息流广告加盟代理

这部分的工作比较复杂,其实写gpio,就是要学会看芯片手册。打印芯片手册,然后研读是学习的必要。最好英文版。

CCM: Clock Controller Module (时钟控制模块)
IOMUXC : IOMUX Controller,IO复用控制器
GPIO: General-purpose input/output,通用的输入输出口

参考资料:芯片手册《Chapter 28: General Purpose Input/Output (GPIO)》

有5组GPIO(GPIO1~GPIO5,每组引脚最多有32个,但是可能实际上并没有那么多。
GPIO1有32个引脚:GPIO1_IO0~GPIO1_IO31
GPIO2有22个引脚:GPIO2_IO0~GPIO2_IO21
GPIO3有29个引脚:GPIO3_IO0~GPIO3_IO28
GPIO4有29个引脚:GPIO4_IO0~GPIO4_IO28
GPIO5有12个引脚:GPIO5_IO0~GPIO5_IO11

GPIO的控制涉及4大模块:CCM、IOMUXC、GPIO模块本身,框图如下

参考资料:芯片手册《Chapter 18: Clock Controller Module (CCM)》

GPIOx要用CCM_CCGRy寄存器中的2位来决定该组GPIO是否使能。
哪组GPIO用哪个CCM_CCGR寄存器来设置,请看上图红框部分。
CCM_CCGR寄存器中某2位的取值含义如下

① 00:该GPIO模块全程被关闭
② 01:该GPIO模块在CPU run mode情况下是使能的;在WAIT或STOP模式下,关闭
③ 10:保留
④ 11:该GPIO模块全程使能

对于某个/某组引脚,IOMUXC中有2个寄存器用来设置它
① 选择功能
IOMUXC_SW_MUX_CTL_PAD_:Mux pad xxx,选择某个pad的功能 IOMUXC_SW_MUX_CTL_GRP_:Mux grpxxx,选择某组引脚的功能
某个引脚,或是某组预设的引脚,都有8个可选的模式(alternate (ALT) MUX_MODE)。

② 设置上下拉电阻等参数
IOMUXC_SW_PAD_CTL_PAD_<PAD_NAME>:pad pad xxx,设置某个pad的参数
IOMUXC_SW_PAD_CTL_GRP_:pad grp xxx,设置某组引脚的参数

我们暂时只需要关心3个寄存器
① GPIOx_GDIR:设置引脚方向,每位对应一个引脚,1-output,0-input

② GPIOx_DR:设置输出引脚的电平,每位对应一个引脚,1-高电平,0-低电平

③ GPIOx_PSR:读取引脚的电平,每位对应一个引脚,1-高电平,0-低电平

翻译一下
① 设置CCM_CCGRx寄存器中某位使能对应的GPIO模块 // 默认是使能的,上图省略了
②设置IOMUX来选择引脚用于GPIO
③ 设置GPIOx_GDIR中某位为0,把该引脚设置为输入功能
④读GPIOx_DR或GPIOx_PSR得到某位的值(读GPIOx_DR返回的是GPIOx_PSR的值

翻译一下
① 设置CCM_CCGRx寄存器中某位使能对应的GPIO模块 // 默认是使能的,上图省略了
②设置IOMUX来选择引脚用于GPIO
③ 设置GPIOx_GDIR中某位为1,把该引脚设置为输出功能
④ 写GPIOx_DR某位的值


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号