不得不說程序太慢了
感覺很慌 但是幹什麼事情又非常的從容
學的很慢學著學著發現 不止是要學新東西 那些 以前早該知道的東西也忘了好多
還有 一定一定要好好學習 擴充套件知識面 什麼東西都一定要學精
因為知識的封鎖真的真的很可怕 很可怕 所以一定多學習 多動手 要加油
終於可以看這個的重點了 按鍵
就好像遙控器 當按下換頻道的鍵時候我們一直按會一直換
但是 當按下電源鍵的時候 即使一直按也只會開關一次而不會一直開關 知道鬆開之後再次按下 才會起作用
所以按鍵分為支援連續按和不支援連續按
首先支援連續按
注意此函式有響應優先順序,key0>key1>key_up!!
u8 key_scan(u8 mode)
else if(key1 == 1 && key0 == 1 && wk_up == 0)
return 0; //沒有按鍵按下 返回無效值
}
如果不支援連續按
注意此函式有響應優先順序,key0>key1>key_up!!
u8 key_scan(u8 mode)
else if(key1 == 1 && key0 == 1 && wk_up == 0)
key_up = 1;
return 0;
}
當兩個函式合併時
u8 key_scan(u8 mode)
else if(key1 == 1 && key0 == 1 && wk_up == 0)
key_up = 1;
return 0;
}
所以key的相關函式其實已經差不多說完了
接下來就把 key.c /key,h/ main.c寫一下(因為led和蜂鳴器之前已經寫過了, 這就不在寫了)
按鍵處理函式
返回按鍵值
mode:0,不支援連續按;1,支援連續按;
0,沒有任何按鍵按下
1,key0按下
2,key1按下
3,key3按下 wk_up
注意此函式有響應優先順序,key0>key1>key_up!!
#include "key.h"
#include "delay.h"
void key_init(void)
u8 key_scan(u8 mode)
else if(key1 == 1 && key0 == 1 && wk_up == 0)
key_up = 1;
return 0;
}
#ifndef _key_h
#define _key_h
#include "sys.h"
#define key0 gpio_readinputdatabit(gpioe, gpio_pin_4)
#define key1 gpio_readinputdatabit(gpioe, gpio_pin_3)
#define wk_up gpio_readinputdatabit(gpioa, gpio_pin_0)
#define key0_pres 1 //key0 anxia
#define key1_pres 2 //key1 anxia
#define wkup_pres 3 //key_up anxia
void key_init(void);
#endif
#include "stm32f10x.h"
#include "led.h"
#include "beef.h"
#include "key.h"
#include "sys.h"
#include "delay.h"
int main(void)
} else
delay_ms(10);
} }
其中有一點吧,main函式的那個vu8, 反正我第一眼看的時候不知道是怎麼回事:
u8是無符號字元型,vu8是volatile unsigned char的型別,前者很容易理解,後者的話是為了防止編譯器將你定義的變數自動優化掉,以防出現未知情況。一般普通變數都可不加volatile,但是在中斷裡面所需要執行的變數需要加volatile。
加油呀!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(資源源於正點原子)
STM32 實現PWM 庫函式版
tim1和tim7沒有pwm輸出 tim0和tim8 有七路pwm輸出 27 14 通用定時器 都有4個 pwm 44 16 一共有30個pwm輸出 圖中,我們假定定時器工作在向上計數 pwm 模式,且當 cnt ccrx 時輸出 1。那麼就可以得到如上的 pwm示意圖 當 cnt 值小於 ccrx...
STM32實現待機喚醒 庫函式版
很多微控制器都有低功耗模式,stm32 也不例外。在系統或電源復位以後,微控制器處於運 行狀態。執行狀態下的 hclk 為 cpu 提供時鐘,核心執行程式 當 cpu 不需繼續執行時,可以利用多個低功耗模式來節省功耗,例如等待某個外部事件時。使用者需要根據最低電源消耗,最快速啟動時間和可用的喚醒源等...
stm32 工業按鍵檢測 STM32按鍵的檢測
stm32的按鍵檢測相對比較簡單,首先按部就班的初始化連線的到的i o,然後寫乙個按鍵掃瞄函式,這個和51微控制器的差不多。以下是乙個比較典型的例子 利用按鍵控制led key.件 ifndef key h define key h include sys.h definekey0 gpio rea...