K60学习打卡之GPIO初始化

今天把最后的配置讲完,不过可能要分两次。
首先是下面的函数:

void PORT_PinPassiveFilterConfig(uint32_t instance, uint8_t pin, bool status)
{
    SIM->SCGC5 |= SIM_GPIOClockGateTable[instance];
    (status) ? (PORT_InstanceTable[instance]->PCR[pin] |= PORT_PCR_PFE_MASK):(PORT_InstanceTable[instance]->PCR[pin] &= ~PORT_PCR_PFE_MASK);
}
Paste_Image.png

表示将上面的寄存器的相应位设置为0或是1,在实际的功能上表示,将选中的引脚配置为输入(0)或是输出(1)。

接下来是最后的一个函数了

void PORT_PinMuxConfig(uint32_t instance, uint8_t pin, PORT_PinMux_Type pinMux)
{
    SIM->SCGC5 |= SIM_GPIOClockGateTable[instance];
    PORT_InstanceTable[instance]->PCR[pin] &= ~(PORT_PCR_MUX_MASK);
    PORT_InstanceTable[instance]->PCR[pin] |=  PORT_PCR_MUX(pinMux);
}

这个函数是针对下面的寄存器进行配置的:


Paste_Image.png

第一句代码不说,第二句和第三句表示将寄存器的8-10位先清零,再付给相应的值。具体到这个功能中是配置为通用 GPIO, 数值上为1。

先清零,再赋值就是为了避免之前有值形成干扰。
那么到此为止,GPIO终于就说完了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、代码分析本次分析的代码非常简短 这句代码的意思也和单一,就是将GPIOE模块的第6引脚配置为推挽输出方式。但是...
    Cheer_up阅读 6,831评论 0 1
  • 上次我们说到SCGC5,也就是系统门控时钟5,这个是SIM模块里面的寄存器。那么今天我们就来看看,这个SIM模块究...
    Cheer_up阅读 5,272评论 4 1
  • 今天要探究的是下面的函数 第一句代码昨天我已经研究过了,这里又出现了一次,可见写这个函数的人,为了保证每一个函数的...
    Cheer_up阅读 1,832评论 0 1
  • 姓名:孙宾 学号:17011210280 学院:通信工程学院 转自:微信公众号嵌入式资讯 【嵌牛导读】本文介绍嵌入...
    孙宾多么狗屎心里没数吗阅读 10,181评论 0 1
  • 其实这篇文章主要是介绍自己为其写的GPIO库,自己借鉴了原子写的STM32,野火写的K60,还有LPC官方库,然后...
    杨奉武阅读 4,292评论 0 0

友情链接更多精彩内容