高级会员

- 积分
- 628
- 金钱
- 628
- 注册时间
- 2016-3-3
- 在线时间
- 68 小时
|
10金钱
大家好,我刚开始接触步进电机;想通过一个STM32F103C8T6芯片进行控制;所用的驱动器是LV8729。刚开始玩,想先通过以下一个简单的程序来产生脉冲进而来控制电机的转动;程序如下:
int main(void)
{
int i;
delay_init(); //初始化延时函数
LED_Init(); //初始化LED端口
for(i=0;i<15;i++)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
delay_us(500);
GPIO_SetBits(GPIOB,GPIO_Pin_8);
delay_us(500);
}
}
但是把这个烧进去之后,电机就会一直转动停不下来。然后我把for循环去掉以后,即使只执行一次,(程序如下)电机还是会一直转动。这是为什么?该怎么解决?
int main(void)
{
int i;
delay_init(); //初始化延时函数
LED_Init(); //初始化LED端口
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
delay_us(500);
GPIO_SetBits(GPIOB,GPIO_Pin_8);
delay_us(500);
}
谢谢大家的指导和帮助
附:源程序我是直接在STM32F1精英版中的跑马灯实验的基础上改的。
谢谢大家。
|
最佳答案
查看完整内容[请看2#楼]
是的,在for循环后边加上[mw_shl_code=applescript,true]while(1);[/mw_shl_code]
|