找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2780|回复: 3
打印 上一主题 下一主题
收起左侧

STM32直流电机驱动程序

[复制链接]
跳转到指定楼层
楼主
ID:425288 发表于 2018-11-12 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是很适合新手的直流电机驱动完整代码。
可以根据按键来控制电机的正转、反转和停止

单片机源程序如下:
  1. #include "stm32f10x.h"         //官方库
  2. #include "stm32f10x_gpio.h"
  3. #include "stm32f10x_rcc.h"

  4. #include "motor.h"
  5. #include "delay.h"
  6. #include "key.h"


  7. int main(void)
  8. {
  9.         Motor_12_Config(); //298电机驱动初始化
  10.         delay_init();  //延时函数初始化
  11.         key_init();  //按键初始化
  12.        
  13.         while(1)
  14.         {
  15.         Motor_1_PRun(); //正转
  16.         Motor_2_PRun();
  17.        
  18.         delay_ms(10000); //转三秒
  19.         delay_ms(10000);
  20.         delay_ms(10000);
  21.        
  22.         Motor_1_NRun();  //反转
  23.         Motor_2_NRun();
  24.                
  25.         delay_ms(10000); //转三秒
  26.         delay_ms(10000);
  27.         delay_ms(10000);
  28.        
  29.         Motor_1_STOP();  //停止
  30.         Motor_2_STOP();
  31.        
  32.         delay_ms(10000);  //停三秒
  33.         delay_ms(10000);
  34.         delay_ms(10000);
  35.   }
  36. }
复制代码
  1. #include "motor.h"  //导入led头文件
  2. #include "stm32f10x.h"  //导入STM32官方库
  3. #include "stm32f10x_rcc.h"  //导入STM32的RCC时钟库
  4. #include "delay.h"       //延时库

  5. void Motor_12_Config(void)  //定义初始化函数
  6. {
  7.         GPIO_InitTypeDef GPIO_InitStructure;   //定义GPIO_InitTypeDef结构体
  8.   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);  //开启引脚时钟
  9.        
  10.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5; //定义IN引脚
  11.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //通用推挽输出
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //设置输出功率
  13.         GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化GPIOA的引脚参数,写进
  14.        
  15.         GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5); //所有引脚拉低
  16. }

  17. void Motor_1_STOP(void)
  18. {
  19.         IN1(High);
  20.         IN2(High);
  21. }

  22. void Motor_1_PRun(void)
  23. {
  24.         IN1(Low);
  25.         IN2(High);
  26. }

  27. void Motor_1_NRun(void)
  28. {
  29.         IN1(High);
  30.         IN2(Low);
  31. }

  32. void Motor_2_STOP(void)
  33. {
  34.         IN3(High);
  35.         IN4(High);
  36. }

  37. void Motor_2_PRun(void)
  38. {
  39.         IN3(Low);
  40.         IN4(High);
  41. }

  42. void Motor_2_NRun(void)
  43. {
  44.         IN3(High);
  45.         IN4(Low);
  46. }
复制代码


所有资料51hei提供下载:
直流电机驱动.rar (276.3 KB, 下载次数: 77)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:573864 发表于 2019-7-10 18:11 | 只看该作者
大佬  按键控制怎么加
回复

使用道具 举报

板凳
ID:657909 发表于 2019-12-6 23:03 | 只看该作者
不错不错,谢谢了
回复

使用道具 举报

地板
ID:737765 发表于 2020-4-25 15:47 | 只看该作者
按键控制是要自己写么,电路图可以分享一下么
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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