人妻暴雨中被强制侵犯在线,亚洲国产欧美日韩精品一区二区三区,四虎影免看黄,国产无人区二卡三卡四卡不见星空

機械社區(qū)

標題: 關(guān)于串口通訊丟數(shù)問題的解決 [打印本頁]

作者: 卓信    時間: 2008-12-17 09:41
標題: 關(guān)于串口通訊丟數(shù)問題的解決
問題:51單片機在與電腦軟件通訊的過程中,通訊了100多次 多200多次的時候會出現(xiàn)丟數(shù)的情況& l2 n2 R& s( x) k7 r0 r0 ]
原帖地址:http://bbs.eeworld.com.cn/thread-70030-1-5.html
2 l* V6 Z' F2 F4 Y" i/ M+ P- _- ?; Y$ ~/ {5 {; Y) b* Z
解決辦法:實際上數(shù)并沒有丟 只是可能電路有時候不穩(wěn) 造成了波特率的波動 導致了同步有點問題 8 r4 @" u4 |, R  F' L# x
原來的單片機程序:# b) I# X# q  C0 g
void main()  {6 i6 {5 O4 G1 q5 o3 r% \, B
{
( |: g& s6 Y& ~$ m
! ?; @/ C9 N- }3 B% R; W" X    P1=0xff;
, E" L' Y7 M6 z' r# J1 q    main_init();
: b3 ]$ S% [8 v, o0 Z8 X    init_8253();8 s2 P2 g- v6 Y; ]) Z  U
    serial_init();# f7 f; h% O2 v5 B/ m  h1 L' ]6 p
8 Z- ^7 I! P6 e: R+ i/ ^
    while(1)
7 T! L0 F  P! s  k8 ?    {
8 L/ o& r& ^( e3 \        if(state >=3 )                     //state代表接收的字節(jié)數(shù)                 問題就出在這個判上,   
% ~2 [2 z% Z& c) t" N& X& r                                                                                                       有時候就會發(fā)生            
. w* l! K3 |! N+ K          {                                                                                           state<3的情況,就是我所說
0 ?1 g8 z9 O; {% P                                                                                                       的丟數(shù),其實數(shù)并有丟; o! j: F$ y0 |8 x
             ……                                                                                   我覺得從理論上講能通訊( `* Z5 z1 f* T0 F9 }6 q
                                                                                                      一次成功就通訊N次,0 y! _0 w. F( j
                                                                                                      因為同一個循環(huán)……事& H. d2 y6 ^3 m4 q+ [6 q. A
                                                                                                      實 證明錯了……      
, `/ `" p, u) P1 J            }- g& `6 R* d1 h: b! R" e! d
     }
* }0 s2 j! f' t5 {2 y}
5 F) A0 V) B8 K! @- w' M
. k! ]2 p, H3 ^4 q9 H3 T7 ]' O9 t2 V$ O3 c5 B
后來一直想為啥,在網(wǎng)上找了N久,終于發(fā)現(xiàn)有個類似的,于是在if之前多加了
9 K! p: A: A8 L4 g" A/ hfor(timeout=0;timeout<800;timeout++); 就好了
- b3 w" W, \- }: h/ k0 f
8 }, v% w; H" S& Z; {% [把經(jīng)歷寫出來,可能問題很簡單,我很菜鳥,不過還是希望和大家分享……1 i* A3 h/ G$ W$ g
: u" g$ {% R/ P0 U( k
[ 本帖最后由 卓信 于 2008-12-17 09:44 編輯 ]
作者: 過街蛤蟆    時間: 2008-12-17 09:55
現(xiàn)有的各種標準接口都不會丟數(shù)據(jù),有時是信號電平不穩(wěn)定,有時是傳輸問題,有時是傳輸干擾的問題,有時是同步問題,也可能是交叉問題,但數(shù)據(jù)應該不會是在接口中丟的,假如是你新設(shè)計的你自己的變換接口,都不太可能有這個問題,因為數(shù)學是非常死板的東西,以前用格雷碼變二進制或變其他的碼都是硬件,現(xiàn)在的接口有軟件問題,但數(shù)學公式是非??煽康模?hr noshade size="2" width="100%" color="#808080"> 作者: 卓信    時間: 2008-12-17 12:15
你從理論上講當然不會 但是以前 就有碰到過串口通訊會出現(xiàn)問題的電腦  這是我們時間過程中遇到的 后來都換了聯(lián)想的另一型號的電腦% f+ w3 {. J0 J4 D1 z7 d5 Q

0 G) b4 d/ i7 o還有 理論上認為不可能的事情發(fā)生了 你就不知道問題出在哪了
作者: 過街蛤蟆    時間: 2008-12-17 14:28
有些問題是不知道為什么,比如到高速DSP的時候,因為它的高速,牽涉到芯片里的一些問題,但對于串口的數(shù)據(jù)問題,肯定有非常明確的答案,絕不可能是一個誰都說不清的含混說法,再高的一些問題,比如到工業(yè)控制的DP網(wǎng)絡,有時也有各種問題,但一定有一個明確的說法,我的工程,我從來不接受含混的說法,到底是接地問題?是干擾問題?是隔離問題?是軟件問題?每次我都要明確說法。只有到芯片級的問題,才有不確定的說法。
作者: 卓信    時間: 2008-12-17 14:49
那你對我的問題總結(jié)一個明確的說法?
作者: 過街蛤蟆    時間: 2008-12-17 15:03
我要是調(diào)試你的設(shè)備,就一定有明確的說法,; b+ z" \  Q& M, F+ H) V+ G
以前,有人對我說怎么都不能穩(wěn)定,當然,你用家用PC是穩(wěn)定不了,; b) @& K, S/ O
電源不穩(wěn)定也影響接口,
( a9 A/ |3 b" P) K2 E! X8 ~用觸屏的顯示亂跳,愣說沒辦法,什么沒辦法,單獨給我做接地,看還亂跳,
1 M& X* j8 L* K& O" w5 }有些就本身不是接口的問題,是電路電平的事,一接上就跳,得找到底什么地方電平不穩(wěn)定,- a! T/ g/ j2 I3 G2 B4 s
對于串口、并口、一般工業(yè)以太網(wǎng)、DP網(wǎng)絡等,我從來就不接受什么數(shù)據(jù)會丟的事情,煉著一爐鋼,你告訴我數(shù)據(jù)沒了,我相信不會有人接受這個說法,( G  Y2 {6 p9 G! P+ f  K
1 f0 L9 H0 Q% A0 G0 E+ V  L4 h* i
看你沒真正干什么事情,假如你做工程的過程控制,用串口還丟數(shù)據(jù),問人家要說法,不知道你下面怎么樣,
作者: 卓信    時間: 2008-12-18 09:55
標題: 回復 6# 過街蛤蟆 的帖子
哈哈  我是沒干過什么事情 不過我不知道你搞不搞模電和信號處理 2 a) Z& v" X6 V. L* g, ?/ ?+ |

! u+ d! h8 Z/ L* P9 V6 G如果你搞過 那么我對你的什么都有確定的“說法”表示深深的佩服。
作者: 過街蛤蟆    時間: 2008-12-18 11:04
好像你有些要誤導我了,和我們先前說的接口傳輸也有些跑題了,
5 @! T$ h2 U& M$ `' D
# O. F1 Z1 A. L我現(xiàn)在作的一個東西的壓力測量就是用一個高精度的壓力傳感器,經(jīng)過模/數(shù)轉(zhuǎn)換,數(shù)字信號入機控制某些對象,模擬測量設(shè)備的誤差是自身的,有溫度的影響等,在一定范圍內(nèi)可以補償,可以通過算法的某些系數(shù)進行修正,但數(shù)字變換以后的信號就是一個確定的信號,當電路電平符合傳輸要求和傳輸距離合適的時候,數(shù)字是不會有誤差的,即不會丟數(shù)據(jù),要丟也是在模擬部分。- _# d* _4 J# [& [9 ?/ D: ?' X

! m/ b* R9 j0 `8 n# m說事情,應按一個路說說下去,串口的數(shù)據(jù)丟失,和模轉(zhuǎn)及模擬信號的處理好像沒關(guān)系,轉(zhuǎn)數(shù)字電路以后,丟數(shù)據(jù)我絕對是要問明白,以前一些控制配套商也有你類似的說法,從熱電偶那里開始‘攪和’,都以為自動控制在中國是‘說不清’的事情,我從來不信這東西,到底是哪里的問題?肯定會搞明白的,不能以為大家都是混事的,是熱電偶問題?是補償線問題?是變換問題?是傳輸問題?不可能讓誰混過去的,我加熱和壓力控制水平精度是非常高的,
" x6 R0 M' y2 @$ h* \. i: [
0 p4 P' A: t& K有些東西,要學習日本人,盡管某些方面我不喜歡他們,
作者: 卓信    時間: 2008-12-18 15:24
標題: 回復 8# 過街蛤蟆 的帖子
嗯嗯  前輩誤會啦
2 z( N; q0 `% h4 T  l: a$ Q  c' r6 ~/ o/ x8 G& A! V: |
只是我年輕氣盛……其實我說的說不清和你所說的要有一個明說的對象有點不同
/ S& K" t! }9 y  [& m% t! r  f- V/ C! z7 U
特別是在模電里邊 涉及到高頻信號和弱小信號放大的時候……有些飄忽不定的干擾真的不是你能說明白的,我確信……. w7 b4 a7 r' ]" G
也許你說的要有個說法我理解為做事的態(tài)度好點……是一種認真的態(tài)度,我認為比較好。
作者: 過街蛤蟆    時間: 2008-12-18 16:04
呵呵,你誤會了,說不上什么誤解,因為我們每年作不少的事情,各種東西都有,有時調(diào)試一個東西必須要做好,有時一個環(huán)節(jié)很大,常有自動化的人和我說怎么不行,有時我就是不信,該給我做接地的,該隔離的,用質(zhì)量次的信號線的,什么都見過,我就是一個環(huán)節(jié)一個環(huán)節(jié)看,看到底問題在哪里,最后都能處理掉,即使是高頻的射頻信號,都要處理掉,有些是基板介電常數(shù)的問題,是玻璃布的含堿量和樹脂的問題,最終都能找到問題,為什么你給我用介電常數(shù)不合格的基板,0 E6 V: U( T! W& |6 P5 K
9 s1 z, m$ I: x" ~# B
我其實是要說,在我國現(xiàn)階段的設(shè)備,還沒到說不明白的程度,在工程里面,你看日本人什么樣,每個數(shù)據(jù)要寫出來,誰負責,數(shù)據(jù)沒處理好,你必須說為什么,
作者: 卓信    時間: 2008-12-21 18:33
原帖由 過街蛤蟆 于 2008-12-18 16:04 發(fā)表
$ U! ?* S" ]% [! w# Z呵呵,你誤會了,說不上什么誤解,因為我們每年作不少的事情,各種東西都有,有時調(diào)試一個東西必須要做好,有時一個環(huán)節(jié)很大,常有自動化的人和我說怎么不行,有時我就是不信,該給我做接地的,該隔離的,用質(zhì)量次的 ...
2 q8 m0 f6 b, N: [

3 U6 E+ k, S+ v5 ?7 R2 E% E( o. L嗯嗯 學習啦 前輩真棒
作者: minmin0000    時間: 2009-2-4 01:05
標題: 我覺得你們好象說的不是同一個問題啊........
我看了樓主發(fā)在電子工程世界上的同一個帖子,要不你把你的下位機接收程序發(fā)上來看下...還有,你是不是用的筆記本電腦,還用了串行口數(shù)據(jù)轉(zhuǎn)換器???那東西容易丟數(shù)據(jù)...最后想問你的其他和"timeout"變量有關(guān)的代碼發(fā)上來看看啊,看看為什么加這個變量就ok了......




歡迎光臨 機械社區(qū) (http://www.xa-space.com/) Powered by Discuz! X3.5