-
STM32串口通信控制电机
我想用串口通信来控制无刷电机,串口代码借用正点原子,目前串口可以接收到发送的指令,但是不能控制电机,希望有前辈帮我解答一下,附上主函数代码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
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); } } } 4558浏览量 9回复量 关注量