当前位置: 首页 > news >正文

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

1、资料下载

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

2、代码

设置PB7

//设置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:

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

结语

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


http://www.mrgr.cn/news/45559.html

相关文章:

  • 远程控制软件推荐:亲测好用!
  • torch和torchvision 版本对应
  • var let const 之间的区别
  • 26. 删除有序数组中的重复项
  • 五十、架构设计经验与技巧(架构设计基本原则)
  • 银河麒麟V10安装ToDesk远程控制
  • 【C语言】关于指针各项细节以及与其他知识点关联
  • Lumerical——Eigensolver Analysis
  • Vue3中提到的Tree-shaking
  • 2024年9月30日--10月6日(ue5肉鸽结束,20小时,共2851小时)
  • Linux防火墙-案例(二)snatdnat
  • 高效微调理解(prompt-tuning,p-tuning v1,p-tuning v2,lora)
  • Hierarchical Cross-Modal Agent for Robotics Vision-and-Language Navigation
  • LSTM变种模型
  • 【RTCP】报文学习笔记
  • BP8523D 固定5V输出SOP7开关电源驱动芯片
  • 《贪吃蛇小游戏 1.0》源码
  • 【基础算法总结】字符串篇
  • 广州wms智能仓储管理系统 盈致WMS系统服务商
  • UE5运行时动态加载场景角色动画任意搭配-角色及动画(一)