本帖最后由 guysxpf 于 2021-1-6 09:55 编辑
最近发现一个串口的迷惑行为。
单片机型号:STC8
频率:24MHz
今天准备使用串口对程序进行调试,结果发过来的内容总是出现各种错误。于是我用示波器看了一下波形。不看不知道,一看下巴都要惊掉了!!
学过串口通信原理的同学都知道,串口起始位是低电平0,停止位是高电平1。但STC8的串口外设居然会反着来。看图:
图1发送的是字符“A”(二进制01000001),图2发送的是数字0x55(二进制01010101)
但吊诡的事情就来了,图中的“正确波形”指的是理论上应该有的波形,而示波器实际测出来的波形却与其有不少出入。后来我发现,单片机居然把起始位和停止位对调了。
我同时也用光标测量了最小脉冲宽度,大约0.83ms ≈ 833μs,说明波特率和时钟都是正确的。而且换了两块单片机、烧录了同一个程序,结果也一样。
求官方解答一下为什么会出现如此奇怪的情形?
|