STM32簡單例程除錯

2021-07-07 10:01:19 字數 1687 閱讀 1976

一、按鍵例程

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值是有兩個的乙個加速用,乙個...