关于单片机串口单步调试运行正常,全速异常
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就表示上个数据发送完了。
一般串口要实现接收功能的,故正常情况下都会开启串口中断服务功能的。
我的之前的串口发送函数如下,加入了标志位的。
现在的代码如下:
以上就是大把网上那些同学不知所措的解决方案。
欢迎点赞哈。
测试结果如下:
关于单片机串口单步调试运行正常,全速异常相关推荐
- AVR单片机开发6——AVR单片机串口Proteus调试注意事项
ATmega168是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器.由于其先进的指令集以及单时钟周期指令执行时间,ATmega168 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系 ...
- codeblocks调试问题--单步调试遇到breakpoint不停---不能单步调试--运行按钮是灰色但是没有dos窗口...
今天晚上调试的时候可能不小心改了设置,还是其它原因,codeblocks突然遇到breakpoint不停了,然后百度了一下,大部分是说project创建的问题,感觉和自己的问题不同,我的问题是所有的p ...
- stm32单步调试正确,全速运行错误
模拟i2c的时候出现的问题. 单步走延时较大(全速跑只有程序设置的时延),导致程序全速运行无输出. 加大时延即可.
- n76e003at20 c语言,N76E003AT20单片机串口0调试
一个按键1 如果按下,就使 N76E003串口0 发送1到串口调试助手,但是老是有问题,哪位大神帮帮我.代码如下: #include "n76e003.h" #include &q ...
- MSP430 F5529 单片机 串口 测试 调试
相应还有MSP430G2553单片机的:https://blog.csdn.net/x1131230123/article/details/109544616 MSP430F5529 单片机 ,初始化 ...
- STC Monitor-51的单片机在线仿真调试(转)
时间:2015-10-10 原作者:朱志伟 文章来源:http://www.360doc.com/content/15/1103/16/9200790_510464992.shtml 关键字 IAP1 ...
- 51单片机串口打印函数
51单片机串口通信调试printf函数重定向输出打印 1.首先需要实现串口的发送和接收. 2.输出printf需要哪些步骤: 1)需要引入头文件 <stdio.h> 2)添加如下代码: c ...
- Proteus仿真stm32和51单片机,串口通信调试过程记录
前言 本文所用Proteus版本为8.10,主要内容为在Proteus中仿真stm32和51单片机进行串口通信,记录了仿真过程中遇到的问题和解决办法. 这里要注意的是,在Proteus中 ...
- PIC18F45K80单片机串口调试总结
/****PIC18F45K80单片机串口调试总结-Sandy*********Start of file***********/ 文件名:PIC18F45K80单片机串口调试总结 作者:手术 ...
最新文章
- Python Flask学习知识点(七)
- FileZilla Server安装配置教程
- hadoop的伪分布安装(低版本)
- mailto 附带附件_我和我的朋友如何将附带项目发展为每月$ 17,000的业务
- [Node.js] node.js入门
- PaddleClas模型训练/评估:数据准备
- 深度学习PyTorch,TensorFlow中GPU利用率较低,使用率周期性变化的问题
- 【python】MAC链接oracle
- 同步与异步、异步与回调
- 苹果ipad邮箱找不到服务器,ipad怎么设置qq邮箱?苹果ipad qq邮箱设置教程
- 5G技术—5G网络架构及关键技术详述测试题目
- 使用tushare计算北上资金持仓成本
- UE4 简单记录EQS的使用方法
- 腾讯AI开放平台使用尝试:代理后的文本翻译API使用方式
- linux ghost系统安装教程,GHOST 使用方法图文详解 PDF
- 琐记之生活感悟(关于日常生活的东西都丢这里)
- Vue3封装Video.js组件(基于video.js)
- ClickHouse基于全局字典与物化视图的精确去重方案
- python中encode用法_python3中encode和decode的一些基本用法
- 如何成为一颗 GitHub Star