PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
fuckoil
Basic Member
 

加入日期: Apr 2005
您的住址: 台灣
文章: 12
RS232 同位元檢查

請問有人知道 Rs232 同位元檢查碼接收時會亂送的問題嗎?

我用示波器 看都是很正常的訊號

可是接收時 同位元檢查碼會跳

比如
FF 00 80
FF 00 81
FF 00 01 CA 1D 79

他有時會給你跳
FF 00 01
FF 00 CA
FF 00 1D
FF 00 79

我應該是要收到
FF 00 01 CA 1D 79

為何會亂跳? 請問有人知道嗎
     
      
__________________
int 一定會中樂透函數(void)
{
   int result=一定會中();
   char get[15];
   if (result)
   {
    取得樂透號碼(get);
    printf(" 本期樂透號碼:%s \n",get);
    return true;
   }else {
    求求你讓我中();
    一定會中樂透函數();
   }
   return false;
}
舊 2014-03-07, 01:25 PM #1
回應時引用此文章
fuckoil離線中  
長站星七
*停權中*
 
長站星七的大頭照
 

加入日期: Nov 2012
文章: 102
??

115200 8 N 1 ==> NO parity .

就寫明沒有 Parity Check 了阿.
你又去解Parity 做啥?

 
舊 2014-03-07, 01:50 PM #2
回應時引用此文章
長站星七離線中  
fuckoil
Basic Member
 

加入日期: Apr 2005
您的住址: 台灣
文章: 12
引用:
作者長站星七
??

115200 8 N 1 ==> NO parity .

就寫明沒有 Parity Check 了阿.
你又去解Parity 做啥?



我的parity 是用 space , baudrate 是 19200
__________________
int 一定會中樂透函數(void)
{
   int result=一定會中();
   char get[15];
   if (result)
   {
    取得樂透號碼(get);
    printf(" 本期樂透號碼:%s \n",get);
    return true;
   }else {
    求求你讓我中();
    一定會中樂透函數();
   }
   return false;
}
舊 2014-03-07, 01:58 PM #3
回應時引用此文章
fuckoil離線中  
triackimo
Silent Member
 

加入日期: Jun 2012
文章: 0
這不是同位元的問題,看起來比較像是有人UART程式根本就沒寫好,收到的資料

沒有從MCU內部資料陣列的頭開始擺放
舊 2014-03-07, 02:08 PM #4
回應時引用此文章
triackimo離線中  
swala
Junior Member
 
swala的大頭照
 

加入日期: Jan 2002
您的住址: 台北
文章: 954
引用:
作者triackimo
這不是同位元的問題,看起來比較像是有人UART程式根本就沒寫好,收到的資料

沒有從MCU內部資料陣列的頭開始擺放

同意 +1,
舊 2014-03-07, 02:55 PM #5
回應時引用此文章
swala離線中  
fuckoil
Basic Member
 

加入日期: Apr 2005
您的住址: 台灣
文章: 12
引用:
作者triackimo
這不是同位元的問題,看起來比較像是有人UART程式根本就沒寫好,收到的資料

沒有從MCU內部資料陣列的頭開始擺放


請問什麼意思呢? 我不太懂呢?
__________________
int 一定會中樂透函數(void)
{
   int result=一定會中();
   char get[15];
   if (result)
   {
    取得樂透號碼(get);
    printf(" 本期樂透號碼:%s \n",get);
    return true;
   }else {
    求求你讓我中();
    一定會中樂透函數();
   }
   return false;
}
舊 2014-03-07, 03:20 PM #6
回應時引用此文章
fuckoil離線中  
fuckoil
Basic Member
 

加入日期: Apr 2005
您的住址: 台灣
文章: 12
引用:
作者triackimo
這不是同位元的問題,看起來比較像是有人UART程式根本就沒寫好,收到的資料

沒有從MCU內部資料陣列的頭開始擺放


可是這是從 Linux 的 Buffer 拉出來看的
__________________
int 一定會中樂透函數(void)
{
   int result=一定會中();
   char get[15];
   if (result)
   {
    取得樂透號碼(get);
    printf(" 本期樂透號碼:%s \n",get);
    return true;
   }else {
    求求你讓我中();
    一定會中樂透函數();
   }
   return false;
}
舊 2014-03-07, 03:22 PM #7
回應時引用此文章
fuckoil離線中  
Kyocera
Power Member
 

加入日期: May 2001
文章: 512
引用:
作者fuckoil
可是這是從 Linux 的 Buffer 拉出來看的

這意思是說負責送資料那方的程式沒寫好
舊 2014-03-07, 04:02 PM #8
回應時引用此文章
Kyocera離線中  
triackimo
Silent Member
 

加入日期: Jun 2012
文章: 0
引用:
作者fuckoil
請問什麼意思呢? 我不太懂呢?



mcu內部會有一串資料陣列(想像陳是一串連續的格子),用來擺放收到的資料

,收到一筆放一格,依此類推。

mcu內部會有一個計時器(時間是由韌體設計師決定的),當計時到達時mcu會

認定通訊在閒置狀態,然後接下來再收到資料的話回從資料陣列的頭開始放,

這樣我們才有辦法去做後續的資料解析,根據你收到的資料頭兩個byte都正確

所以閒置處理的程序應該對,但到第三個byte就開始出問題了,甚至於無法收

完整串命令,看起來問題比較像是出在和"接收計數"相關的程式,照這方向去查吧

舊 2014-03-07, 04:25 PM #9
回應時引用此文章
triackimo離線中  
Wake
*停權中*
 
Wake的大頭照
 

加入日期: Aug 2003
您的住址: 田中央
文章: 203
改7-1試試看,有些PLC和人機要求7-1
舊 2014-03-07, 04:27 PM #10
回應時引用此文章
Wake離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是04:43 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。