标题:
STM32+L298N模块使用demo(用按键控制电机转速)
[打印本页]
作者:
yangxdong
时间:
2018-12-5 17:09
标题:
STM32+L298N模块使用demo(用按键控制电机转速)
用按键控制电机转速 L298N模块使用程序
STM32单片机源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "usart.h"
#include "sys.h"
#include "DCmotor.h"
#include "exti.h"
extern __IO uint32_t CaptureNumber;
extern __IO uint16_t PWM_Duty;
int main(void)
{
vu8 key=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
uart_init(115200);
LED0=0; //先点亮红灯
EXTIX_Init(); //外部中断初始化
/* 初始化定时器PWM输出 */
DCMOTOR_BRUSH_TIMx_PWM_Init();
/* 初始化编码器捕获,编码器对应TIM3_CH3:PB0引脚 */
TIMx_DCmotor_ENCODER_Init();
DCMOTOR_25GA370_Contrl(1,1,PWM_Duty);
printf("PWM_Duty = %d.\r\n",PWM_Duty);
while(1)
{
key=KEY_Scan(0); //得到键值
printf("freq:%d\n",CaptureNumber); // 打印编码器捕获值
printf("\r\n电机转速 = %f:\r\n",(float)CaptureNumber/34/11);
CaptureNumber=0; // 清零,从零开始计数
delay_ms(500);
printf("IN while(1) PWM_Duty = %d.\r\n",PWM_Duty);
// switch(key)
// {
// int num1 = 0, num2 = 0;
//// printf("ENTER CASE\r\n");
// case KEY2_PRES:
// num1 += 1;
// printf("KEY2 按了%d次\r\n",num1);
// PWM_Duty += 50;
// if(PWM_Duty > 1000)
// {
// PWM_Duty = 1000;
// }
// DCMOTOR_25GA370_Contrl(1,1,PWM_Duty);
// printf("After KEY2 PWM_Duty = %d.\r\n",PWM_Duty);
// break;
//
// case KEY1_PRES:
// num2 += 1;
// printf("KEY2 按了%d次\r\n",num2);
// PWM_Duty -= 50;
// if(PWM_Duty < 100)
// {
// PWM_Duty = 100;
// }
// DCMOTOR_25GA370_Contrl(1,1,PWM_Duty);
// printf("After KEY1 PWM_Duty = %d.\r\n",PWM_Duty);
// break;
// default :break;
// }
}
}
复制代码
所有资料51hei提供下载:
L298N模块使用demo(用按键控制电机转速).rar
(303.71 KB, 下载次数: 54)
2018-12-7 04:23 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2018-12-7 04:24
补全原理图或者详细说明一下电路连接即可获得100+黑币
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1