STM32串口通信控制电机

[复制链接]
4084|9
手机看帖
扫描二维码
随时随地手机跟帖
真的学累了|  楼主 | 2021-4-21 12:45 | 显示全部楼层 |阅读模式
我想用串口通信来控制无刷电机,串口代码借用正点原子,目前串口可以接收到发送的指令,但是不能控制电机,希望有前辈帮我解答一下,附上主函数代码int main(void)
{
        u8 t;  //typedef unsigned char uint8_t;
        u8 len;       
        u16 times=0;  //typedef unsigned short uint16_t;
        volatile unsigned char  HALL_flag;
            LED_Init();
            delay_init();
            uart2_init(9600);         //串口初始化为9600
            PWM_GPIO_Init();
           HALL_GPIO_Init();
           LED1=1;
  while(1)
        {   
        if(USART_RX_STA&0x8000)  
                {                                          
                        len=USART_RX_STA&0x3fff;
                        printf("\r\n您发送的消息为:\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART2->DR=USART_RX_BUF[t];
                                while((USART2->SR&0X40)==0);
                        }
                        printf("\r\n\r\n");//插入换行
                        USART_RX_STA=0;
                                         if(strcmp((char*)USART_RX_BUF,"电机1正转")==0)
                                        {
                                                          HALL_flag =1;
                                                         BLDC_CW();
                                                    printf("\r\n行走电机正转\r\n");
                                        }
                                         if(strcmp((char*)USART_RX_BUF,"电机1停止")==0)
                                        {
                                                          HALL_flag =0;
                                                          BLDC_STOP();
                                                    printf("\r\n行走电机停止\r\n");
                                       
                                        }
                                       
                               
                }else
                {
                        times++;
                        if(times%5000==0)
                        {
                                printf("\r\nALIENTEK MiniSTM32开发板 串口实验\r\n");
                                printf("正点原子@ALIENTEK\r\n\r\n\r\n");
                        }
                        if(times%200==0)printf("请输入数据,以回车键结束\r\n");  
                        if(times%30==0)LED1=!LED1;//闪烁LED,提示系统正在运行.
                        delay_ms(10);

}

}

}


使用特权

评论回复
呐咯密密| | 2021-4-21 13:16 | 显示全部楼层
你给个主函数有啥用呀,电机不能转你得贴控制电机的代码呀

使用特权

评论回复
LcwSwust| | 2021-4-21 14:23 | 显示全部楼层
这代码有点眼熟呢

使用特权

评论回复
qq5782098| | 2021-4-22 09:25 | 显示全部楼层
首先单独测试电机函数是否正常。然后看串口数据是否正常。自己慢慢调试看吧

使用特权

评论回复
木木guainv| | 2021-5-8 16:43 | 显示全部楼层
实时性能如何啊

使用特权

评论回复
aoyi| | 2021-5-8 16:53 | 显示全部楼层
有驱动芯片吗?

使用特权

评论回复
drer| | 2021-5-8 16:53 | 显示全部楼层
需要多大的带载能力啊

使用特权

评论回复
gwsan| | 2021-5-8 16:53 | 显示全部楼层
具体现象都是什么

使用特权

评论回复
kxsi| | 2021-5-8 16:54 | 显示全部楼层
光看主函数看不出来

使用特权

评论回复
TKinter| | 2021-6-7 11:11 | 显示全部楼层

STM32串口通信控制电机

有驱动芯片吗?

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