首页 > 其他 > 详细

[STM32F10x] 使用printf函数进行串口调试问题

时间:2015-01-01 19:46:04      阅读:424      评论:0      收藏:0      [点我收藏+]

  硬件:STM32F103C8T6

  平台:Keil ARM-MDk V5.11

 

  利用printf函数通过串口(USART)进行调试时遇到的一个问题:

  

    printf("Hello, Mini-M3");

  本意是想输出"Hello, Mini-M3",但是通过串口调试助手,得到的输出是"ello, Mini-M3",也就是第一个数据没有接收到,而且这种情况只会在初始化USART后第一次

  发送数据时出现。

  USART发送数据的代码如下:

  

int fputc(int c, FILE *stream)
{
    USART_SendData(UARTx, (U8)c);
    
    /* Loop until the end of transmission */
    while (USART_GetFlagStatus(UARTx, USART_FLAG_TC) == RESET);
    
    return c;   
}

  

  解决办法:

  在初始USART时,将SR寄存器中的TC标志位清零,即增加下面一条代码:

 USART_ClearFlag(UARTx, USART_FLAG_TC);

  具体原因不详。

  

[STM32F10x] 使用printf函数进行串口调试问题

原文:http://www.cnblogs.com/mr-bike/p/4197447.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!