【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;}

结语

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

相关推荐
修勾勾L25 分钟前
使用VSCode开发嵌入式开发详细教程——步骤二项目实战
嵌入式硬件
染予1 小时前
定时器时钟源介绍
单片机·嵌入式硬件
时空自由民.1 小时前
ESP32编译固件内存信息解读
单片机·性能优化
LCMICRO-133108477462 小时前
长芯微LPS6288完全P2P替代TPS61288,是一款具有 15A 开关电流的全集成同步升压转换器
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·同步升压转换器
FreakStudio2 小时前
MicroPython对接大模型:uopenai + 火山方舟实现文字聊天和图片理解
python·单片机·ai·嵌入式·面向对象·电子diy
一路往蓝-Anbo3 小时前
第四章:STM32 CAN基础收发编程
stm32·单片机·嵌入式硬件
椰羊~王小美4 小时前
嵌入式 和 单片机
java·单片机·嵌入式硬件
悠哉悠哉愿意5 小时前
【物联网学习笔记】TIM
笔记·单片机·嵌入式硬件·物联网·学习
豆包公子5 小时前
AUTOSAR CP故障诊断协议栈DEM(DTC故障管理)裸机实现-实践篇
单片机·嵌入式硬件·车载系统
Wave8456 小时前
STM32+ESP8266 智能手表实战:天气获取与阿里云时钟同步
stm32·阿里云·智能手表