一些簡單問題的思考:

1.爲什麼不是每個模塊的引腳都是32位?
因爲正好夠用才合適,這樣才能減少體積和芯片價格
2.GPIO和PORT的區別:
PORT 是將引腳複用到其他模塊上。
二GPIO只能用於普通IO口的輸入輸出
3.const和volatile
const修飾只讀變量,限定了變量不能被改變
volatile:聲明變量爲易變的,它隨時可能被修改
4.宏定義封裝:
宏定義封裝,會把代碼直接展開,而不會想函數調用那樣需要入棧出棧等操作,所以宏定義封裝一般佔用很多的空間,即空間換時間。一般在代碼非常短的情況下,才使用。如果一行的語句太長,用續行符‘\’,後面只能回車,不能有其他符號
5.按鍵掃描的模塊:
ADC掃描:
優點:僅需一個I\O口ADC就可以實現多個按鍵
缺點:不支持多個按鍵同時按下。
方法:電阻分壓,不同按鍵產生不同的電壓 。
GPIO按鍵掃描:
獨立式和矩陣式
按鍵掃描的方式分爲:循環查詢,定時查詢,中斷響應
循環查詢:在一個循環中不斷掃描,獲取按鍵值
優點:軟件處理簡單
缺點:消抖處理浪費寶貴的CPU時間,實時性不足
定時掃描:
在定時中斷服務函數中掃描獲取按鍵值,根據按下的時間分爲不同的消息,把消息發送到FIFO緩衝區,等主函數有需要時再來處理按鍵消息。
優點:避免了消抖,不會丟失
缺點:運用定時器中斷,佔用較多內存。
中斷響應:
按鍵按下時觸發中斷,獲取按鍵值,需要進行消抖處理。
優點:實時性好
缺點:需要微控制器支持中斷,同時消抖處理時佔用CPU時間
市場採用定時查詢的方法

發佈了42 篇原創文章 · 獲贊 28 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章