单片机用正点原子stm32F103ZET6,驱动模块用L298N,利用外部中断按键控制电机转动。如有疑问,请留言。
实验目的:
学习外部中断的使用
硬件资源:
1,DS0(连接在PB5),DS1(连接在PE5)
2,蜂鸣器(连接在PB8)
3,按键KEY0(PE4)/KEY1(PE3)/KEY_UP(PA0,也称之为WK_UP)
实验现象:
本实验,利用外部中断,实现与实验3类似的效果,即:通过开发板上载有的3个按钮(KEY_UP、KEY0和KEY1),来控制板上的2个LED(DS0和DS1)和蜂鸣器,其中WK_UP控制蜂鸣器,按一次叫,再按一次停;KEY1控制DS1,按一次DS1亮,再按一次DS1灭;KEY0则同时控制DS0和DS1,按一次,他们的状态就翻转一次。
单片机源程序如下:
- #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(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为115200
- LED_Init(); //初始化与LED连接的硬件接口
- BEEP_Init(); //初始化蜂鸣器IO
- EXTIX_Init(); //初始化外部中断输入
- Motor_12_Config();
- LED0=0; //先点亮红灯
- while(1)
- {
- printf("OK\r\n");
- delay_ms(1000);
- }
- }
复制代码
所有资料51hei提供下载:
实验5 外部中断实验.rar
(281.52 KB, 下载次数: 47)
|