找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2884|回复: 1
收起左侧

stm32用外部中断来控制l298n控制电机转动的源码

[复制链接]
ID:428726 发表于 2018-11-21 14:04 | 显示全部楼层 |阅读模式
单片机用正点原子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,按一次,他们的状态就翻转一次。

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "exti.h"
  7. #include "beep.h"
  8. #include "motor.h"
  9.        
  10. int main(void)
  11. {               

  12.         delay_init();                     //延时函数初始化          
  13.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  14.         uart_init(115200);         //串口初始化为115200
  15.         LED_Init();                                  //初始化与LED连接的硬件接口
  16.         BEEP_Init();                         //初始化蜂鸣器IO
  17.         EXTIX_Init();          //初始化外部中断输入
  18.         Motor_12_Config();
  19.         LED0=0;                                        //先点亮红灯
  20.         while(1)
  21.         {            
  22.                 printf("OK\r\n");       
  23.                 delay_ms(1000);          
  24.         }         
  25. }
复制代码

所有资料51hei提供下载:
实验5 外部中断实验.rar (281.52 KB, 下载次数: 47)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:478875 发表于 2019-2-21 14:37 | 显示全部楼层
可以不用中断就实现正反转吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表