![]() |
發布時間: 2021-5-7 23:35
正文摘要:上位機用的PYTHON網上抄的程序,用于將G指令傳遞給單片機 目前存在的問題如下: 1、單片機有時會在一行指令中少收一兩個字符(小概率),為什么會丟字符?這個沒查到原因,求指教 2、單片機返回給PC端用于交互的 ... |
我好像找到問題原因了,主要是在發送串口數據中,仔細學習了芯片手冊,發送例程里面有一個busy還幫助獲取串口發送狀態,加進去后就沒再出現卡在半路的情況。 也沒再出現接收丟失數據現象,看來接收和發送兩個還是相關聯的?還是我程序本來就亂。。。。。 總結: 1、看例程要仔細,重點地方要做筆記 2、自己寫代碼一定要結構清楚,注釋清楚 |
daemondong 發表于 2021-5-8 10:54 謝謝回復,確實是問題,我修改一下 |
你讀SBUF寫的不太規范,可能會導致多讀一個字符。改成下面試試 recbuf[compos][recpos]=SBUF;//數據存入緩存 recpos++; if(recbuf[compos][recpos-1]=='\n') //如果收到的是\n,說明接收完一行 |