【温湿度物联网】记录1:寄存器配置
一,及哦地址
基地址base的定义: ↓
定义完是这个:
GPIOA的地址就是以上的代表
2寄存器:
通过bsrr来改变odr寄存器,左移16位就是把0-15位的给移到高位的保留区,这样就归零了
3,项目寄存器实操 :
//PA11---
#define DHT11_IO_IN() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=8<<12;}
一个寄存器是32位,而一个引脚是4位控制,一个寄存器可以控制8个引脚
一个端口有16个引脚,所以要两个寄存器控制一个端口的引脚,分为高(8-15)低(0-7)寄存器√
(
crh的每一位(0,F)对应4位控制寄存器。0是从高寄存器第八位开始数,11引脚就是从CRH高--第八位开始,8,9,10,11,第11位就为0)
哈哈搞乱了写这里的时候:::直接就是前一句是清零寄存器,后一句是编辑寄存器
高寄存器的为0就是对应4个二进制位为0,并与运算,清零
后一句就是这么编辑呢?就是用每个引脚对应 0000这4位二进制来控制的,我们写个8对应1000,就有:
so! this 句:#define DHT11_IO_OUT() {GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=3;}