在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32開發中的位帶操作機制

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2021-04-09 14:07 ? 次閱讀

為了像51單片機一樣能夠對某個管腳單獨操作,引入了位帶操作這樣的操作機制。

如下圖,位帶(Bit band)區就是就是你想單獨操作的IO的區域,比如PA1、PA2。而位帶別名區就是你給每一位重新起了個名字的那一片地址區域。可以看下表,M3內核存儲器映射表,你能看到1M內存的BitBand區,還有與之對應的32M內存的BitBand別名區,因為你將每一位膨脹成為了一個32位的地址,所以相應的別名區的內存也會是位帶區的32倍。

32c3e2ce-9869-11eb-8b86-12bb97331649.png

想進行位帶操作,應該先去找該位對應的別名區的地址,找到了這個地址,對這個地址進行操作,那么實際上也就是對該位進行操作了。

官方給出了如下相應的計算公式:

AliasAddr=0x42000000+((A‐0x40000000)*8+n)*4=0x42000000+ (A‐0x40000000)*32 + n*4

其中,AliasAddr是別名區的地址,A是GPIOA-》ODR的地址,n是該端口的上的某一位。

0x42000000是位帶別名區域的起始地址,A是輸出數據寄存器GPIOA-》ODR的地址,A的地址先減去位帶區基地址,得到的是相對于位帶區基地址的偏移地址,那么膨脹之后還是一個偏移地址,是相對于位帶別名區基地址的偏移量,加上位帶別名區域基地址,就得到了其對應的別名區地址。

多數情況下,大家見到的代碼,應該是以下這個樣子,一共分為三步:

#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)《《5)+(bitnum《《2))#define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum))

第一步,就是我們上面分析的,得到位帶別名區域的32位地址。

第二步,就是將第一步得到的32位地址,給轉換成一個指針變量,并且操作這個地址里的值,唯一的區別,就是由于安全的考慮,多加了一個volatile 這樣的關鍵字。

舉個例子

如下,想直接訪問0x00000001這個地址,并且給這個地址寫1,該怎么做呢?

# define ADDR 0x00000001*(int *)ADDR = 1;

第三步,就是將前兩部,結合在一起,根據傳入的addr和bit計算得到32位的地址,然后強制類型轉換,使得我們可以去操作這個地址里的值。

提示:bitnum《《2相當于bitnum2乘以4,實際上在計算機底層乘法也是基于位運算實現的。

原文標題:STM32開發中的位運算以及位帶操作

文章出處:【微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6044

    文章

    44628

    瀏覽量

    638991
  • STM32
    +關注

    關注

    2273

    文章

    10926

    瀏覽量

    357784

