單片機(jī)用正點(diǎn)原子stm32F103ZET6,驅(qū)動(dòng)模塊用L298N,利用外部中斷按鍵控制電機(jī)轉(zhuǎn)動(dòng)。如有疑問,請留言。
實(shí)驗(yàn)?zāi)康?
學(xué)習(xí)外部中斷的使用
硬件資源:
1,DS0(連接在PB5),DS1(連接在PE5)
2,蜂鳴器(連接在PB8)
3,按鍵KEY0(PE4)/KEY1(PE3)/KEY_UP(PA0,也稱之為WK_UP)
實(shí)驗(yàn)現(xiàn)象:
本實(shí)驗(yàn),利用外部中斷,實(shí)現(xiàn)與實(shí)驗(yàn)3類似的效果,即:通過開發(fā)板上載有的3個(gè)按鈕(KEY_UP、KEY0和KEY1),來控制板上的2個(gè)LED(DS0和DS1)和蜂鳴器,其中WK_UP控制蜂鳴器,按一次叫,再按一次停;KEY1控制DS1,按一次DS1亮,再按一次DS1滅;KEY0則同時(shí)控制DS0和DS1,按一次,他們的狀態(tài)就翻轉(zhuǎn)一次。
單片機(jī)源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "exti.h"
- #include "beep.h"
- #include "motor.h"
-
- int main(void)
- {
-
- delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- uart_init(115200); //串口初始化為115200
- LED_Init(); //初始化與LED連接的硬件接口
- BEEP_Init(); //初始化蜂鳴器IO
- EXTIX_Init(); //初始化外部中斷輸入
- Motor_12_Config();
- LED0=0; //先點(diǎn)亮紅燈
- while(1)
- {
- printf("OK\r\n");
- delay_ms(1000);
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
實(shí)驗(yàn)5 外部中斷實(shí)驗(yàn).rar
(281.52 KB, 下載次數(shù): 47)
2018-11-21 17:08 上傳
點(diǎn)擊文件名下載附件
motor.和motor.h和cexit.c
|