stm32庫函式程式設計位操作總結

2021-10-02 12:41:02 字數 1979 閱讀 4764

所謂位運算,就是對乙個位元(bit)位進行操作。在《資料在記憶體中的儲存》一節中講到,位元(bit)是乙個電子元器件,8個位元構成乙個位元組(byte),它已經是粒度最小的可操作單元了。

c語言提供了六種運算子

運算子&|^

~<<

>>

說明按位與

按位或按位異或

取反左移

右移左移運算子《用來把運算元的各個二進位制位全部左移若干位,高位丟棄,低位補0。

右移運算子》用來把運算元的各個二進位制位全部右移若干位,低位丟棄,高位補 0 或 1。如果資料的最高位是 0,那麼就補 0;如果最高位是 1,那麼就補 1。

1)把變數的某位清零。

```c

1//定義乙個變數 a = 1001 1111 b (二進位制數)

2unsigned

char a =

0x9f;3

4//對 bit2 清零

56 a &=~

(1<<2)

;78//括號中的 1 左移兩位,(1<<2)得二進位制數:0000 0100 b

9//按位取反,~(1<<2)得 1111 1011 b

10//假如 a 中原來的值為二進位制數: a = 1001 1111 b

11//所得的數與 a 作」位與&」運算,a = (1001 1111 b)&(1111 1011 b),

12//經過運算後,a 的值 a=1001 1011 b

13// a 的 bit2 位被被零,而其它位不變

2) 把變數的某幾個連續位清零

1

2//若把 a 中的二進位制位分成 2 個一組

3//即 bit0、bit1 為第 0 組,bit2、bit3 為第 1 組,

4// bit4、bit5 為第 2 組,bit6、bit7 為第 3 組

5//要對第 1 組的 bit2、bit3 清零

67 a &=~

(3<<2*

1);8

9//括號中的 3 左移兩位,(3<<2*1)得二進位制數:0000 1100 b

10//按位取反,~(3<<2*1)得 1111 0011 b

11//假如 a 中原來的值為二進位制數: a = 1001 1111 b

12//所得的數與 a 作」位與&」運算,a = (1001 1111 b)&(1111 0011 b),

13//經過運算後,a 的值 a=1001 0011 b

14// a 的第 1 組的 bit2、bit3 被清零,而其它位不變。

1516

//上述(~(3<<2*1))中的(1)即為組編號;如清零第 3 組 bit6、bit7 此處應為 3

17//括號中的(2)為每組的位數,每組有 2 個二進位制位;若分成 4 個一組,此處即為 4

18//括號中的(3)是組內所有位都為 1 時的值;若分成 4 個一組,此處即為二進位制數「1111 b」

1920

//例如對第 2 組 bit4、bit5 清零

21 a &=~

(3<<2*

2);

3)對變數的某幾位進行賦值。

1

//a = 1000 0011 b

2//此時對清零後的第 2 組 bit4、bit5 設定成二進位制數「01 b 」

34 a |=(

1<<2*

2);5

//a = 1001 0011 b,成功設定了第 2 組的值,其它組不變

4)對變數的某位取反

1

//a = 1001 0011 b

2//把 bit6 取反,其它位不變

34 a ^=(

1<<6)

;5//a = 1101 0011 b

與0異或不變,與1異或取反。

STM32總結之GPIO 常用庫函式

配置相關函式 1.void gpio init gpio typedef gpiox,gpio inittypedef gpio initstruct 函式解釋 gpio的初始化函式,該函式的作用是對io進行初始化。引數 1 gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集...

stm32之IO操作(基於庫函式)

stm32學習筆記 對於stm32f10x系列晶元的庫函式,gpio的操作函式在stm32f10x gpio.h中宣告,在stm32f10x gpio.c 中完成定義。基於庫函式的stm32的io口操作步驟 1.使能io口時鐘,函式介面 void rcc apb2periphclockcmd uin...

STM32鍵盤 庫函式

昨天晚上老大回來看我頻繁使用暫存器寫程式給出指點,告訴我盡量使用庫函式,少使用暫存器,畢竟暫存器在後面使用的時候還要乙個乙個查詢手冊可能太麻煩了,nice!這次使用庫函式操作鍵盤,很基礎的實驗,其中摻雜了之前的蜂鳴器和led內容。感覺基礎鍵盤實驗比較有價值的還是那個鍵盤操作函式,以下給出標準模板,m...