设计一个异步输出:
问题在电机控制的时候需要随时WATCH状态 但是太快了 怎么办?硬石的主义
第一步:定时器设置1S发送一次
void HAL_SYSTICK_Callback(void)
{
// 每1ms自动增一
time_count++;
if(time_count>=TXDCYCLE) //1s发送一次数据
{
Time_Flag |= TXD;
time_count=0;
}
}
第二步:主任务中执行发送
if(Time_Flag & TXD)
{
sprintf(aTxBuffer,"捕获值: %d -- 速度: %.2f mm/s\n",CaptureNumber,(float)MMPS);
sprintf(aTxBuffer+strlen((const char*)aTxBuffer),"1s内编码器计数值: %5d \n\0",SUM_Pulse);
HAL_USART_Transmit_DMA(&husartx,aTxBuffer,strlen((const char*)aTxBuffer));
SUM_Pulse = 0;
Time_Flag &= ~TXD;
}
现在我自己修改一下,比如我在USART2中收到很多数据。
第一步:找一个定时器设置flag
第二步:找一个任务输出这个!接!收!缓!存!区!
步进电机-异步printf
猜你喜欢
转载自blog.csdn.net/weixin_42381351/article/details/89953972
今日推荐
周排行