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;MODE5为00,表示输入模式;CNF5[1:0]=10,表示上拉/下拉输入模式。

GPIOA->ODR=((Data>>5) & 0x07);  

移位后设置2,1,0位,即设置PA2,PA1,PA0 ;

GPIOC->ODR=((Data>>1) & 0x0F) | ((Data<<13) & 0x2000);

移位后设置3,2,1,0,即设置PC3,PC2,PC1,PC0

移位后设置13,即设置PC13

实际应用中,D7-PA2,D6-PA1,D5-PA0,

D4-PC3,D3-PC3,D2-PC1,D1-PC0,D0-PC13。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值