【stm32】寄存器(stm32技术手册下载链接)

1、资料下载

RM0008_STM32F101xx,STM32F102xx,STM32F103xx,STM32F105xx和STM32F107xx单片机参考手册 | STMCU中文官网

2、代码

设置PB7

cs 复制代码
//设置PB7
#define SDA_IN()     {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;} 
#define SDA_OUT()    {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;} 

3、理解

如图:

0X0FFFFFFF:

可以知道CRL和CRH的寄存器配置,那么图片中的红框就是一位,你可以看到设置B7引脚在CRL的28-31,那么0X0FFFFFFF就出来了。

8<<28中的8:

8的二进制是1000,那么根据下表,得出设置结果(图是不是错了?有没有大佬解释一下,我猜是设置的下拉输入),io速度设置的是Reserved

8<<28中的28:

F是包含4个二进制位,PB7在我上面的图片中数一下是第7位,那么7*4=28

4、应用:

设置PB9:

cs 复制代码
#define SDA_IN()  {GPIOB->CRH&=0XFFFFFF0F;GPIOB->CRH|=(uint32_t)8<<4;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFFFF0F;GPIOB->CRH|=(uint32_t)3<<4;}

结语

做的的笔记,感觉理解的不是很透彻

相关推荐
点灯小铭2 小时前
基于单片机的多路热电偶温度监测与报警器
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
tianyue1007 小时前
STM32G431 ADC 多个channel 采集
stm32·单片机·嵌入式硬件
longson.8 小时前
怎样避免空间碎片而且高效的分配空间
嵌入式硬件·缓存
清风6666668 小时前
基于单片机的水泵效率温差法测量与报警系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
焦糖码奇朵、9 小时前
课设:基于Arduino的无线LED开关控制系统
嵌入式硬件·物联网·arduino·信息与通信·信号处理
z203483152010 小时前
定时器练习报告
单片机·嵌入式硬件
zk0010 小时前
内容分类目录
单片机·嵌入式硬件
安生生申10 小时前
STM32 ESP8266连接ONENET
c语言·stm32·单片机·嵌入式硬件·esp8266
广药门徒10 小时前
电子器件烧毁的底层逻辑与避坑指南
单片机·嵌入式硬件
我先去打把游戏先14 小时前
TCP、TLS、HTTP、HTTPS、MQTT、MQTTS几种网络协议的对比与解释
嵌入式硬件·mcu·物联网·网络协议·tcp/ip·http·aws