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

结语

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

相关推荐
学嵌入式的小杨同学31 分钟前
STM32 进阶封神之路(三十):IIC 通信深度实战 —— 软件模拟 IIC + 光照传感器(BH1750)全解析(底层时序 + 代码落地)
stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程·智能硬件
jacklood1 小时前
使用STM32的迪文屏控制使用参考方式
前端·javascript·stm32
Zarek枫煜1 小时前
zig与C3的算法 -- 桶排序
c语言·嵌入式硬件·算法
我是一个对称矩阵2 小时前
Ubuntu安装WIFI适配器驱动
stm32·单片机·ubuntu
光子物联单片机2 小时前
STM32传感器模块编程实践(十九) 光子物联北斗GPS定位模块简介及驱动源码
stm32·单片机·嵌入式硬件·mcu
可乐鸡翅好好吃3 小时前
协议栈烧录问题
单片机·嵌入式硬件
仰泳之鹅3 小时前
【51单片机】第一课:单片机简介与软件安装
单片机·嵌入式硬件·51单片机·1024程序员节
2201_756206343 小时前
STM32F407 + ML307 阿里云物联网项目总结
c语言·开发语言·嵌入式硬件
Zarek枫煜3 小时前
[特殊字符]栈(Stack)原理详解 \+ Zig / C3 双语言实现
c语言·单片机·嵌入式硬件·算法
小草cys4 小时前
轮足机器人无法直立的原因,哎
单片机·嵌入式硬件·机器人