STM32
直播中

回头太晚

10年用户 912经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

怎样将STM32串口的内容打印输出到串口调试助手中去呢

如何对c库中的printf()函数进行重定向呢?
怎样将STM32串口的内容打印输出到串口调试助手中去呢?


回帖(1)

张浩

2021-12-1 14:15:13
在STM 32 的串口实验中,往往需要把内容打印输出在串口调试助手中,这时就需要重定向c库中的printf()函数,重定向后可使用。
  注意下面的FILE的定义在头文件stdio.h中,所以在写程序时需要包含此头文件。
  例:
  int fputc(int ch,FILE *f)
  {
      USART_SendData(USART_TypeDef* USARTx, uint8_t Data);   //发送一个字节数到串口
     while(USART_GetFlagStatus(USART_TypeDef* USARTx, USART_FLAG_TC)==RESET);  //等待发送完毕
     return(ch);
  }
  重定向c库函数scanf到串口,重定向后可使用scanf()、getchar()等函数。
  int  fgetc(FILE *f)
  {
       while(USART_GetFlagStatus(USART_TypeDef* USARTx, USART_FLAG_TC)==RESET);  //等待串口输入数据
      return(int)USART_ReceiveData(DEBUG_USARTx);
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分