打印

STM32串口通信控制电机

[复制链接]
4602|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 | 只看该作者
首先单独测试电机函数是否正常。然后看串口数据是否正常。自己慢慢调试看吧

使用特权

评论回复
5
木木guainv| | 2021-5-8 16:43 | 只看该作者
实时性能如何啊

使用特权

评论回复
6
aoyi| | 2021-5-8 16:53 | 只看该作者
有驱动芯片吗?

使用特权

评论回复
7
drer| | 2021-5-8 16:53 | 只看该作者
需要多大的带载能力啊

使用特权

评论回复
8
gwsan| | 2021-5-8 16:53 | 只看该作者
具体现象都是什么

使用特权

评论回复
9
kxsi| | 2021-5-8 16:54 | 只看该作者
光看主函数看不出来

使用特权

评论回复
10
TKinter| | 2021-6-7 11:11 | 只看该作者

STM32串口通信控制电机

有驱动芯片吗?

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