使用stm32f103调试串口通讯时,上电后发送的字符串的第一个字节丢失。

发送数据GpuSend("SPG(2);");

接收端收到的数据为:PG(2);,第一个字符丢失。

出现问题的代码如下:

但以前都未出现过这个问题,于是怀疑标志位处理问题

遂看到网友的解答,摘录如下

RM0033中有如下概述

两者的区别在于:往USART_DR中写数据的时候TXE直接被清零。TC清零则需要先读取USART_SR,然后写USART_DR。

解决方法:

在出现错误的代码执行之前加一句:

USART_GetFlagStatus(USART1, USART_FLAG_TC); 就不存在错误了。

当然,直接清零也可以:USART_ClearFlag( USART1, USART_FLAG_TC );

或者用USART_FLAG_TXE标志来判断。

参考:http://www.eefocus.com/flyriz/blog/14-10/306135_928c0.html

stm32 串口发送字符串丢失第一个字节的更多相关文章

  1. stm32串口发送数据复位 第一个数据丢失

    http://blog.csdn.net/kevinhg/article/details/40991655 STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成 ...

  2. STM32串口发送第一个字符丢失解决之道

    stm32用printf函数重定向到串口USART1发现第一个字符没打印出来具体如下: 刚开始修改fputc函数如下: int fputc(int ch,FILE *f){USART_SendData ...

  3. 关于STM32串口接收中断中只能接收一个字节

    最近调试STM32的串口接收时发现例程中只能接收一个字节 例程如下: //初始化串口1 void uart_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef G ...

  4. 03 串口发送端口Rs232之简单驱动1

    前言: 最近想实际做两个项目,认真学习怎么做一个系统,所以在看FPGA小梅哥2019的培训课程,发现他是从各个模块讲起,就是没有直接讲一个整体的系统,而是从一些模块开始,如串口发送.刚开始我想直接创造 ...

  5. (已解决)STM32L151使用串口发送数据第一字节为FE问题!

    最近学习到串口发送数据时遇到一个问题:第一个字节总是FE,后面才是对的数据. 最终解决的方法是: 讲GPIO复用的操作放到GPIO配置之前! 体现在代码中就是: //打开GPIO时钟 RCC_AHBP ...

  6. stm32的串口接收字符串以十六进制数

      #include "pbdata.h"   uint8_t TxBuffer1[] = "USART Interrupt Example: This isUSART1 ...

  7. 韩顺刚-tcp报文头协议详细分析第一包数据:序号是0,发送数据的长度是0,因为没有收到对端的数据,所以确认号是0, Syn的标志位设置成1,这里没有发送的数据,只发送TCP的20个字节的头部

    TCP报文段首部格式 大部分TCP报文头部都是20个字节,有的数据包要加上选项. 上面一行代表4个字节,源端口和目的端口都是2个字节. TCP协议是面向字节流的协议 TCP是一段一段分块的发送数据的 ...

  8. 【Debug】串口发送数据时部分字节被拉长,出现帧错误,原因MCU进入低功耗模式导致串口时钟停了!

    串口发送数据时部分字节被拉长,出现帧错误,原因MCU进入低功耗模式导致串口时钟停了!

  9. STM32串口USART1的使用方法和程序

    通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换. USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半 ...

随机推荐

  1. Unity小知识点大全(一)

    原帖地址:https://zhuanlan.zhihu.com/p/54763553 1. 高亮选择 在Scene面板右上角的Gizmo下拉列表中,可以通过设置Selection Outline选项决 ...

  2. django url映射的时候指定默认参数

    使用path或者re_path后,在url中都可以包含参数,而有时候想指定默认的参数,可以通过在urls.py中写两个url都指向同一个视图函数.一个带参数一个不带参数.同时,在视同函数的参数中设置默 ...

  3. servlet常用对象

    Cookie对象 浏览器缓存技术,只存储在浏览器中 cookie的大小在4kb左右,每个浏览器在同一域名下能存放cookie数量是有限的 优缺点:提高网页的效率,减轻服务器的负载;安全性较差. 1 创 ...

  4. IntelliJ IDEA 2017.3尚硅谷-----创建工程

  5. Apollo安装教程

    最近一直在研究Apollo的安装问题,浪费了几天时间,所有特意来记录一下安装心得. UBUNTU 14.04安装 这个我是把自己的笔记本全部转换为ubuntu系统,操作相对简单,大家可以自行查找,另外 ...

  6. Homebrew安装和Mac使用

    软件安装 1.Homebrew安装   ruby环境: curl -sSL https://get.rvm.io | bash -s stable   官网方式: /usr/bin/ruby -e & ...

  7. oracle imp exp 导入导出

    一.exp导出 exp myuser/mypwd@orcl file=D:\sql-bak\myuser.dmp log=D:\sql-bak\myuser.log exp 用户/密码@实例名 fil ...

  8. aarch64环境下,搭建并配置服务器tomcat:

    aarch64环境下,搭建并配置服务器tomcat: 环境说明及下载相关文件: 1. ARM环境:aarch64开发板 2.JDK安装包: jdk-8u231-linux-arm64-vfp-hflt ...

  9. Springmvc-crud-03(静态资源错误)

    错误描述:静态资源加载失败 原因:spring会拦截静态资源 解决办法: <!-- 配置spring支持静态资源请求 --> <mvc:default-servlet-handler ...

  10. Bugku-CTF加密篇之+[]- (+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.< ++++[ ->.........)

    +[]- +++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.< ...