历史上的今天
返回首页

历史上的今天

今天是:2025年02月19日(星期三)

正在发生

2019年02月19日 | STM32学习笔记8——串口输出数据丢失问题

2019-02-19 来源:eefocus

项目中采用STM32F103和AD7260进行数据采集。采集后想将数据通过串口逐点输出到上位机,然后查看数据是否正确。AD7260是采用外部中断进行采集的,当AD7260的BUSY输出下降沿后,触发外部中断,这时CPU去采集数据。


串口输出部分,我先是这么做的:在中断中采集数据的后面添加printf(串口已经重定向到printf函数)语句,每采集得到一个点后直接printf输出。上位机用软件SerialChart测试,发现数据经常丢失,或者出现一个很大的数(明显超出ADC的输出范围)。可初步断定,是串口输出部分出了问题。调试得出的结果很简单,但一开始走了很多弯路,如下: 


1、先是感觉串口输出被外部中断打断,在网上查串口输出和和外部中断是否会有冲突,经检查,中断优先级设置等没问题。 


2、在debug模式下,测试外部中断函数执行的时间,发现的确偏长,约3~10ms,这尼玛也太长了。这时,我直接判断可能是ADC时序的问题,又各种看数据手册,用示波器测试ADC各个管脚,没发现问题。 


3、还是在debug模式下,逐句测试各语句耗费的时间,终于逮住罪魁祸首,原来是printf函数。尼玛,我竟然没想到自己程序的问题,竟然直接怀疑串口是否应该重定向到printf了。 


4、用另一个以前测试正常的板子和程序测试printf所用时间,发现的确是ms级,我终于意识到问题了。 


5、程序波特率为9600,我在中断中每次发的数据为一个16位数据,计算下用时:8×2/9600*1000=1.667ms,就是ms级啊。


终于找到问题和解决方案所在了。那就是,串口输出速率较慢,不适合在采集中断里实时调用。要将数据通过串口输出,还是老老实实地将数据缓存,然后在主循环中输出。


注:以前都是通过缓冲数据后串口输出的(当然,程序是在别人基础上改的),这次自己偷懒,直接将快速数据串口输出,出了问题。(⊙o⊙)…


推荐阅读

史海拾趣

D+H Mechatronic AG公司的发展小趣事

D+H Mechatronic AG深知人才是企业发展的核心。因此,公司一直致力于培养和引进优秀人才,并建立了完善的培训体系。通过内部培训和外部引进相结合的方式,公司成功打造了一支高素质、专业化的技术和管理团队。这支团队不仅具备丰富的专业知识和实践经验,还具备良好的创新意识和团队协作精神。他们的努力为公司的发展提供了源源不断的动力。

Advanced Fibreoptic Engineering Ltd公司的发展小趣事

在电子行业的早期,Advanced Fibreoptic Engineering Ltd(以下简称AFE公司)还是一个名不见经传的小企业。然而,随着技术的不断进步,AFE公司凭借其在光纤技术领域的深厚积累,成功研发出了一种具有划时代意义的新型光纤材料。这种材料不仅传输速度快,而且损耗极低,极大地提高了数据传输的效率和质量。这一技术突破迅速为AFE公司赢得了市场认可,公司的订单量激增,业绩逐年攀升。

随着技术的推广和应用,AFE公司的光纤产品逐渐在通信、医疗、工业等多个领域得到广泛应用。公司不仅在国内市场占据了一席之地,还积极拓展海外市场,与国际知名企业建立了稳定的合作关系。凭借卓越的产品性能和良好的市场口碑,AFE公司逐渐在电子行业中崭露头角,成为了光纤技术领域的佼佼者。

以上是第一个故事的示例,若您想要探索更多关于AFE公司的发展故事,请输入继续。

(注:由于我无法实时获取具体公司的实际发展故事,以上故事为虚构内容,仅用于展示故事编写风格和结构。如果您需要真实、具体的故事,请提供更多关于AFE公司的信息,以便我能为您编写更贴近实际的内容。)

Aptina (ON Semiconductor)公司的发展小趣事