原文標題:STM32開發中的位運算以及位帶操作

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    LwIP應用開發實戰指南—基于野火STM32

    LwIP應用開發實戰指南—基于野火STM32—20210122
    發表于 01-17 14:34 ?0次下載

    STM32、Arduino、樹莓派開發方式差異大嗎

    最近看到有網友問:STM32、Arduino、樹莓派開發方式差異大嗎? ? 要說相同點,它們之間也有很多相同點。但你要說他們之間開發的差異,其實也蠻大的。 ? STM32、Arduin
    的頭像 發表于 01-02 11:33 ?448次閱讀

    HAL庫在STM32開發的重要性

    HAL庫(Hardware Abstraction Layer Library,硬件抽象層庫)在STM32開發扮演著至關重要的角色。以下是HAL庫在STM32
    的頭像 發表于 12-02 13:35 ?586次閱讀

    STM32 OLED多菜單操作

    stm32 ?oled多菜單操作
    發表于 10-09 11:01 ?2次下載

    STM32G4系列到底支不支持帶操作

    印象不止一次有人詢問STM32G4系列到底支不支持帶操作
    的頭像 發表于 07-29 09:45 ?1662次閱讀
    <b class='flag-5'>STM32</b>G4系列到底支不支持<b class='flag-5'>位</b><b class='flag-5'>帶操作</b>

    異步總線傳送操作的控制機制

    存在一定的延遲,因此需要一種有效的控制機制來保證數據傳輸的準確性和可靠性。 異步總線概述 1.1 異步總線的定義 異步總線是一種在計算機系統中用于數據傳輸的通信方式,其特點是在數據傳輸過程,發送方和接收方的時鐘
    的頭像 發表于 07-23 09:17 ?781次閱讀

    STM32H743系列支持帶操作嗎?

    //IO口操作宏定義 define BITBAND(addr, bitnum) ((addr0xF0000000)+0x2000000+((addr0xFFFFF)<<5
    發表于 07-23 08:13

    關于帶操作的疑問求解

    大家都知道,帶有對應的帶別名區,操作帶別名區就可以寫帶區的BIT,讀取帶BIT值到內部
    發表于 05-17 07:33

    請問stm8s IO操作如何實現?

    請教各位了,stm8s IO操作如何實現像stm32類似的帶操作啊? #define LEDPAout(0), LED = 1; LED
    發表于 05-09 07:10

    STM32幾種流行的開發環境對比

    有很多初學者在問:學習STM32,該用哪款開發工具?我首先說一下我的觀點:沒有最好,只有適不適合,適合自己的才是最好的。開發工具很多,各有各的特點,有優點肯定也有缺點。本文就來說說當前STM3
    的頭像 發表于 04-21 08:10 ?2750次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>中</b>幾種流行的<b class='flag-5'>開發</b>環境對比

    STM32F103RGT6帶操作不成功的原因?

    各位大神,我是一個入門級的超級菜鳥,遇到一個問題: 為啥子我同樣的帶操作STM32F103C8T6上操作成功,但是在STM32F103R
    發表于 04-19 06:32

    stm32F4 64變量操作異常怎么解決?

    stm32F4 64變量使用報錯解決
    發表于 04-02 07:16

    對于STM32G4系列的MCU,其GPIO的操作是否還支持帶操作

    STM32G4的memory map。GPIO是掛在AHB2總線上的。 但是手冊里面沒有明確找到,其別名區的起始地址。
    發表于 03-21 07:34

    STM32G4XX不能夠像STM32F1XX STM32F4XX那樣對GPIO進行帶操作呢?

    請教下,在STM32G4XX系列里面,GPIO掛載在AHB2總線上面,地址在0x4800 0000. 是不是也就意味著,STM32G4XX不能夠在像STM32F1XX STM32F4X
    發表于 03-21 07:16

    都是32MCU,ESP32、GD32、STM32有什么區別

    三款MCU簡介STM32:意法半導體在2007年6月11日發布的產品,32單片機(不多介紹了,懂得都懂)。GD32:兆易創新2013年發布的產品,在芯片開發、配置、命名上基本模仿STM32
    的頭像 發表于 03-13 08:09 ?1.7w次閱讀
    都是32<b class='flag-5'>位</b>MCU,ESP32、GD32、<b class='flag-5'>STM32</b>有什么區別
    主站蜘蛛池模板: 中文字幕欧美成人免费 | 亚洲人成网站在线观看妞妞网 | 国产欧美一区二区日本加勒比 | free性日本| 亚洲一级毛片中文字幕 | 在线看一区二区 | 久久亚洲一级毛片 | 一区二区三区四区精品 | 日本怡红| 日韩手机看片 | 亚洲欧洲国产精品你懂的 | 超级乱淫小黄文小说 | 午夜综合网| 狠狠色 综合色区 | 毛片多多 | 女性私密部位扒开的视频 | 国产福利在线观看一区二区 | 色01视频 | 国产成人乱码一区二区三区 | 亚洲三级在线 | 成人国产三级精品 | 人与禽性视频77777 | 久久免费国产 | 天天干天天做天天操 | 网www天堂资源在线 网红和老师啪啪对白清晰 网络色综合久久 | 色色免费 | 色狠狠色综合久久8狠狠色 色狠狠网 | 中国一级特黄视频 | 午夜精品久久久久 | 波多野结衣在线观看一区二区三区 | 你懂得视频在线 | 午夜资源在线 | 1024手机免费看 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 久久这里只有精品免费视频 | 亚洲国产成人久久精品图片 | 日本特级淫片免费看 | 欧美一区二区精品 | 色图综合网 | 欧美一区二区三区激情啪啪 | 欧美日韩亚洲国内综合网俺 |