欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求助關于單片機串口與PYTHON上位機傳遞信息 [打印本頁]

作者: birdzhyli    時間: 2021-5-2 21:56
標題: 求助關于單片機串口與PYTHON上位機傳遞信息
我的程序中PYTHON上位機通過串口發送數據給單片機,每次發送10行,每發送一行單片機會給上位機返回一個字符,上位機收到字符后發送下一行,10行發送完成后等待單片機處理完畢后,單片機會再發送一個字符給上位機,上位機繼續傳遞下10行數據,如此循環至數據發送完成。
上位機代碼如下:
try:
  #端口,GNU / Linux上的/ dev / ttyUSB0 等 或 Windows上的 COM3 等
  portx="COM7"
  #波特率,標準值之一:50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,19200,38400,57600,115200
  bps=115200
  #超時設置,None:永遠等待操作,0為立即返回請求結果,其他值為等待超時時間(單位為秒)
  timex=5
  # 打開串口,并得到串口對象
  ser=serial.Serial(portx,bps,timeout=timex)
  # 寫數據到串口
  j=0
  for i in range(len(data1)):
    j=j+1
    print(data1[ i],end="")
    ser.write(data1[ i].encode('UTF-8'))
    msg=ser.read(1)
    while(msg!=b'A'):#等待一行發送完成得到回應A
      msg=ser.read(1)
    if(j ==10 ):
      print("%d條代碼發送完,正在處理"%(i+1))
      while(msg!=b'B'):#發完10行等待再次發送的指令B
        msg=ser.read(1)
        j=0
        
  ser.write('$'.encode('UTF-8'))#寫完完畢,發結束信號
  print("傳送完成完畢")  
  ser.close()#關閉串口
單片機串口接收程序如下:
if(RI)
{
  if(recf==1)//接收g指令
  {
   if(SBUF)
   {
    recbuf[compos][recpos]=SBUF;
    recpos++;
   }
   if(SBUF=='\n')
   {
    compos++;
    recpos=0;
    SBUF='A';//收完一行返回一個A
    while(!TI)
     TI=0;
    if(compos==10)
    {
     recf=0;//暫停接收
     wrif=1;//開始執行
    }
   }
   if(SBUF=='$')//傳送結束標志
   {
    recbuf[compos][recpos]=0;
    recf=0;//暫停接收
    wrif=1;//開始執行
   }
   RI=0;
  }
}
下面是主函數while循環中的處理完10行返回一個字符給上位機

下面是問題:
每次單片機運行開始,等待上位機傳遞數據。每次傳送不一定成功,偶爾會出現只傳送2行就卡住不動了,單片機復位或重啟,再重新傳送才能成功。
不是每次都出現,有時出現有時不出現,故障率30%左右,自查沒找到原因,求教大佬,謝謝
作者: birdzhyli    時間: 2021-5-2 21:57
單片機用的是獨立波特率發生器
void uart1_init()//使用獨立波特率發生器
{
        SCON=0x50; //[bit6:5]SM1 SM2 = 1 0;[bit4]REN=1
  AUXR=0x15; //[bit4]BRTR=1,允許獨立波特率發生器運行;[bit0]SIBRS=1,獨立波特率作為串口1的波特率發生器,此時定時器1釋放,[bit2]BRT*12=1,工作在1T
        BRT=0XFD;   //獨特波特率發生器定時器(產生波特率9600*12=115200)
        EA=1;           //開啟總中斷
        ES=1;
}


作者: birdzhyli    時間: 2021-5-2 21:58
與上位機的通信是否有好的方法?我都是一個人在家里閉門造車,請大佬們指路
作者: birdzhyli    時間: 2021-5-5 22:02
自己頂一下,大佬們有時間給點建議
作者: 2627687547    時間: 2022-6-9 21:22
請問題主有用pythonmodbus協議通訊相關的經驗嗎




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1