1、今天在调试51单片机的时候发现,单片机串口发送数据的时候,接收端接收的数据全是错误的。

2、使用KEIL在线调试单步运行,发现接收端正常接收每一个字符,点击全速运行就异常了。

代码如下:

上面这个开启了串口中断。

3、我的串口波特率设置的是115200bps

4、经过网上说的加入延迟,我认为不能加延迟,那不是解决问题的方案。

5、经过分析,发现。

a.串口波特率肯定没有系统时钟跑的快呀.

b.TI=0;开始发送数据,此时串口在慢悠悠的一位一位发送呢(相对于系统速率)。

c.此时系统已经要进行判断TI的值了,由于串口上个字节还没发送完成此时TI肯定是0的,故这第二个数据又写入BUFF了,肯定导致发送的数据异常了。

6、以上就是这个原因。

7、STM32单片机好像解决了51单片机这个问题,发送一个数据后,他的TI=1,还有发送缓冲区为空了。51单片机好像除了TI置1没有啥标志位了。

8、故如果开启串口中断,最好解决方案是在串口TI清除的地方加入个标志位。当发送下一个数据的时候不读取TI,而是读取你定义的哪个标志位。

9、如果你没有使用串口中断服务,则只要判断TI置1就表示上个数据发送完了。

一般串口要实现接收功能的,故正常情况下都会开启串口中断服务功能的。

我的之前的串口发送函数如下,加入了标志位的。

现在的代码如下:

以上就是大把网上那些同学不知所措的解决方案。

欢迎点赞哈。

测试结果如下:

关于单片机串口单步调试运行正常,全速异常相关推荐

  1. AVR单片机开发6——AVR单片机串口Proteus调试注意事项

    ATmega168是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器.由于其先进的指令集以及单时钟周期指令执行时间,ATmega168 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系 ...

  2. codeblocks调试问题--单步调试遇到breakpoint不停---不能单步调试--运行按钮是灰色但是没有dos窗口...

    今天晚上调试的时候可能不小心改了设置,还是其它原因,codeblocks突然遇到breakpoint不停了,然后百度了一下,大部分是说project创建的问题,感觉和自己的问题不同,我的问题是所有的p ...

  3. stm32单步调试正确,全速运行错误

    模拟i2c的时候出现的问题. 单步走延时较大(全速跑只有程序设置的时延),导致程序全速运行无输出. 加大时延即可.

  4. n76e003at20 c语言,N76E003AT20单片机串口0调试

    一个按键1 如果按下,就使 N76E003串口0 发送1到串口调试助手,但是老是有问题,哪位大神帮帮我.代码如下: #include "n76e003.h" #include &q ...

  5. MSP430 F5529 单片机 串口 测试 调试

    相应还有MSP430G2553单片机的:https://blog.csdn.net/x1131230123/article/details/109544616 MSP430F5529 单片机 ,初始化 ...

  6. STC Monitor-51的单片机在线仿真调试(转)

    时间:2015-10-10 原作者:朱志伟 文章来源:http://www.360doc.com/content/15/1103/16/9200790_510464992.shtml 关键字 IAP1 ...

  7. 51单片机串口打印函数

    51单片机串口通信调试printf函数重定向输出打印 1.首先需要实现串口的发送和接收. 2.输出printf需要哪些步骤: 1)需要引入头文件 <stdio.h> 2)添加如下代码: c ...

  8. Proteus仿真stm32和51单片机,串口通信调试过程记录

    前言 本文所用Proteus版本为8.10,主要内容为在Proteus中仿真stm32和51单片机进行串口通信,记录了仿真过程中遇到的问题和解决办法.        这里要注意的是,在Proteus中 ...

  9. PIC18F45K80单片机串口调试总结

    /****PIC18F45K80单片机串口调试总结-Sandy*********Start of file***********/     文件名:PIC18F45K80单片机串口调试总结 作者:手术 ...

最新文章

  1. Python Flask学习知识点(七)
  2. FileZilla Server安装配置教程
  3. hadoop的伪分布安装(低版本)
  4. mailto 附带附件_我和我的朋友如何将附带项目发展为每月$ 17,000的业务
  5. [Node.js] node.js入门
  6. PaddleClas模型训练/评估:数据准备
  7. 深度学习PyTorch,TensorFlow中GPU利用率较低,使用率周期性变化的问题
  8. 【python】MAC链接oracle
  9. 同步与异步、异步与回调
  10. 苹果ipad邮箱找不到服务器,ipad怎么设置qq邮箱?苹果ipad qq邮箱设置教程
  11. 5G技术—5G网络架构及关键技术详述测试题目
  12. 使用tushare计算北上资金持仓成本
  13. UE4 简单记录EQS的使用方法
  14. 腾讯AI开放平台使用尝试:代理后的文本翻译API使用方式
  15. linux ghost系统安装教程,GHOST 使用方法图文详解 PDF
  16. 琐记之生活感悟(关于日常生活的东西都丢这里)
  17. Vue3封装Video.js组件(基于video.js)
  18. ClickHouse基于全局字典与物化视图的精确去重方案
  19. python中encode用法_python3中encode和decode的一些基本用法
  20. 如何成为一颗 GitHub Star

热门文章

  1. uniapp导出excel
  2. 主流网站服务器配置组成 主流网站服务器报价
  3. 服务器怎么设置2个账号密码忘记了怎么办啊,腾讯云服务器管理员账号密码如何重置...
  4. maya2017打不开
  5. css文字宽度,超出部分显示省略号(...)
  6. MPO与MTP连接器的区别?
  7. 带小眼睛的睁开闭合图标_睁大眼睛-正确的缓存总是很难
  8. Android之ndk下载
  9. USB HID设备报告描述符详解
  10. RouterOS使用指南-ADSL定时断线重拨