STM32应用——GPIO寄存器详解

//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,表示上拉/下拉输入模式。

猜你喜欢

转载自blog.csdn.net/largon10/article/details/87931420