一、按鍵例程
key.c檔案**如下
按鍵初始化相當於gpio口的配置。步驟:時鐘設定,輸入輸出設定,io口屬性設定
#include
#include "key.h"
#include "delay.h"
修改說明
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
/////按鍵初始化
void key_init(void)
//按鍵處理函式
//返回按鍵值
u8 key_scan(void)
else
if(key1==0)
else
if(key2==0)
else
if(key3==0)
else
if(wk_up==1)
}else
if(wk_up==0&&key0==1&&key1==1&&key2==1&&key3==1)key_up=1;
return
0;// 無按鍵按下
}
二、外部中斷實驗
exti.c 檔案**
外部終端0–4都有自己單獨的中斷函式,但是之後就分為兩個公用中斷函式5~9,10~15.
函式內部最後要就行清楚中斷標誌位,每個管腳對應乙個exti->pr的一位。
//外部中斷0服務程式
void exti0_irqhandler(void)
exti->pr=
1<<
0; //清除line0上的中斷標誌位
}//外部中斷5--9服務程式
void exti9_5_irqhandler(void)
else
if(key1==
0)//按鍵1
exti->pr=
1<<
8; //清除line13上的中斷標誌位
exti->pr=
1<<
9; //清除line15上的中斷標誌位
}//外部中斷初始化程式
//初始化pa0,pa13,pa15為中斷輸入.
void extix_init(void)
三、定時器
timer.c**如下
#include
"timer.h"
#include
"led.h"
//定時器3中斷服務程式
void tim3_irqhandler(void)
tim3->sr&=~(1
<<
0);//清除中斷標誌位
}//通用定時器中斷初始化
//這裡時鐘選擇為apb1的2倍,而apb1為36m
//arr:自動重灌值。
//psc:時鐘預分頻數
//這裡使用的是定時器3!
void timerx_init(u16 arr,u16 psc)
stm32硬體除錯
stm32的基本系統主要涉及下面幾個部分 一 電源 1 無論是否使用模擬部分和ad部分,mcu外圍出去vcc和gnd,vdda vssa vref 如果 封裝有該引腳 都必需要連線,不可懸空 2 對於每組對應的vdd和gnd都應至少放置乙個104的陶瓷電容用於濾波,並接該 電容應放置盡量靠近mcu ...
STM32除錯問題
1 stm32用iar除錯出現error pe020 identifier file is undefined 解決方法 需要在 iar的options general options library configuration裡設定一下函式庫,不然printf函式不對,將library confi...
STM32除錯PID心得
近來從機械轉為電子開始除錯底盤,底盤的控制程式已寫好,我要做的工作主要是調引數。看過很多pid的書,理論基本一樣響應慢就加大p值,而在速度控制中基本都不用d即微分,因為電機速度太快了,d值起不了作用的。相應的誤差較大時則增大i值。道理就是這麼個理兒。但可能很多人都不知道p值是有兩個的乙個加速用,乙個...