//使用串口中断控制 ***_it.c extern uint8_t recivedatass; void USART1_IRQHandler(void) { HAL_UART_IRQHandler(&huart1); HAL_UART_Receive_IT(&huart1,&recivedatass,1); printf("int:rcv=%d\r\n",recivedatass); } main.c main() { ... while (1) { if(recivedatass==65) { MC_StopMotor1(); printf("exec stop motor \r\n"); recivedatass=0; } if(recivedatass==66) { printf("exec before start motor\r\n"); MC_StartMotor1(); printf("exec after start motor\r\n"); recivedatass=0; } } } |
先检查串口还能不能收到数据,收到的数据对不对,但不知道你外围电路是怎么样的,也不知道你标红的哪两个函数的具体定义,所以很难判断是什么问题
看我之前写的帖子吧,有做过反复启停实验的
可先先测试一下单独启停好不好使 就是先启动几秒 在停止几秒 在启动几秒 反复循环 看一下启停函数有没有问题 在检测一下串口收发正常不
增加断点跟踪,观察下stop完了后会不会执行start