步进电机-异步printf

设计一个异步输出:
问题在电机控制的时候需要随时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
第二步:找一个任务输出这个!接!收!缓!存!区!

猜你喜欢

转载自blog.csdn.net/weixin_42381351/article/details/89953972
今日推荐