備戰藍橋杯之嵌入式 按鍵實驗

2021-07-10 02:12:11 字數 861 閱讀 4149

這次要實現的功能是lcd顯示我按下的是哪乙個鍵。

需要注意一下幾個點:

1:配置button的時候要注意是輸入模式,因此不需要配置頻率。

2:配置成上拉輸入(ipu)還是下拉輸入(ipd)要看硬體連線,按鍵沒按下時檢測到高電平則為上拉輸入,按鍵沒按下前檢測到低電平則為下拉輸入

3:#define ***x xx語句後不能加;,否則出現錯誤「expect expression」

4:lcd顯示程式中,要想覆蓋掉某一段文字,可用空格,如lcd_showstring(30,150,200,16,16,"key0 is pressed     );

這裡貼一段正點原子的lcd在主函式裡的通用寫法,方便以後隨時呼叫:

#include "delay.h"

#include "sys.h"

#include "usart.h"

#include "lcd.h"

int main(void)

再貼一段switch語句的格式,自己老是忘記:

switch(x)

最後貼出主函式:

#include "delay.h"

#include "sys.h"

#include "usart.h"

#include "lcd.h"

#include "button.h"

#include "led.h"

int main(void)

if(i>1000000)

}}

主函式中我還加入了led顯示,這裡需要注意的是led閃爍不能用延時函式。

btw如果你的游標突然變成了黑色小方塊,按一下insert(0)即可切換。

備戰藍橋杯之嵌入式 SYSTICK

之前一直用正點原子的sys.h裡的延時函式封裝庫,所以當自己弄乙個systick的延時函式時,卻被它給難住了,實在是笑話了。我之前是參照正點原子ppt裡給的函式寫的 static io uint32 t timingdelay void delay io uint32 t ntime void sy...

備戰藍橋杯之嵌入式 TIM

這次是定時器實驗,實驗功能是利用定時器中斷使led每隔500ms進行閃爍。首先要理解這條公式 tout 溢位時間 arr 1 psc 1 tclk 然後還要理解定時器的時鐘 除非apb1的分頻係數是1,否則通用定時器的時鐘等於apb1時鐘的2倍。預設呼叫systeminit函式情況下 sysclk ...

藍橋杯嵌入式 按鍵輸入

博主從硬體方面和軟體方面進行講解。硬體方面,我們先來看看按鍵模組的物理連線。我們很容易的發現,當我們按下按鍵的時候,nk1 ps以這個按鍵為例 電平將會被拉低。試想如果這個與nk1相連的的管腳如果在沒有按下按鍵的時候保持高電平,我們只需要檢測管腳訊號的變化既可以知道有無按鍵按下。還有乙個關於硬體方面...