找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32+L298N模块使用demo(用按键控制电机转速)

[复制链接]
跳转到指定楼层
楼主
ID:440223 发表于 2018-12-5 17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用按键控制电机转速 L298N模块使用程序

STM32单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "usart.h"
  5. #include "sys.h"
  6. #include "DCmotor.h"
  7. #include "exti.h"

  8. extern __IO uint32_t CaptureNumber;
  9. extern __IO uint16_t PWM_Duty;

  10. int main(void)
  11. {
  12.         vu8 key=0;       
  13.         delay_init();                     //延时函数初始化       
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级  
  15.         LED_Init();                             //LED端口初始化
  16.         KEY_Init();          //初始化与按键连接的硬件接口
  17.         uart_init(115200);
  18.         LED0=0;                                        //先点亮红灯
  19.         EXTIX_Init();                         //外部中断初始化

  20.        
  21.   /* 初始化定时器PWM输出 */
  22.   DCMOTOR_BRUSH_TIMx_PWM_Init();
  23.        
  24.   /* 初始化编码器捕获,编码器对应TIM3_CH3:PB0引脚 */
  25.   TIMx_DCmotor_ENCODER_Init();       
  26.        
  27.   DCMOTOR_25GA370_Contrl(1,1,PWM_Duty);
  28.        
  29.         printf("PWM_Duty = %d.\r\n",PWM_Duty);
  30.        
  31.         while(1)
  32.         {
  33.                 key=KEY_Scan(0);        //得到键值
  34.     printf("freq:%d\n",CaptureNumber);  // 打印编码器捕获值
  35.                 printf("\r\n电机转速 = %f:\r\n",(float)CaptureNumber/34/11);
  36.     CaptureNumber=0;    // 清零,从零开始计数
  37.                 delay_ms(500);       
  38.                
  39.                 printf("IN while(1) PWM_Duty = %d.\r\n",PWM_Duty);
  40.                
  41. //                switch(key)
  42. //                {       
  43. //                        int num1 = 0, num2 = 0;
  44. ////                        printf("ENTER CASE\r\n");
  45. //                        case KEY2_PRES:       
  46. //                                num1 += 1;       
  47. //                                printf("KEY2 按了%d次\r\n",num1);
  48. //                                PWM_Duty += 50;
  49. //                                if(PWM_Duty > 1000)
  50. //                                {
  51. //                                        PWM_Duty = 1000;       
  52. //                                }
  53. //                                DCMOTOR_25GA370_Contrl(1,1,PWM_Duty);
  54. //                                printf("After KEY2 PWM_Duty = %d.\r\n",PWM_Duty);
  55. //                        break;
  56. //                               
  57. //                        case KEY1_PRES:       
  58. //                                num2 += 1;       
  59. //                                printf("KEY2 按了%d次\r\n",num2);                               
  60. //                                PWM_Duty -= 50;
  61. //                                if(PWM_Duty < 100)
  62. //                                {
  63. //                                        PWM_Duty = 100;
  64. //                                }
  65. //                                DCMOTOR_25GA370_Contrl(1,1,PWM_Duty);
  66. //                                printf("After KEY1 PWM_Duty = %d.\r\n",PWM_Duty);                               
  67. //                        break;               
  68. //                        default :break;
  69. //                }
  70.         }
  71. }         
复制代码

所有资料51hei提供下载:
L298N模块使用demo(用按键控制电机转速).rar (303.71 KB, 下载次数: 54)


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

使用道具 举报

沙发
ID:1 发表于 2018-12-7 04:24 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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