STM32 - GPIO 的位带操作

  我采用得是STM32F10RC  参考得是STM32普中科技的给出得例子:https://www.bilibili.com/video/av30149282/?p=45(这里给出网址)

https://blog.csdn.net/bulebin/article/details/73730141  这个博文还可以

ps:在15中 是个hi用sbit 进行位带

1、位带介绍

什么是位带呢? stm32 中没有sbit, 所以我们采用的是位带别名区

(1)

 

通过访问Bit band Alias 他 来控制 bit Band  ALias 的位

(2)位带区和位带别名区的转换

 

别名区地址=外设微带别名区的基地址+(位带区-位带区的起始地址)*32+n*4

n:表示的是是在第几位啊    其中每一位又膨胀成为i32位 4个字节  所以乘以4  

通过访问位带别名区 来访问别位带区

 

 

下面对上面这个两个公式进行统一“

 

 

位带操作一般都是对GPIO直接进行操作

 

3、位带部分的程序是怎么写的?

 

4、定义需要可以进行位带的GPIO口

一般位带的使用 我们都是对GPIO进行操作,所以我们还要将GPIO对应其来加入下面程序

 

 

大家可能跟我一样会对这个ODR和 IDR 有一定的考虑,为什么还会有输入呢?

https://zhidao.baidu.com/question/429972752.html(可以参考)

IDR这个寄存器的作用是为了实现读取端口的电位

 

5、实际应用

你们看,如果我想对使用哪个管脚的输出的位带 或者 读取电平的位带,我就可以直接对齐进行操作就ok了

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有水杯和雨伞的工科男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值