stm32 如何设置IO口的端口
这里使用的是寄存器设置:比如说:设置PORTC的11位为上拉输入,12位为推挽输出。代码如下:GPIOC->CRH&=0XFFF00FFF;GPIOC->CRH|=0X0...
这里使用的是寄存器设置:比如说:设置PORTC的11位为上拉输入,12位为推挽输出。
代码如下:
GPIOC->CRH&=0XFFF00FFF;
GPIOC->CRH|=0X00038000;
GPIOC->ODR=1<<11;
谁能给解释一下上述的代码究竟是如何通过位设置的?
麻烦各位了。。 展开
代码如下:
GPIOC->CRH&=0XFFF00FFF;
GPIOC->CRH|=0X00038000;
GPIOC->ODR=1<<11;
谁能给解释一下上述的代码究竟是如何通过位设置的?
麻烦各位了。。 展开
展开全部
GPIOC-.CRH&=0XFFF00FFF;//清掉这2个位原来的设置,同时也不影响其它位的设置
GPIOC-CRH|=0X00038000;//PC11输入,PC12输出
; 就是按位与和按位或,与0就是清零对应的4个bit,或的话就是赋值了
GPIOC->ODR=1<<11;//PC11上拉
;这个的意思是将第11位置成1
在输出模式下,ODR寄存器的意思是输出高(置1)低(置0)电平;
而在输入模式下,ODR寄存器的意思是开启芯片内部的上拉(置1)还是下拉(下拉)电阻,主要作用是在没有输入信号的时候确定管脚电平状态的
GPIOC-CRH|=0X00038000;//PC11输入,PC12输出
; 就是按位与和按位或,与0就是清零对应的4个bit,或的话就是赋值了
GPIOC->ODR=1<<11;//PC11上拉
;这个的意思是将第11位置成1
在输出模式下,ODR寄存器的意思是输出高(置1)低(置0)电平;
而在输入模式下,ODR寄存器的意思是开启芯片内部的上拉(置1)还是下拉(下拉)电阻,主要作用是在没有输入信号的时候确定管脚电平状态的
追问
你好,感谢你的耐心回答。
#define DHT11_IO_IN() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;}
以上两句又是如何理解呢?它是设置的PG口的什么呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询