端口配置寄存器CRH怎么弄?
其实就是:
GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12; //把PG11定义为输入模式,即
GPIOG->CRH=0XFFFF8FFF;则寄存器位配置CNF1、CNF0、MODE1、MODE0分别是1000.
同理GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;//是把PG11定义为推挽输出模式,即
GPIOG->CRH&=0XFFFF3FFF;则寄存器位配置CNF1、CNF0、MODE1、MODE0分别是0011.
GPIO口配置是通过配置寄存器来进行的,每个GPIO 端口有:
两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH)分别控制每个端口的高八位和低八位。如果IO口是0-7号的话,则写CRL寄存器;如果IO口是8-15号的话,则写CRH寄存器。
两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR)一个是只读作输入数据寄存器,一个是只写作输出寄存器。
一个32位置位/复位寄存器(GPIOx_BSRR)。
一个16位复位寄存器(GPIOx_BRR)。
一个32位锁定寄存器(GPIOx_LCKR)。
常用的IO端口寄存器只有四个:CRH,CRL,IDR,ODR。