zoukankan      html  css  js  c++  java
  • [STM32F10x] 使用printf函数进行串口调试问题

      硬件: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);

      具体原因不详。

    /×××××××××××××××××××××××××××××××××××××××× THE END ×××××××××××××××××××××××××××××××××××××××××××××××××/  

  • 相关阅读:
    java 复习001
    Some_sort_algorithms
    Install_pygments
    Install_ruby
    Ubuntu_wifi&pppoe
    Some_problem_with_octopress
    复习C语言
    VSim [a Racing-simulator by Vell001]
    Hello, Github Blog
    我的新计划 《2Dof Racing Simulator》2014/3/9 20:30:00
  • 原文地址:https://www.cnblogs.com/mr-bike/p/4197447.html
Copyright © 2011-2022 走看看