//IO方向设置
#define SCCB_SDA_IN() {GPIOG->CRH&=0XFF0FFFFF;GPIOG->CRH|=0X00800000;}
#define SCCB_SDA_OUT() {GPIOG->CRH&=0XFF0FFFFF;GPIOG->CRH|=0X00300000;}
GPIOA->ODR=((Data>>5) & 0x07);
GPIOC->ODR=((Data>>1) & 0x0F) | ((Data<<13) & 0x2000);
CRH与CRL寄存器用来管理GPIO输入输出模式和输入输出方向,具体管理方法:
1、CRL控制GPIO7~GPIO0, CRH控制GPIO15~GPIO8
2、CRL的CNF7[1:0]用来设置GPIO7的输入或者输出情况下,上拉下拉等具体选项。MODE7[1:0]用来设置输入还是输出。
举例:
{GPIOG->CRH&=0XFF0FFFFF;GPIOG->CRH|=0X00800000;}
得出的结果是CRH=0XFF8FFFFF
计算设置GPIO13;MODE为00,表示输入模式;CNF5[1:0]=10,表示上拉/下拉输入模式。