找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

關(guān)于單片機(jī)與Python上位機(jī)通信問題

查看數(shù): 3104 | 評(píng)論數(shù): 4 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2021-5-7 23:35

正文摘要:

上位機(jī)用的PYTHON網(wǎng)上抄的程序,用于將G指令傳遞給單片機(jī) 目前存在的問題如下: 1、單片機(jī)有時(shí)會(huì)在一行指令中少收一兩個(gè)字符(小概率),為什么會(huì)丟字符?這個(gè)沒查到原因,求指教 2、單片機(jī)返回給PC端用于交互的 ...

回復(fù)

ID:889094 發(fā)表于 2021-5-8 21:33
我好像找到問題原因了,主要是在發(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)清楚,注釋清楚
ID:889094 發(fā)表于 2021-5-8 11:02
daemondong 發(fā)表于 2021-5-8 10:54
你讀SBUF寫的不太規(guī)范,可能會(huì)導(dǎo)致多讀一個(gè)字符。改成下面試試
   recbuf[compos][recpos]=SBUF;//數(shù)據(jù)存 ...

謝謝回復(fù),確實(shí)是問題,我修改一下
ID:827243 發(fā)表于 2021-5-8 10:54
你讀SBUF寫的不太規(guī)范,可能會(huì)導(dǎo)致多讀一個(gè)字符。改成下面試試
   recbuf[compos][recpos]=SBUF;//數(shù)據(jù)存入緩存
   recpos++;
   if(recbuf[compos][recpos-1]=='\n')        //如果收到的是\n,說明接收完一行

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表