STM32实现电机的正反转

发布者:不羁少年最新更新时间:2019-08-22 来源: eefocus关键字:STM32  电机  正反转 手机看文章 扫描二维码
随时随地手机看文章

2019年7月22日

今天是做小车过程中的第二天,今天写一下单纯的实现电机的正反转。(但是还是不会实现PWM调速)代码如下:

/***********************************************/

.H 代码

#ifndef __MOTOR1_H

#define __MOTOR1_H

#include “stm32f10x.h”

//#include “stm32f10x_gpio.h”

#define High 1 //宏定义 高为1

#define Low 0 //宏定义 低为0

#define IN1(a) if (a) 

GPIO_SetBits(GPIOA,GPIO_Pin_4); //如果真 IN1 为高电平(PA4)

else

GPIO_ResetBits(GPIOA,GPIO_Pin_4) // 否则为低电平 (PA4)

#define IN2(a) if (a) 

GPIO_SetBits(GPIOA,GPIO_Pin_5);

else 

GPIO_ResetBits(GPIOA,GPIO_Pin_5)

otor_1_Config(void);

void Motor_1_STOP(void); //停止

void Motor_1_PRun(void); //正转

void Motor_1_NRun(void); //反转

#endif

下面是.c代码

#include “motor.h”

#include “stm32f10x.h”

#include “delay.h”

void Motor_1_Config(void)

{

GPIO_InitTypeDef GPIO_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//用GPIOA时钟

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5;

GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStruct);

GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5);

}

void Motor_1_STOP(void)

{

IN1(High);

IN2(High);

}

void Motor_1_PRun(void)

{

IN1(Low);

IN2(High);

}

void Motor_1_NRun(void)

{

IN1(High);

IN2(Low);

}

下面是主函数

int main(void)

{

Motor_1_Config();

delay_init();

while(1)

{

Motor_1_PRun(); //正转

delay_ms(2000); //延迟2秒

Motor_1_NRun(); //反转

delay_ms(2000); //延迟2秒

Motor_1_STOP(); //停止

delay_ms(2000);

}

}

关键字:STM32  电机  正反转 引用地址:STM32实现电机的正反转

上一篇:STM32用PWM实现步进电机的正反转
下一篇:STM32F103 使用TIM3产生四路PWM

推荐阅读最新更新时间:2024-11-13 12:17