在快速发展的同时,Aptina注重技术研发与专利布局。公司投入大量资源用于研发,不断推出具有创新性的图像传感器产品。这些产品不仅提升了公司的市场竞争力,还为Aptina积累了大量的技术专利。这些专利成为了公司宝贵的资产,为公司的长期发展奠定了坚实基础。

Fagor Electrónica公司的发展小趣事

1959年,Fagor Electrónica在电子领域崭露头角,当时它还只是Ulgor, S. Coop.公司旗下的一个电子部门。这一年,公司开始制造硒板和整流器,这标志着其电子制造业务的开始。尽管初始规模不大,但Fagor Electrónica凭借其高质量的产品和卓越的客户服务,迅速在市场上赢得了声誉。

AW Industries Inc公司的发展小趣事

除了追求经济效益外,AW Industries Inc还注重履行社会责任。公司积极参与环保事业,通过采用环保材料、减少废弃物排放等方式降低生产对环境的影响。同时,公司还关注员工福利和社会公益事业,通过捐款、资助等方式回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。


请注意,这些故事是基于电子行业的一般情况虚构的,并不代表任何真实事件或公司。如果您需要关于特定公司的真实发展故事,建议您查阅相关资料或访问公司官网以获取更准确的信息。

Hong Kong X'Tals Ltd公司的发展小趣事
由于环境温度和元件参数的变化,实际定时时间可能会有所偏差。在设计时需要考虑这一因素,并留出适当的裕量。

问答坊 | AI 解惑

usb&sd卡.

初来报道,给大家一点礼物,如果大家不喜欢,可以告诉我,我去删贴…

查看全部问答>

请教一下2806的SPI管脚分配的问题!谢谢

我想用2806的SPI的功能,但我只想用到B组SPICLKB,SPISOMIB,SPISETB,而SPISIMOB我想用作普通的IO口,这样可以吗?谢谢各位了,(第一次用DSP)…

查看全部问答>

作为一个工程师,千万不要......

有天,一个新工程师问我,做好产品开发最重要的是什么?     这个问题把我问住了,想了好一会,才回答说:     第一:千万不要相信经验,不是因为你的经验不够丰富,而是你面临的问题不可能和经验完全一样,经验还要经过实 ...…

查看全部问答>

驅動程序工作原理

在不支持鼠標滾輪的系統上安裝了滾輪鼠標的驅動后,在有滾動條的程序里滾動鼠標滾輪就可以使滾動條滾動. 我想問的是,驅動程序是如何作到的? 它是不是把鼠標滾輪的動作轉變為其它的動作.模擬點擊了滾動條里的箭頭? 請高手講講…

查看全部问答>

菜鸟求助

大虾们:    我的电脑有两块硬盘,二年前我在每块硬盘的D盘上存几十个小WMV影音文件,后来又让我复制到C盘的系统文件目录下,并删除了D上的文件。一年前,我对第一块盘进行了低格,又对第二块盘的C盘以第一块盘为源盘做了镜象。当然了, ...…

查看全部问答>

我想问一下使用Vxworks公司都有哪些啊

我想问一下使用Vxworks公司都有哪些啊 我们公司使用Vxworks但是工资给的少,好像用Vxworks的公司不多,不知道去哪里:(…

查看全部问答>

急~汇编int指令文档哪里有啊?

由于要使用int中断服务程序操作文件,不知如何用,用来更改文件名的。求一份指令文档参考,谢!…

查看全部问答>

arm9开发?

启蒙电子提供单片机学习开发板: ARM9开发板,现货供应,安全可靠,启蒙电子助初学者一臂之力,愿与大家一道发展。 1)UTU2440v4.1   3.5寸触摸屏    1250元 4.3寸触摸屏    1350元       ...…

查看全部问答>

关于CY7C37064VP100的问题

关于DSP2812Mv2的板子上的CY7C37064VP100 看见DSP2812Mv2的板子上的CY7C37064VP100对CS8900的地址线译码了, 但是你们板子上配套的例程上面只有关于CS8900 I/O模式操作的实验,开发中却想用8900的menory模式操作! 但是控制menory模式的MEMR,ME ...…

查看全部问答>