现在在上班,做的项目几乎都是关于八位机的,八位机有个挺CD的点硬件资源少,打印之类的需要软件串口,有时候调的刚到很玄学,也有可能是我知识没有学得恨透。
首先我得需要发送这句话
并在代码里面设置我的延时时间,目标波特率为9600,一位的延时得在大概104us左右。
然后我们开始烧录,并捕获波形和上位机数据。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
出来了
一团乱码,心麻了
再看看波形
起始位:87us
两个数据位(0x03):182/2 = 91us
------------------------------------有可能是延时时间的问题,我们再改改-----------------------------------------
欸,停止位有了接近100的变化
而且数据为近似一位100
再看看调试助手,发现0x03很接近于我们的数据,于是我们再加一位延时的时间片到23
---------------------------------------- 第三次测试-----------------------------------------------------------
停止位延时到了99us
数据位已经来到了一位103us
再看看串口数据(记得要16进制的)
可以看到,数据已经非常整齐了!!!由此我们能够粗糙地看出串口的波特率为9600理论需要的时延(104多一点),最低的停止位只能在99us左右。