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

结语

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

相关推荐
CiLerLinux3 小时前
第四十九章 ESP32S3 WiFi 路由实验
网络·人工智能·单片机·嵌入式硬件
时光の尘3 小时前
【PCB电路设计】常见元器件简介(电阻、电容、电感、二极管、三极管以及场效应管)
单片机·嵌入式硬件·pcb·二极管·电感·三极管·场效应管
Lu Zelin3 小时前
单片机为什么不能跑Linux
linux·单片机·嵌入式硬件
宁静致远20214 小时前
stm32 freertos下基于hal库的模拟I2C驱动实现
stm32·嵌入式硬件·freertos
Wave8458 小时前
STM32--智能小车
stm32·单片机·嵌入式硬件
wdfk_prog11 小时前
[Linux]学习笔记系列 -- lib/timerqueue.c Timer Queue Management 高精度定时器的有序数据结构
linux·c语言·数据结构·笔记·单片机·学习·安全
helesheng13 小时前
用低成本FPGA实现FSMC接口的多串口(UART)控制器
stm32·fsmc·fpga·uart控制器
充哥单片机设计14 小时前
【STM32项目开源】基于STM32的智能家居环境(空气质量)检测系统
stm32·单片机·嵌入式硬件
夜月yeyue14 小时前
ART 加速器、流水线与指令预测的关系详解
linux·服务器·c语言·单片机·嵌入式硬件·性能优化·嵌入式高阶技巧
糖糖单片机设计16 小时前
硬件开发_基于物联网的生态环境检测系统
stm32·单片机·嵌入式硬件·物联网·51单片机