一 電子電路基礎
電路的源頭
基礎還是要寫一下的
1. 歐姆定律與功率
\(U=I×R\)
這個不需要寫
2. 數字電平與電阻的用
高/低電平:明確 VCC 和 GND 的界限。上拉/下拉電阻: 解決引腳“懸空(Floating)”時的不確定狀態,這是按鍵檢測和通信總線的核心基礎(不搞這個的話,就會處於一種很不穩定的
薛定諤
狀態,容易受外界影響
3. 核心元器件的“開關”本質**
二極管: 單向導電性
三極管/MOS管:--->微型電子開關
電容: “通交流阻直流”和“儲能濾波”
現在沒用到
4. GPIO輸出方式
推輓輸出 (Push-Pull,即GPIO_Mode_Out_PP): 能高能低,驅動能力強,適合接LED、蜂鳴器。
開漏輸出 (Open-Drain): 只能輸出低電平,高電平需靠外部上拉,適合 I2C 等多機通信。
idk
二 邏輯電子基礎
經典位運算符
按位運算符:
- 按位或 |
(0x0001 | 0x0003 = 0000 0000 0000 0011)
説人話就是把所有指定的位變成1,即 置位 - 按位與 &
(0x0001 & 0x0003 = 0000 0000 0000 0001)
配合~取反,可以把所有非 1 1 的位變成0,即所有不同為1的都指定為0
1111 1111 1111 1110
- 其他一些
#1 把1寫入寄存器特定位
REG |= (1 << 3)
REG就是寄存器
1 << 3 (左移運算):
1 的二進制是 0000 0001
<< 3 代表向左移動 3 位
結果變成:0000 1000。這就創造了一個 “掩碼” (Mask),它的第 3 位(從 0 開始算)是 1,其他全是 0
(流水燈可以在這個時候取反)
|= (或等於):
這步操作相當於:REG = REG | 0000 1000
因為 | 的特性是“只要有 1 就是 1”,所以無論 REG 原來第 3 位是什麼,現在都包變成了 1
説人話就是把0x0001向左撥三位,再把寄存器的這個位變成1,不影響其他位
#2 清零 把0寫入寄存器特定位
GPIOA->ODR/*指針運算符找Output Data Register*/ &= ~(1 << 5);
具體寫一下吧
0000 0000 0000 0001
<<5
0000 0000 0100 0000
~1
1111 1111 1011 1111
&
???? ???? ?1?? ????
0 & 1 = 0 //原本是0
1 & 1 = 1 //原本是1
=???? ???? ?0?? ????
三 GPIO的結構圖的理解(如何看懂原理圖)
留到下次吧