stm32通用定时器用做外部脉冲计数器的例程
最近几天要用到stm32对外部输入脉冲进行计数,很自然想到定时器,可是手上资料没有讲解stm32定时器如何用作外部计数器的,在网上找例程,也没找到几个正确的,自己硬着头皮仔细研究参考手册,终于知道如何配置了,并写了一个例程,希望将来对一些网友有用。 其实stm32通用定时器做计数器,对外部脉冲计数,还是比较简单的,使用外部时钟模式2即可轻松实现,但要注意,这种模式下,外部输入脉冲信号一定要接在相应TIM的ETR引脚上,不能接在TIMx_CHy引脚上。 使用stm32定时器的外部时钟模式2,主要就是通过配置TIMx_SMCR寄存器相应位。步骤如下: 1. 若不需要滤波器,置TIMx_SMCR寄存器中的ETF =0000 2
[单片机]
一种用于电动汽车电机驱动的智能功率模块
越来越多的领先电动汽车制造商正在将碳化硅( SiC MOSFET )功率场效应管 用于牵引 逆变器 ,其中有些还采用了非传统的分立器件封装。但是,目前很难找到针对电动机驱动而优化的 SiC 功率模块来适配不同的应用。更进一步,将快速开关的 SiC 功率模块与栅极驱动器、去耦及水冷等整合为驱动总成,还要面对一些新的挑战。因此,经过完全优化和高度集成的智能功率模块解决方案,可以为客户节省大量的开发时间和工程资源。 本文介绍了一种用于电动汽车电机驱动、或电力逆变器的新型三相 1200V SiC MOSFET 智能功率模块(IPM)。该 IPM 提供了一种多合一的解决方案,含有栅极驱动器和三相全桥 SiC MOSFET 功率电路,可用
[汽车电子]
一种用于电动汽车<font color='red'>电机</font>驱动的智能功率模块
力矩电机控制器简单故障判别方法
1.力矩电机控制器通电时,电机抖动 a) 检查是否为控制信号线接头松动 b) 检查是否为三相电源缺相。 2. 力矩电机控制器通电后,电机立即高速运行 a) 检查是否为控制信号已加在最大 b) 检查是否把端子“5”的+10V接入了控制输入端。 3.力矩电机控制器通电后,电机不转: a) 检查有无控制信号输入 b) 检查电机是否由于负载过大,发生堵转
[嵌入式]
玩转STM32(11)CPU的心跳历程
前面说CPU怎么样才有脉搏,也就是给CPU装了一个心脏,这样这个由泥沙组成的CPU才能开始拥有像生命的力量了。在前文后面,提到了使用25MHz晶振作为外部的频率来源,但是我们的目标是让CPU工作在168MHz的频率,这样才可以让CPU工作得更快,运行代码更快,效率更高。当然,如果你想让CPU工作在25MHz也是可以的,只是有点不值得,用这么贵的硬件,运行这么低的频率。要想快,就得提高CPU运行的频率,那么怎么样才可以把25MHz的频率转换为168MHz的频率呢?可以看到168M是比25M频率高很多,显然要使用到倍频电路,也要使用到分频电路。比如把25M按25分频系数来分频,那么得到频率就是1M,然后再使用倍频电路,比如使用336作
[单片机]
玩转<font color='red'>STM32</font>(11)CPU的心跳历程
基于STM32芯片的γ能谱仪设计
随着对天然辐射场中低能量γ谱学及其应用的深入研究,γ能谱仪不仅在固体矿产勘探、油气普查、水文和工程地质调查等工业生产及科学研究方面,甚至在民用的环境辐射场调查、建材与建筑装饰材料放射性检测方面,都得到广泛的应用,应用场合的复杂多样化对核辐射测量仪器提出新的需求。 传统的核辐射测量仪器常采用探头与主控仪器分离的方式,而且主控仪器通常采用 32 位 ARM7 处理器甚至 8 位单片机系统来进行控制,数据采集常采用速度较低的 ADC 芯片。硬件电路复杂、体积大、集成度低、功能单一。近年 ARM 公司 Cortex—M 系列 ARM 核的推出将微控制器的性能提高到一个崭新的高度,同时功耗与成本大大降低。本文介绍一种主要基于最新 Corte
[单片机]
关于STM32的USART_GetFlagStatus和USART_GetITStatus解析(异步通信)
前言 STM32固件库中提供了串口收发的标志位函数,包括USART_GetFlagStatus(…,…);和USART_GetITStatus(…,…);,两者容易混淆,重点区别就在于:前者返回值是中断标志位状态(读SR寄存器),后者返回值是中断发生与否的判断(读CR寄存器),以下主要对这两个函数进行分析。 一、USART_GETFlagStatus(…,…) /** * @brief Checks whether the specified USART flag is set or not. * @param USARTx: Select the USART or the UART peripheral. *
[单片机]
关于<font color='red'>STM32</font>的USART_GetFlagStatus和USART_GetITStatus解析(异步通信)
STM32 环境光传感器ADC采样
一、STM32 环境光传感器模块 TEMT60000光传感器把光信号转变成为电信号,PA作为模拟输入,接收光传感器的电压, 将PA4设置成ADC 二、Stm32CubeMx配置ADC 打开PA4并使能ADC1通道9 配置完ADC之后,GPIO模式自动为模数转换模式 使能外部高速时钟 配置时钟 不要让ADC时钟超过14MHz,否则可能不准 ADC参数设置 配置USART1为异步模式 PA10和PA9被使能作为串口的收发端 生成代码 三、Keil编写程序 在uart.c中做printf、scanf的重定向以便于串口通信 #include stdio.h #ifdef __GNU
[单片机]
<font color='red'>STM32</font> 环境光传感器ADC采样
基于L297和L298的步进电机驱动器的设计
引言 步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。 步进电机控制 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(VR)、永磁式步
[单片机]
基于L297和L298的步进<font color='red'>电机</font>驱动器的设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved