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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32開發(fā)中的位運(yùn)算以及位帶操作

單片機(jī)與嵌入式 ? 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式 ? 2023-11-29 14:36 ? 次閱讀

為了像51單片機(jī)一樣能夠?qū)δ硞€(gè)管腳單獨(dú)操作,引入了位帶操作這樣的操作機(jī)制。

如下圖,位帶(Bit band)區(qū)就是就是你想單獨(dú)操作的IO的區(qū)域,比如PA1、PA2。而位帶別名區(qū)就是你給每一位重新起了個(gè)名字的那一片地址區(qū)域。可以看下表,M3內(nèi)核存儲(chǔ)器映射表,你能看到1M內(nèi)存的BitBand區(qū),還有與之對(duì)應(yīng)的32M內(nèi)存的BitBand別名區(qū),因?yàn)槟銓⒚恳晃慌蛎洺蔀榱艘粋€(gè)32位的地址,所以相應(yīng)的別名區(qū)的內(nèi)存也會(huì)是位帶區(qū)的32倍。

f513ed6e-8e80-11ee-939d-92fbcf53809c.png

想進(jìn)行位帶操作,應(yīng)該先去找該位對(duì)應(yīng)的別名區(qū)的地址,找到了這個(gè)地址,對(duì)這個(gè)地址進(jìn)行操作,那么實(shí)際上也就是對(duì)該位進(jìn)行操作了。

官方給出了如下相應(yīng)的計(jì)算公式:

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

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

0x42000000是位帶別名區(qū)域的起始地址,A是輸出數(shù)據(jù)寄存器GPIOA->ODR的地址,A的地址先減去位帶區(qū)基地址,得到的是相對(duì)于位帶區(qū)基地址的偏移地址,那么膨脹之后還是一個(gè)偏移地址,是相對(duì)于位帶別名區(qū)基地址的偏移量,加上位帶別名區(qū)域基地址,就得到了其對(duì)應(yīng)的別名區(qū)地址。

多數(shù)情況下,大家見到的代碼,應(yīng)該是以下這個(gè)樣子,一共分為三步:

#defineBITBAND(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))

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

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

舉個(gè)例子

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

#defineADDR0x00000001
*(int*)ADDR=1;

第三步,就是將前兩部,結(jié)合在一起,根據(jù)傳入的addr和bit計(jì)算得到32位的地址,然后強(qiáng)制類型轉(zhuǎn)換,使得我們可以去操作這個(gè)地址里的值。

提示:bitnum<<2相當(dāng)于bitnum2乘以4,實(shí)際上在計(jì)算機(jī)底層乘法也是基于位運(yùn)算實(shí)現(xiàn)的。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635309
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19126

    瀏覽量

    305201
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    356012
  • 位運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    8423

原文標(biāo)題:STM32開發(fā)中的位運(yùn)算以及位帶操作

