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

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

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

3天內不再提示

C語言操作寄存器的常見手法

GReq_mcu168 ? 來源:硬件攻城獅 ? 作者:硬件攻城獅 ? 2022-03-12 09:06 ? 次閱讀

使用C語言寄存器賦值時,常常需要用到C語言的位操作方法。把寄存器某位清零假設a代表寄存器,且其中本來已有值。如果要把其中某一位清零且其它位不變,代碼如下。

//定義一個變量 a = 1001 1111 b (二進制數)unsigned char a = 0x9f;//對 bit2 清零a &= ~(1<<2);//括號中的 1 左移兩位,(1<<2) 得二進制數:0000 0100 b//按位取反,~(1<<2) 得 1111 1011 b//假如 a 中原來的值為二進制數:a = 1001 1111 b//所得的數與 a 作”位與&”運算,a = (1001 1111 b)&(1111 1011 b),//經過運算后,a 的值 a=1001 1011 b// a 的 bit2 位被被零,而其它位不變。把寄存器某幾個連續位清零????由于寄存器中有時會有連續幾個寄存器位用于控制某個功能,現假設我們需要把寄存器的某幾個連續位清零,且其它位不變,代碼如下。

//若把 a 中的二進制位分成 2 個一組//即 bit0、bit1 為第 0 組,bit2、bit3 為第 1 組,// bit4、bit5 為第 2 組,bit6、bit7 為第 3 組//要對第 1 組的 bit2、bit3 清零a &= ~(3<<2*1);//括號中的 3 左移兩位,(3<<2*1) 得二進制數:0000 1100 b//按位取反,~(3<<2*1) 得 1111 0011 b//假如 a 中原來的值為二進制數:a = 1001 1111 b//所得的數與 a 作”位與&”運算,a = (1001 1111 b)&(1111 0011 b),//經過運算后,a 的值 a=1001 0011 b// a 的第 1 組的 bit2、bit3 被清零,而其它位不變。//上述 (~(3<<2*1)) 中的 (1) 即為組編號; 如清零第 3 組 bit6、bit7 此處應為 3//括號中的 (2) 為每組的位數,每組有 2 個二進制位; 若分成 4 個一組,此處即為 4//括號中的 (3) 是組內所有位都為 1 時的值; 若分成 4 個一組,此處即為二進制數“1111 b”//例如對第 2 組 bit4、bit5 清零a &= ~(3<<2*2);對寄存器某幾位賦值????寄存器位經過清零操作后就可以方便地對某幾位寫入所需要的數值了,具體代碼如下。

//a = 1000 0011 b//此時對清零后的第2組bit4、bit5設置成二進制數“01b”a|=(1<<2*2);//a = 1001 0011 b,成功設置了第 2 組的值,其它組不變寄存器某位取反????要對寄存器的某個位進行取反操作,即 1 變 0 ,0 變 1,這可以直接用如下操作。

//a = 1001 0011 b//把 bit6 取反,其它位不變 a ^=(1<<6);//a = 1101 0011 b

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

    關注

    31

    文章

    5424

    瀏覽量

    123509
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140552

