码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-01-01 19:48:50      阅读:221      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!