打印
[STM32F1]

STM32F103C6T6 步进电机控制

[复制链接]
748|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 | 只看该作者
轮询效率太低了

使用特权

评论回复
8
帛灿灿| | 2024-9-16 08:27 | 只看该作者

当电路出现异常过压并达到其击穿电压时

使用特权

评论回复
9
Bblythe| | 2024-9-16 09:30 | 只看该作者

例如下图中在SPI信号线上串联电阻就是为了改善匹配情况

使用特权

评论回复
10
周半梅| | 2024-9-16 11:26 | 只看该作者

即原/副边交错通断。

使用特权

评论回复
11
Pulitzer| | 2024-9-16 12:29 | 只看该作者

般只要关注值、精度、额度功率

使用特权

评论回复
12
Wordsworth| | 2024-9-16 15:28 | 只看该作者

ESD静电保护器基本上都是通过静电进行吸收和耗散

使用特权

评论回复
13
Clyde011| | 2024-9-16 16:31 | 只看该作者

这类型灌封胶一般分为A、B双组份在进行1:1的配比后再进行灌封的操作

使用特权

评论回复
14
公羊子丹| | 2024-9-16 17:24 | 只看该作者

然后在专用站中检查每个半孔,

使用特权

评论回复
15
万图| | 2024-9-16 18:27 | 只看该作者

同时把异常高压箝制在一个安全水平之内

使用特权

评论回复
16
Uriah| | 2024-9-16 19:30 | 只看该作者

从而抑制电路的振荡。

使用特权

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

本版积分规则

61

主题

418

帖子

3

粉丝