微控制器用來控制按鍵時,為節省io口的使用,常常將按鍵搞成矩陣按鍵,這裡用的是5個io,搞為2*3=6個按鍵,io為g0,g1,g2,g3,g4 ,可自行更改。使用多個io口原理相同
初始化io,將行io設定為推挽輸出,列io設定為上拉輸入(初始化為高電平)
將行io設定輸出低電平0
檢測列io是否為1,如果不是,則有按鍵按下(注意消抖)
有按鍵按下時,行 列 轉變,將列io設定為推挽輸出,行io設定為上拉輸入。列io輸出低電平0,檢測行io哪個為低電平即可確定哪個按鍵按下
檢測按鍵是否鬆開
返回哪個按鍵按下
標頭檔案沒有的記得刪除
#include "key.h"
#include "delay.h"
#include #include "oled.h"
extern u8 keyvalue;
u8 key_init(void)
return val;}}
return val;
}
void key_scan(u8 a) //讀按鍵返回值(val)
用時需改變io及case裡面的數值
基於stm32f407建立stm32F427工程
分為三個部分 1.啟動檔案 2.fwilib 包含兩個資料夾inc和src。src裡面是stm32資源的c檔案,inc則是32資源的h檔案 3.user這也是我不太理解的部分 ddbugconfig只包含了用於debug的初始化,則是f4的系統檔案。我是在f407的基礎上改的 總的來說 1.改了晶元...
STM32F407上除錯freeRTOS問題
是在正點原子的阿波羅stm32f429開發板上的例子改來的,他們的編譯沒有問題,我編譯時出現如下問題 定位到出錯的地方,是 再追 configmax syscall interrupt priority 的定義是 define configmax syscall interrupt priority...
STM32F407 bootload 程式測試
stm32f407 bootload 程式測試 最近產品需要上遠端公升級功能,那麼微控制器肯定要用bootload了。初步設計方法為先用原子的程式作為基礎版,採用串列埠公升級的方式進行除錯,基本配置如下 1 iap程式的配置 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如...