文章出處:【微信號(hào):?jiǎn)纹瑱C(jī)與嵌入式,微信公眾號(hào):?jiǎn)纹瑱C(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    詳解STM32帶操作

    STM32帶操作是一種非常有用的技術(shù),它可以讓你直接訪問(wèn)一個(gè)單一的,而不必去讀取或者寫入整個(gè)寄存器。這種技術(shù)可以用于提高代碼的執(zhí)行
    發(fā)表于 06-07 15:33 ?1302次閱讀

    帶操作原理

    (四)帶操作1.帶操作原理STM32將每個(gè)比特膨脹成為32字,訪問(wèn)這些字就實(shí)現(xiàn)了訪問(wèn)
    發(fā)表于 11-30 08:20

    STM32帶操作的方法

    前言這篇文章主要用來(lái)講解STM32帶操作,學(xué)習(xí)過(guò)51單片機(jī)的應(yīng)改了解,在控制51單片機(jī)IO引腳時(shí),只需要向某一個(gè)IO口賦值就可以實(shí)現(xiàn),對(duì)應(yīng)IO口的輸出高或地。那么
    發(fā)表于 01-17 06:27

    快速理解STM32帶操作原理

    Bit-banding簡(jiǎn)稱帶,有人也叫段。支持帶操作后,可以使用普通的加載/存儲(chǔ)指令來(lái)對(duì)單一的比特進(jìn)行讀寫。很多朋友是從學(xué)習(xí)51單片機(jī)過(guò)來(lái)的,都知道P1.1這個(gè)引腳可以單獨(dú)控制
    的頭像 發(fā)表于 09-03 15:40 ?4733次閱讀
    快速理解<b class='flag-5'>STM32</b><b class='flag-5'>位</b><b class='flag-5'>帶操作</b>原理

    STM32開發(fā)帶操作機(jī)制

    為了像51單片機(jī)一樣能夠?qū)δ硞€(gè)管腳單獨(dú)操作,引入了帶操作這樣的操作機(jī)制。 如下圖,帶(Bit band)區(qū)就是就是你想單獨(dú)
    的頭像 發(fā)表于 04-09 14:07 ?1672次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>中</b>的<b class='flag-5'>位</b><b class='flag-5'>帶操作</b>機(jī)制

    MCU_STM32帶操作 -- bit banding

    帶操作STM32芯片除了通用的寄存器訪問(wèn),還有一個(gè)比較有意思的帶操作。這個(gè)位帶的意思,就是每個(gè)比特(bit)
    發(fā)表于 11-26 15:21 ?6次下載
    MCU_<b class='flag-5'>STM32</b>的<b class='flag-5'>位</b><b class='flag-5'>帶操作</b> -- bit banding

    STM32帶操作

    帶操作:將一個(gè)重新定義一個(gè)字的帶別名來(lái)操作帶區(qū)一個(gè)
    發(fā)表于 11-26 18:06 ?12次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>位</b><b class='flag-5'>帶操作</b>

    STM32單片機(jī)---帶操作

    STM32單片機(jī)---帶操作一、帶操作二、寄存器地址與別名地址轉(zhuǎn)換技巧三、
    發(fā)表于 11-29 14:51 ?2次下載
    <b class='flag-5'>STM32</b>單片機(jī)---<b class='flag-5'>位</b><b class='flag-5'>帶操作</b>

    初識(shí)“帶操作

    ”什么是“帶操作”?CPU不能直接對(duì)位帶區(qū)的單個(gè)數(shù)據(jù)尋址,只能通過(guò)對(duì)位帶別名區(qū)的訪問(wèn)(或讀/寫)實(shí)現(xiàn)對(duì)位帶區(qū)單個(gè)數(shù)據(jù)
    發(fā)表于 01-12 17:18 ?0次下載
    初識(shí)“<b class='flag-5'>位</b><b class='flag-5'>帶操作</b>”

    STM32帶操作

    1. 什么是帶操作?學(xué)習(xí) 51 單片機(jī)的時(shí)候就使用過(guò)位操作,通過(guò)關(guān)鍵字 sbit 對(duì)單片機(jī)IO口進(jìn)行定義。但STM32沒(méi)有這樣的關(guān)鍵字,
    發(fā)表于 01-13 14:01 ?5次下載
    <b class='flag-5'>STM32</b>的<b class='flag-5'>位</b><b class='flag-5'>帶操作</b>

    STM32帶操作-詳解-計(jì)算過(guò)程

    前言這篇文章主要用來(lái)講解STM32帶操作,學(xué)習(xí)過(guò)51單片機(jī)的應(yīng)改了解,在控制51單片機(jī)IO引腳時(shí),只需要向某一個(gè)IO口賦值就可以實(shí)現(xiàn),對(duì)應(yīng)IO口的輸出高或地。那么
    發(fā)表于 01-17 10:43 ?5次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>位</b><b class='flag-5'>帶操作</b>-詳解-計(jì)算過(guò)程

    八、STM32帶操作

    一、帶區(qū)與帶別名區(qū)(一)帶介紹1、帶操作在學(xué)習(xí)51單片機(jī)時(shí)就已經(jīng)使用過(guò)位操作,比如使用s
    發(fā)表于 01-18 11:12 ?8次下載
    八、<b class='flag-5'>STM32</b><b class='flag-5'>位</b><b class='flag-5'>帶操作</b>

    STM32F407入門開發(fā): 帶操作

    STM32F407的帶操作可以實(shí)現(xiàn)類似51單片機(jī)寄存器的操作方法,操作GPIO口代碼簡(jiǎn)潔方便
    的頭像 發(fā)表于 05-28 13:50 ?3672次閱讀
    <b class='flag-5'>STM32</b>F407入門<b class='flag-5'>開發(fā)</b>: <b class='flag-5'>位</b><b class='flag-5'>帶操作</b>

    stm32帶操作有什么用

    STM32帶操作是一種在ARM Cortex-M微控制器中使用的特殊技術(shù),它允許同時(shí)處理多個(gè)位,并且可以提高代碼效率和性能。在這篇文章,我將詳細(xì)介紹
    的頭像 發(fā)表于 12-22 16:02 ?1403次閱讀

    STM32開發(fā)運(yùn)算以及帶操作

    STM32開發(fā)運(yùn)算以及
    的頭像 發(fā)表于 02-02 14:38 ?1649次閱讀
    主站蜘蛛池模板: tube69欧美最新片| 日本亚洲在线| 亚洲综合香蕉| 男人你懂的在线观看视频| 在线观看视频高清视频| 男人视频在线观看| 四虎在线电影| 在线日本人观看成本人视频| 视频在线观看h| 四虎影视在线影院4hu| 4hc44四虎www亚洲| 68日本xxxxxxxxx18能看的| 四虎精品成人免费观看| bt天堂网在线资源www| 免费免播放器在线视频观看| 四虎影院观看| 亚洲69视频| 美女又黄又www| 美女免费视频是黄的| 美女操出水| 精品色图| 欧美黄色录像| 一及黄色| 18年大片免费在线观看| 色操网| 丁香婷婷网| 国产黄视频在线观看| 日本成本人三级在线观看2018| 天天做天天爱夜夜爽毛片毛片| 亚洲欧美在线一区二区| 欧美xxxxbbbb| 国产精品夜夜春夜夜| 天天看天天摸天天操| 午夜在线看片| 97色噜噜| www.色午夜| 亚洲一区二区三区播放在线 | 亚洲aⅴ久久久噜噜噜噜| 丁香六月色婷婷| 亚洲一区二区三区免费视频| 伦理一区二区三区|