stm32数据传输方法

用stm32串口通信时,自己定义了一个usart_printf函数。设定字符串长度时,设定字符长度太短就不断重复第一次读取的字符,设定字符长度太长就会出现乱码和吞字符的情况。是什么原因导致的,对这个方法的数传速度不满意有更高效的数据传输效果嘛

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: 蓝桥杯 stm32 USART 串口发送数据中的 六、printf 重定向问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    C 语言中 printf 函数默认 输出设备是显示器 ,如果 要实现在 串口 或者 LCD 上显示 ,必须 重定义标准库函数里调用的与输出设备相关的函数

    比如使用 printf 输出到串口 ,需要将 fputc 里面的输出 指向串口 , 这一过程就叫 重定向。

    #include <stdio.h> //头文件
    
    // fputc 函数的定义
    int fputc(int ch, FILE *f) 
    {
      /* Your implementation of fputc(). */
      return ch;
    }
    

    注意:需要 包含头文件 stdio.h ,否则FILE类型未定义。勾选了 Use MicroLib 选项,重定向 fputc() 函数后,我们就可以在工程代码中使用 printf() 函数了。

    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^