GPIO—位带操作
本章参考资料:《 STM32F4xx 中文参考手册》存储器和总线构架章节、 GPIO 章节,
《 Cortex®-M4 内核编程手册》 2.2.5 Bit-banding。学习本章时,配套这些参考资料学习效果
会更佳。

位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。 51 单片
机中通过关键字 sbit 来实现位定义, F429 中没有这样的关键字,而是通过访问位带别名区
来实现。
在 F429 中,有两个地方实现了位带,一个是 SRAM 区的最低 1MB 空间,另一个是外
设区最低 1MB 空间。这两个 1MB 的空间除了可以像正常的 RAM 一样操作外,他们还有
自己的位带别名区,位带别名区把这 1MB 的空间的每一个位膨胀成一个 32 位的字,当访
问位带别名区的这些字时,就可以达到访问位带区某个比特位的目的。

n这个位号,代表你想操作的位,比如GPIOH_PIN_10,此时n=10;在零死角中写的0<=n<=8有错误。

为什么是低五位有效?因为位带区的地址偏移最大0XFFFFF(0X400 00000----0X400 FFFFF);相减最大就这么多,这样可以巧妙地把两个公式化成一个。

Stm32怎么知道什么时候是位带操作的呢?因为硬件地址决定了芯片的功能,当你根据芯片的硬件设计,在对应地址操作的时候,就可以达到芯片设定的效果。

GPIO—位带操作的更多相关文章

  1. 第13章 GPIO—位带操作

    第13章     GPIO—位带操作 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

  2. (stm32学习总结)—GPIO位带操作

    本章参考资料:<STM32F10X-中文参考手册>存储器和总线构架章节.GPIO 章节,<CM3 权威指南 CnR2>存储器系统章节. 位带简介 位操作就是可以单独的对一个比特 ...

  3. 玩转X-CTR100 | STM32F4 l GPIO位带操作

    更多塔克创新资讯欢迎登陆[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]       STM32F4位带概念,及位带的GPIO操作实践应用. 原理介 ...

  4. GPIO位带操作点亮LED,且使用按键控制开关

    1. 项目 类似与C51单片机的位操作使能引脚来点亮LED. 例如,sbit P0^0 = 0 LED1 = P0^0; 2. 代码 main.c #include "stm32f10x.h ...

  5. 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器基础板载资源 ...

  6. STM32之GPIO端口位带操作

    #ifndef __SYS_H #define __SYS_H #include "stm32f10x.h" //位带操作 //把“位带地址+位序号”转换别名地址宏 #define ...

  7. 位带操作—GPIO输出和输入

    GPIOC->ODR |=(0<<2);  // 总线操作,即操作整个寄存器. 在51单片机中 P0=0xFE;   //总线操作. sbit LED1=P0^0;  //位操作,即 ...

  8. STM32位带操作总结---浅显易懂

    正在准备做毕业设计,配置LED_Config()的时候,又看到了位带操作的宏定义,我又嘀咕了,什么是位带操作,一年前在使用位带操作的时候,就查阅过好多资料,Core-M3也看过,但是对于博主这种“低能 ...

  9. STM32F030系列实现仿位带操作

    1.闲言 最近开发的时候,用到了STM32F030F4P6型号的单片机,它只有20个引脚,价格非常便宜,但是功能齐全:定时器.外部中断.串口.IIC.SPI.DMA和WWDG等等,应用尽有,非常适合用 ...

随机推荐

  1. HTML5-IOS WEB APP应用程序(IOS META)

    触摸屏网站的开发其实现在来讲比前几年移动端网站开发好多了,触摸屏设备IOS.Android.BBOS6等系统自带浏览器均为WEBKIT核心,这就说明PC上面尚未立行的HTML5 CSS3能够运用在这里 ...

  2. DataColumn

    DataColumn 是用于创建 DataTable 的列.下面示例使用不同技巧创建.配置一个列,并把它添加到一个 DataTable 中. using System; using System.Da ...

  3. js 多域名跳转

    <script>try {if( self.location == "http://cnblogs.com/endv" ) { top.location.href = ...

  4. [JS Compose] 3. Use chain for composable error handling with nested Eithers (flatMap)

    We refactor a function that uses try/catch to a single composed expression using Either. We then int ...

  5. Oracle的操作系统身份认证

    Oracle的操作系统身份认证 oraclelogin数据库远程登录authenticationos sqlnet.authentication_services=(NTS),在$ORACLE_HOM ...

  6. 【转】TCP(协议号6)的方方面面

    转:http://blog.sina.com.cn/s/blog_6002b97001018fxh.html 第一:TCP连接的建立(也就是所谓的三次握手)过程. 第一次握手:建立连接时,客户端发送s ...

  7. No implementation found for long com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create()

    3-21 10:14:20.833 2892-2892/? E/art: No implementation found for long com.baidu.platform.comjni.map. ...

  8. spring spel表达式语言

    一.通过bean的id对bean进行引用 1.对其他bean的引用 <property name="dept" value="#{dept}"/> ...

  9. 【剑指offer】面试题30:最小的K个数

    import random def partition(data, start, end): if end <= start: return start index = random.randi ...

  10. CentOS6.5卸载默认安装的mysql5.1,并安装mysql5.5(亲测有效)

    感谢链接:https://jingyan.baidu.com/article/922554465e471a851648f4ed.html  指导. 1.安装前:CentOS6.5 yum 安装MySQ ...