現在在上班,做的項目幾乎都是關于八位機的,八位機有個挺CD的點硬件資源少,打印之類的需要軟件串口,有時候調的剛到很玄學,也有可能是我知識沒有學得恨透。
首先我得需要發送這句話
并在代碼里面設置我的延時時間,目標波特率為9600,一位的延時得在大概104us左右。
然后我們開始燒錄,并捕獲波形和上位機數據。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
出來了
一團亂碼,心麻了
再看看波形
起始位:87us
兩個數據位(0x03):182/2 = 91us
------------------------------------有可能是延時時間的問題,我們再改改-----------------------------------------
欸,停止位有了接近100的變化
而且數據為近似一位100
再看看調試助手,發現0x03很接近于我們的數據,于是我們再加一位延時的時間片到23
---------------------------------------- 第三次測試-----------------------------------------------------------
停止位延時到了99us
數據位已經來到了一位103us
再看看串口數據(記得要16進制的)
可以看到,數據已經非常整齊了!!!由此我們能夠粗糙地看出串口的波特率為9600理論需要的時延(104多一點),最低的停止位只能在99us左右。