熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2021-5-7 23:35
正文摘要:上位機(jī)用的PYTHON網(wǎng)上抄的程序,用于將G指令傳遞給單片機(jī) 目前存在的問題如下: 1、單片機(jī)有時(shí)會(huì)在一行指令中少收一兩個(gè)字符(小概率),為什么會(huì)丟字符?這個(gè)沒查到原因,求指教 2、單片機(jī)返回給PC端用于交互的 ... |
我好像找到問題原因了,主要是在發(fā)送串口數(shù)據(jù)中,仔細(xì)學(xué)習(xí)了芯片手冊(cè),發(fā)送例程里面有一個(gè)busy還幫助獲取串口發(fā)送狀態(tài),加進(jìn)去后就沒再出現(xiàn)卡在半路的情況。 也沒再出現(xiàn)接收丟失數(shù)據(jù)現(xiàn)象,看來接收和發(fā)送兩個(gè)還是相關(guān)聯(lián)的?還是我程序本來就亂。。。。。 總結(jié): 1、看例程要仔細(xì),重點(diǎn)地方要做筆記 2、自己寫代碼一定要結(jié)構(gòu)清楚,注釋清楚 |
daemondong 發(fā)表于 2021-5-8 10:54 謝謝回復(fù),確實(shí)是問題,我修改一下 |
你讀SBUF寫的不太規(guī)范,可能會(huì)導(dǎo)致多讀一個(gè)字符。改成下面試試 recbuf[compos][recpos]=SBUF;//數(shù)據(jù)存入緩存 recpos++; if(recbuf[compos][recpos-1]=='\n') //如果收到的是\n,說明接收完一行 |
Powered by 單片機(jī)教程網(wǎng)