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);
}
K60学习打卡之GPIO初始化_第1张图片
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);
}

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


K60学习打卡之GPIO初始化_第2张图片
Paste_Image.png

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

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

你可能感兴趣的:(K60学习打卡之GPIO初始化)