今天,接到一个任务,采用stm32驱动步进电机,已经有了驱动模块了。所以不再采用PWM方式,直接用软件编写。
我也是初学,仅供参考。
1、管脚接线
// IN4: PC9 d
// IN3: PC8 c
// IN2: PC7 b
// IN1: PC6 a
电源接开发板电源。地接地(简直是废话)。
2、定义正转反转数组
uint16_t phasecw[4] ={0x0200,0x0100,0x0080,0x0040};// D-C-B-A
uint16_t phaseccw[4]={0x0040,0x0080,0x0100,0x0200};// A-B-C-D
说明一下,数组里面的值,就是对应的GPIO口的地址。根据自己实际的接线方式填入。
3、子函数书写 3.2电机初始化函数 void Moto_Init(void) } 3.3电机正转函数 3.4电机反转函数 3.5电机停止函数 4主函数测试代码
3.1延时函数
void Delay_xms(uint x)
{
uint i,j;
for(i=0;i
for(j=0;j<112;j++);
}
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_ResetBits(GPIOC,GPIO_Pin_6 | GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9 );
void Motorcw(void)
{
uint8_t i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOC,phasecw[i]);
Delay_xms(50);
}
}
void Motorccw(void)
{
uint8_t i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOC,phaseccw[i]);
Delay_xms(50);
}
}
void MotorStop(void)
{
GPIO_Write(GPIOC,0x0000);
}
int main()
{
unsigned int i;
Moto_Init();
while(1)
{
for(i=0;i<500;i++)
{
Motorcw();
}
}
}
如何控制转速呢,把正转反转函数里面的“50”改大就相当于调慢了脉冲速度,自然电机就慢了。当然你也可以根据现实开发自己设置变量去各种调节速度。有什么问题可以跟博主交流,我也是新手哦。但是我实际测出来的转速最快只有每分钟10转左右,o(︶︿︶)o 唉,太慢了。原因是这款步进电机内置1:64减速比装置,内部转64圈,外面才转1圈呢。具体的驱动原理大家网上可以随便搜搜的,其实就是一次脉冲,电机的旋转度数而已,很简单的。脉冲越快,转的越快。
5、总结
好了,很多小伙伴肯定说博主直接给代码就行了。写那么多废话干嘛。但是我想说,一味的复制粘贴别人的代码是不对的。首先嵌入式程序要硬件接线一样才行,你首先得把线和博主接一样的才行吧。实际开发中,不是每个IO口都能给你用的,所以根据自己实际的接线方式,然后改数组里面的值就可以了。具体的方法(右键GPIO,跳到定义处,就能看到了。)
上一篇:stm32+GPS定位
下一篇:正点原子STM32 USB读卡器代码分析
- 热门资源推荐
- 热门放大器推荐
- LDK120M12R 1.2V低压降稳压器典型应用(可调版)电路
- EVB-UTC2000-DFP、EVK-UTC2000 评估套件基于 UTC2000 USB 3.0/2.0 Type-A,即插即用 Type-C DFP
- LTC3219 演示板、250mA 通用九通道 LED 驱动器
- DC919A-D,LTC2204 CMOS 输出演示板,直流输入,40Msps 16 位 ADC,DC
- AD8618ARZ-REEL 二阶低通滤波器运算放大器的典型应用电路
- 使用 NXP Semiconductors 的 PCA9511A 的参考设计
- LT3091MPDE 恒流恒压实验室电源的典型应用
- ADR392B 4.096 Vout 微功率、低噪声精密电压基准的典型应用
- LT3470HDDB 5V 降压转换器的典型应用电路
- 使用 Diodes Incorporated 的 AZ7042ZTR-E1 的参考设计

现代雷达系统的信号设计
MB47082PS

BFR340T






京公网安备 11010802033920号