STM32 4x4矩陣鍵盤初始化及實現多位輸入

2021-09-26 14:50:25 字數 994 閱讀 7127

目的:實現矩陣鍵盤的多位資料輸入

這裡以兩位資料為例

//引腳初始化pc0-pc7

void key_config()

//按鍵掃瞄函式

int keyscan(void)   

gpio_write(gpioc,(gpioc->odr & 0xfff0 | 0x0001));    

switch(gpioc->idr & 0x00f0)   

while((gpioc->idr & 0x00f0)    > 0);   

gpio_write(gpioc,(gpioc->odr & 0xfff0 | 0x0002));    

switch(gpioc->idr & 0x00f0)                

while((gpioc->idr & 0x00f0)    > 0);

gpio_write(gpioc,(gpioc->odr & 0xfff0 | 0x0004));   

switch(gpioc->idr & 0x00f0)                

while((gpioc->idr & 0x00f0)    > 0);

gpio_write(gpioc,(gpioc->odr & 0xfff0 | 0x0008));    

switch(gpioc->idr & 0x00f0)                

while((gpioc->idr & 0x00f0)    > 0);

return keyval;

}//輪詢檢測是否有按鍵按下,有則返回鍵值

u8 key_input(void)

}        

}//冪函式運算

static u16 mys(int a)

return aa;

}//迴圈輸入資料,實現資料結合並返回

u16 key_input()

}for(j=0;j<2;j++)

return dd;

基於STM32 4x4鍵盤掃瞄2020 10 20

四行四列共八個io口,矩陣鍵盤掃瞄難點在於確定是哪個按鍵按下,微控制器不像人類長有眼睛,一看就知道按鍵在哪一行那一列。那如何確定行列值呢?沒錯利用鍵盤行列線連線的io口。仔細觀察矩陣鍵盤原理圖,每個按鍵剛好在行線列線交點,也就是說按鍵按下時行線列線連線的io口導通。利用求同存異原則,只需將行線置高列...

Vue Cli 4x 新建初始化專案

vue cli 最新版本已經出到 4.5.8 了,以往的一些配置,命令可能都不一樣了 最新的vue 專案建立不是以往的 vue init webpack 這樣很可能會一直卡死,所以多看官方文件是很重要的。那麼我們廢話不多說,開始教大家新建專案 npm install vue cli g vue cr...

STM32F10X的時鐘樹及時鐘初始化

對於初學者而言,時鐘是乙個很重要很深的概念,對於stm32晶元來講,為了實現低功耗,設計了乙個功能完善但是卻很複雜的時鐘系統,使得外圍功能的時鐘可配置,相對應的,微控制器的時鐘基本上固定的幾種,簡單配置後就能使用,而stm32的外圍功能不僅要配置,還需要在最開始就要設定這些外設時鐘,只有使能這些外設...