哥们用的是 stm32f407ZGT6.
就是发现串口6(以串口1开始算,就是 uart5)有点问题。
前期一直用2400的波特率好好的。
后来一个地方要用1200了,发现死活通信不上,查了一回发现乖乖,这个口子发的都是乱码。
各种怀疑电路出问题,换电阻啥的,都不行。
最后直接上示波器,发现问题了。
2400的波特率的时候,虽然波形不是太漂亮,但基本正确,就是0.5ms一位的样子。
一旦到了1200,呵呵,那波形我都不认识。
问题是,同样是这个板子,串口5 1200和 2400的波形却很正常,当然通信也很正常。
曾经也怀疑过是不是因为它们的时钟源不一致,导致波特率的误差有点不对劲,才出现问题?
于是看了一下手册,但发现手册上的看不太懂。
因为我们是 外部8M晶振,内部PLL倍频成 192M。
我看了一下,uart5挂在84M上,uart4挂在42M上,如果这样看,看表格——其实所有表格,但凡有1200bps的,都表示 波特率误差几乎为0.
所以我也不清楚,为啥这个地方一旦用了这个串口,在1200时,波形就这么诡异。
有经验的哥们都来说说~
此帖出自
小平头技术问答
......淡定,淡定
假如是这种问题,为啥我另一个串口没问题捏?
温漂当然影响很大这个偶也听说过。
BTW,不要跟我提STC,我虽然说过我以后(大概2012年时说过这话)为避免自己成为搅人是非的长舌妇,我发誓不再提及STC。
STC是个什么玩意,用过的都知道,非要贪那点小便宜或者被什么狗屁民族情怀所忽悠,我也没啥好说
最后回到主题:
依赖内部的晶振肯定要谨慎。
但高度集成是大趋势,你说呢?别忘了当年640K的笑话。
当然最重要的还是那句话
假如是时钟源本身出现问题,为啥另一个串口没问题?
所以我从一开始就没有怀疑过其它问题,而单单只怀疑每个串口各自的东西,而不是公共的东西
一周热门 更多>