打印
[STM32F1]

STM32F103C6T6 步进电机控制

[复制链接]
489|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
o88ne|  楼主 | 2023-7-26 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

本程序用于控制步进电机,每转16圈变向。

代码如下

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
       
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
int i=1;
int a=0;
int b=0;       
        while (1)
        {       
    b++;               
                if (i==1)
                {
                        GPIO_SetBits(GPIOA, GPIO_Pin_0);
                        GPIO_ResetBits(GPIOA, GPIO_Pin_1);
                        GPIO_ResetBits(GPIOA, GPIO_Pin_2);
                        GPIO_ResetBits(GPIOA, GPIO_Pin_3);
                        Delay_ms(1);
                }
                if (i==2)
                {
                GPIO_SetBits(GPIOA, GPIO_Pin_0);
                GPIO_SetBits(GPIOA, GPIO_Pin_1);
                GPIO_ResetBits(GPIOA, GPIO_Pin_2);
                GPIO_ResetBits(GPIOA, GPIO_Pin_3);
                Delay_ms(1);
                }
                if (i==3)
                {
                GPIO_ResetBits(GPIOA, GPIO_Pin_0);
                GPIO_SetBits(GPIOA, GPIO_Pin_1);
                GPIO_ResetBits(GPIOA, GPIO_Pin_2);
                GPIO_ResetBits(GPIOA, GPIO_Pin_3);
                Delay_ms(1);
                }
                if (i==4)
                {
                GPIO_ResetBits(GPIOA, GPIO_Pin_0);
                GPIO_SetBits(GPIOA, GPIO_Pin_1);
                GPIO_SetBits(GPIOA, GPIO_Pin_2);
                GPIO_ResetBits(GPIOA, GPIO_Pin_3);
                Delay_ms(1);
                }
                if (i==5)
                {
                GPIO_ResetBits(GPIOA, GPIO_Pin_0);
                GPIO_ResetBits(GPIOA, GPIO_Pin_1);
                GPIO_SetBits(GPIOA, GPIO_Pin_2);
                GPIO_ResetBits(GPIOA, GPIO_Pin_3);
                Delay_ms(1);
                }
                if (i==6)
                {
                GPIO_ResetBits(GPIOA, GPIO_Pin_0);
                GPIO_ResetBits(GPIOA, GPIO_Pin_1);
                GPIO_SetBits(GPIOA, GPIO_Pin_2);
                GPIO_SetBits(GPIOA, GPIO_Pin_3);
                Delay_ms(1);
                }
                if (i==7)
                {
                GPIO_ResetBits(GPIOA, GPIO_Pin_0);
                GPIO_ResetBits(GPIOA, GPIO_Pin_1);
                GPIO_ResetBits(GPIOA, GPIO_Pin_2);
                GPIO_SetBits(GPIOA, GPIO_Pin_3);
                Delay_ms(1);
                }
                if (i==8)
                {
                GPIO_SetBits(GPIOA, GPIO_Pin_0);
                GPIO_ResetBits(GPIOA, GPIO_Pin_1);
                GPIO_ResetBits(GPIOA, GPIO_Pin_2);
                GPIO_SetBits(GPIOA, GPIO_Pin_3);
                Delay_ms(1);
                }
                if (a==0)
                {
                        i++;
                        if(i==9)
                        i=1;
                }
                if (a==1)
                {
                        i--;
                        if(i==0)
                        i=8;
                }
                if(b==5000)
                {
                        if(a==0)
                        {a=1;
                         b=0;}
                }
                if(b==65536)
                {
                        if(a==1)
                        {a=0;
                         b=0;}
                }
        }
}


使用特权

评论回复
沙发
yiy| | 2023-7-26 20:29 | 只看该作者
这个方法只能用于演示。

使用特权

评论回复
板凳
zhanxiao| | 2023-8-28 13:54 | 只看该作者
有没有能够做量产的,看了那么多,没有一个可以用于产品的

使用特权

评论回复
地板
yufe| | 2023-8-29 20:37 | 只看该作者
这个为啥不能量产

使用特权

评论回复
5
Stahan| | 2023-9-2 23:03 | 只看该作者
对啊,为啥不能用来量产?

使用特权

评论回复
6
MessageRing| | 2023-9-3 21:32 | 只看该作者
好多if

使用特权

评论回复
7
Bowclad| | 2024-5-12 22:34 | 只看该作者
轮询效率太低了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

354

帖子

2

粉丝