原文標題:C語言操作寄存器的常見手法

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何用C語言操作寄存器——瑞薩RA系列FSP庫開發實戰指南(10)

    由于寄存器的數量是非常之多的,如果每個寄存器都用像*((uint32_t*)(0x40080000+0x0020*1))這樣的方式去訪問的話,會顯得很繁瑣、很麻煩。為了更方便地訪問寄存器,我們會借助
    的頭像 發表于 04-22 15:30 ?827次閱讀
    如何用<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>操作</b><b class='flag-5'>寄存器</b>——瑞薩RA系列FSP庫開發實戰指南(10)

    C語言操作寄存器中的應用

    C語言操作寄存器中的應用本文參考另一篇博客寫成附鏈接,個人感覺內容過多不便于吸收,就寫了這篇博客。整體思想:設置一個位就是設置該位為1,清除就是設置該位為0
    發表于 01-24 06:04

    C語言寄存器操作相關資料分享

    C語言寄存器操作
    發表于 02-25 07:58

    寄存器傳輸語言詳解

    數字系統中最常用到的微操作可分為四類: 1、寄存器傳送微操作 它可把二元信息從一個寄存器傳送到另一個寄存器,在
    發表于 08-16 09:32 ?6580次閱讀
    <b class='flag-5'>寄存器</b>傳輸<b class='flag-5'>語言</b>詳解

    寄存器操作方法_對寄存器操作的通用方法總結

    本文主要詳解寄存器操作方法以及對寄存器操作的通用方法總結,具體的跟隨小編來了解一下。
    的頭像 發表于 05-22 15:53 ?2.4w次閱讀

    寄存器變量

    C語言中使用關鍵字register來聲明局部變量為寄存器變量。寄存器變量的值會被存放在CPU的寄存器中,每當需要使用它們時,CPU就可以直接
    發表于 06-03 10:13 ?2578次閱讀

    Atmel SAMC21的I2C驅動寄存器操作寄存器代碼免費下載

    本文檔的主要內容詳細介紹的是Atmel SAMC21的I2C驅動寄存器操作寄存器代碼免費下載。
    發表于 06-20 08:00 ?19次下載

    C語言訪問MCU寄存器

    C語言訪問MCU寄存器問題由來://下面這行代碼的意思是直接操作0X020C4068這個寄存器/
    發表于 10-25 13:21 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>訪問MCU<b class='flag-5'>寄存器</b>

    C語言操作在(單片機)寄存器中的應用

    C語言操作寄存器中的應用本文參考另一篇博客寫成附鏈接,個人感覺內容過多不便于吸收,就寫了這篇博客。整體思想:設置一個位就是設置該位為1,清除就是設置該位為0
    發表于 11-29 10:06 ?8次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>位<b class='flag-5'>操作</b>在(單片機)<b class='flag-5'>寄存器</b>中的應用

    32單片機 C語言 寄存器(四)

    32單片機C語言相關知識以及寄存器地址名稱映射分析
    發表于 11-29 10:06 ?12次下載
    32單片機 <b class='flag-5'>C</b><b class='flag-5'>語言</b> <b class='flag-5'>寄存器</b>(四)

    C語言寄存器操作

    C語言寄存器操作
    發表于 01-13 12:56 ?6次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    STM32的寄存器操作

    STM32的寄存器操作在使用STM32單片機編程時一般都用ST給的庫函數編程,庫函數編程的底層就是對單片機寄存器操作,庫函數就是一系列寄存器
    發表于 01-13 15:43 ?19次下載
    STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    C語言操作寄存器操作代碼

    由于寄存器中有時會有連續幾個寄存器位用于控制某個功能,現假設我們需要把寄存器的某幾個連續位清零,且其它位不變,代碼如下。
    發表于 12-30 14:19 ?2929次閱讀

    RAL寄存器模型操作圖鑒

    寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進行讀寫訪問,或者同步寄存器模型與RTL中寄存器
    的頭像 發表于 05-17 09:01 ?1313次閱讀
    RAL<b class='flag-5'>寄存器</b>模型<b class='flag-5'>操作</b>圖鑒

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進行讀寫訪問,或者同步寄存器模型與RTL中寄存器
    的頭像 發表于 07-12 09:37 ?1345次閱讀
    RAL<b class='flag-5'>寄存器</b>模型<b class='flag-5'>操作</b>指南
    主站蜘蛛池模板: 久久综合九色综合欧美播 | 另类视频色综合 | 免费大秀视频在线播放 | 天天干天天射天天 | 六月丁香婷婷天天在线 | 天天色天天舔 | 粉嫩尤物在线456 | 亚洲aa| 韩国男女无遮挡高清性视频 | 国产一区二区三区 韩国女主播 | 亚洲午夜精品一区二区 | 国产看午夜精品理论片 | 三级黄色录像 | 亚洲成年 | 日韩免费在线视频 | vip免费观看 | 天天爱天天干天天 | 国产产一区二区三区久久毛片国语 | 天堂8中文在线bt | 一级a毛片免费 | 4虎.最新地址 | 色手机在线 | 久久艹免费视频 | 日日操免费视频 | 久久视频免费看 | 男女视频在线观看免费 | 77788色淫网站女女免费视频 | 一级黄色片a| 九月婷婷综合婷婷 | 高清成年美女xx免费网站黄 | 丁香婷婷影院 | 天天看爽片 | 欧美性xxxx极品高清 | 天天在线天天在线天天影视 | 日韩免费观看一级毛片看看 | 四虎永久在线精品国产 | 五月天丁香婷婷网 | 天天舔天天干 | 日本三级电影在线观看 | 深爱五月激情 | 亚洲区视频在线观看 |