A. stm32單片機keil程序問題
要想實現你說的操作
搭建好平台
初始化一個定時器用於獲取按鍵值(添加防抖動效果處理)
跑馬燈的幾個IO初始化配置
數碼管顯示初始化以及顯示程序
蜂鳴器初始化及其程序
主函數
int main(void)
{
//按鍵定時器初始化
// 跑馬燈IO初始化
// 數碼管初始化
// 蜂鳴器初始化
uint16_t keyId;
while(1)
{
keyId = GetKeyId(); //GetKeyId函數是你定時器獲取的按鍵值
switch(keyId)
{
key1: // 相應處理事件
.
.
.
break;
.
.
.等等。。。。
}
}
}
B. STM32 4*4矩陣鍵盤的疑惑 程序中通過掃描方式實現,但不能實現功能。調用庫函數時,有個函數不明白設置的
GPIO_Write(GPIOB,(GPIOB->ODR & 0xfff0 | 0xf))
這個地方是說!你先把GPIOB口的輸出寄存器低四位清零,讓後在把他與0xf相與在把低四位置高。
GPIOB是32位寄存器所以,0xfff0正好是32位,那個0xf是0x0f的意思!
C. stm32程序如下,為什麼按下矩陣鍵盤,led燈不亮呢
這段程序沒有錯誤.如果你就JTAG的話建議使用在線模擬(具體教程請網路吧,不算復雜),在switch(x)處設置斷點,當程序執行到那裡就暫停了,可以看到x的值是多少,這樣有助於你查找錯誤.
如果沒有的話建議買一個,也不貴,五六十就可以買到.很方便的東西