久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 8994|回復: 11

關于串口通訊丟數問題的解決

[復制鏈接]
1#
發表于 2008-12-17 09:41:04 | 只看該作者 |倒序瀏覽 |閱讀模式
問題:51單片機在與電腦軟件通訊的過程中,通訊了100多次 多200多次的時候會出現丟數的情況, S; ~1 B- U8 Q
原帖地址:http://bbs.eeworld.com.cn/thread-70030-1-5.html# X' d8 u+ Y: x" P

0 \: v1 \9 e6 I8 f解決辦法:實際上數并沒有丟 只是可能電路有時候不穩 造成了波特率的波動 導致了同步有點問題 9 _& [( f. ~: s$ p; j6 E
原來的單片機程序:& ^: D% E" s2 p  e( O1 ~- w
void main()) _+ E% n0 m: \
{
5 f- j; ]( D# z5 g4 v  k4 x. S5 W9 i: t4 |, k, O' u! I4 f$ z; M
    P1=0xff;
( L# x+ B3 k  O, b  k9 x    main_init();7 y( ~5 P, x. y/ I3 A
    init_8253();
$ @( }4 T% f; o% ?5 F! O- u' a    serial_init();
+ _! d0 q9 H; [* W$ f- B5 m+ s& t8 J( O' }/ |7 s0 U& A2 @
    while(1)7 z7 M; \7 b( F3 Q  k
    {
- F/ G" Z0 H  C# m        if(state >=3 )                     //state代表接收的字節數                 問題就出在這個判上,   7 ]1 T5 i6 Y& @4 n' m! ?% ^+ y7 B; }
                                                                                                       有時候就會發生            1 F6 @, r& j2 @3 N; @5 k) V
          {                                                                                           state<3的情況,就是我所說
; X$ j, s1 f4 B5 v5 |+ E1 x                                                                                                       的丟數,其實數并有丟
1 B9 j9 \; Q, u5 ^3 i# L7 G% u& F             ……                                                                                   我覺得從理論上講能通訊$ u( K0 _, M$ _, `/ a5 D1 c$ Q
                                                                                                      一次成功就通訊N次,
0 b0 g. C6 E0 _# B- |. @                                                                                                      因為同一個循環……事
2 U  b. s" J( |. t, t8 t                                                                                                      實 證明錯了……      
7 J- @  w' C4 t8 v! B( c            }
) p4 O8 J# n. f3 N* V     }. _" V( E7 E# Y6 q: p; g6 {" y
}6 E6 G2 T0 p  X. h: Q  u* ~
1 b# D0 C5 R5 j- \9 d
8 g! f& S8 C4 \
后來一直想為啥,在網上找了N久,終于發現有個類似的,于是在if之前多加了0 ~) t& X1 Q# H1 B8 v
for(timeout=0;timeout<800;timeout++); 就好了/ h/ d3 o& z& Y

3 ]* ]$ k2 h/ }6 i; t+ i1 g把經歷寫出來,可能問題很簡單,我很菜鳥,不過還是希望和大家分享……& E6 ^: V" t4 h
. g3 X8 C) k# f4 H  q3 z+ \
[ 本帖最后由 卓信 于 2008-12-17 09:44 編輯 ]
回復

使用道具 舉報

2#
發表于 2008-12-17 09:55:11 | 只看該作者
現有的各種標準接口都不會丟數據,有時是信號電平不穩定,有時是傳輸問題,有時是傳輸干擾的問題,有時是同步問題,也可能是交叉問題,但數據應該不會是在接口中丟的,假如是你新設計的你自己的變換接口,都不太可能有這個問題,因為數學是非常死板的東西,以前用格雷碼變二進制或變其他的碼都是硬件,現在的接口有軟件問題,但數學公式是非常可靠的,
3#
 樓主| 發表于 2008-12-17 12:15:31 | 只看該作者
你從理論上講當然不會 但是以前 就有碰到過串口通訊會出現問題的電腦  這是我們時間過程中遇到的 后來都換了聯想的另一型號的電腦
. i, n$ d( h2 f$ g
- E4 D7 j4 X5 y7 ~& F還有 理論上認為不可能的事情發生了 你就不知道問題出在哪了
4#
發表于 2008-12-17 14:28:45 | 只看該作者
有些問題是不知道為什么,比如到高速DSP的時候,因為它的高速,牽涉到芯片里的一些問題,但對于串口的數據問題,肯定有非常明確的答案,絕不可能是一個誰都說不清的含混說法,再高的一些問題,比如到工業控制的DP網絡,有時也有各種問題,但一定有一個明確的說法,我的工程,我從來不接受含混的說法,到底是接地問題?是干擾問題?是隔離問題?是軟件問題?每次我都要明確說法。只有到芯片級的問題,才有不確定的說法。
5#
 樓主| 發表于 2008-12-17 14:49:12 | 只看該作者
那你對我的問題總結一個明確的說法?
6#
發表于 2008-12-17 15:03:48 | 只看該作者
我要是調試你的設備,就一定有明確的說法,5 F8 U, c) t$ d3 j7 l. s0 o
以前,有人對我說怎么都不能穩定,當然,你用家用PC是穩定不了,- ^! b0 ?1 ~$ q9 h
電源不穩定也影響接口,
, n- B" d, P8 x5 [5 V' _用觸屏的顯示亂跳,愣說沒辦法,什么沒辦法,單獨給我做接地,看還亂跳,
$ y6 l7 u' e; ^2 T, G7 ?& ?( P有些就本身不是接口的問題,是電路電平的事,一接上就跳,得找到底什么地方電平不穩定,1 V% c6 l1 }# z5 O# X
對于串口、并口、一般工業以太網、DP網絡等,我從來就不接受什么數據會丟的事情,煉著一爐鋼,你告訴我數據沒了,我相信不會有人接受這個說法,9 O4 p+ l' `. o9 n6 n) g

0 |$ q9 M* e- b看你沒真正干什么事情,假如你做工程的過程控制,用串口還丟數據,問人家要說法,不知道你下面怎么樣,
7#
 樓主| 發表于 2008-12-18 09:55:01 | 只看該作者

回復 6# 過街蛤蟆 的帖子

哈哈  我是沒干過什么事情 不過我不知道你搞不搞模電和信號處理 : |/ S/ t1 e- M, U: \
3 U8 Q" a0 ~$ t* A2 g9 [9 @, u) ^
如果你搞過 那么我對你的什么都有確定的“說法”表示深深的佩服。
8#
發表于 2008-12-18 11:04:17 | 只看該作者
好像你有些要誤導我了,和我們先前說的接口傳輸也有些跑題了,
/ L2 w9 m, O8 l8 z4 F+ M$ r
) ?/ X) c2 A4 \; e/ B) [我現在作的一個東西的壓力測量就是用一個高精度的壓力傳感器,經過模/數轉換,數字信號入機控制某些對象,模擬測量設備的誤差是自身的,有溫度的影響等,在一定范圍內可以補償,可以通過算法的某些系數進行修正,但數字變換以后的信號就是一個確定的信號,當電路電平符合傳輸要求和傳輸距離合適的時候,數字是不會有誤差的,即不會丟數據,要丟也是在模擬部分。* W: s7 J2 P  `" [! J4 g8 L
& Z) c; o* l4 O! k- c  N4 [
說事情,應按一個路說說下去,串口的數據丟失,和模轉及模擬信號的處理好像沒關系,轉數字電路以后,丟數據我絕對是要問明白,以前一些控制配套商也有你類似的說法,從熱電偶那里開始‘攪和’,都以為自動控制在中國是‘說不清’的事情,我從來不信這東西,到底是哪里的問題?肯定會搞明白的,不能以為大家都是混事的,是熱電偶問題?是補償線問題?是變換問題?是傳輸問題?不可能讓誰混過去的,我加熱和壓力控制水平精度是非常高的,  T0 O) T* V# h) [( |4 d% Z
9 M( _- t3 n1 W, P
有些東西,要學習日本人,盡管某些方面我不喜歡他們,
9#
 樓主| 發表于 2008-12-18 15:24:04 | 只看該作者

回復 8# 過街蛤蟆 的帖子

嗯嗯  前輩誤會啦
7 ]% D6 C' I  \1 l6 {
6 _  J$ `+ B1 M! O. a& S3 C' F只是我年輕氣盛……其實我說的說不清和你所說的要有一個明說的對象有點不同7 _. T7 u/ e& R6 F. d& b

- P, d  y4 @7 m0 }% O  O# N* Z( Z特別是在模電里邊 涉及到高頻信號和弱小信號放大的時候……有些飄忽不定的干擾真的不是你能說明白的,我確信……; M! w  c4 F. E! I( h4 M
也許你說的要有個說法我理解為做事的態度好點……是一種認真的態度,我認為比較好。
10#
發表于 2008-12-18 16:04:55 | 只看該作者
呵呵,你誤會了,說不上什么誤解,因為我們每年作不少的事情,各種東西都有,有時調試一個東西必須要做好,有時一個環節很大,常有自動化的人和我說怎么不行,有時我就是不信,該給我做接地的,該隔離的,用質量次的信號線的,什么都見過,我就是一個環節一個環節看,看到底問題在哪里,最后都能處理掉,即使是高頻的射頻信號,都要處理掉,有些是基板介電常數的問題,是玻璃布的含堿量和樹脂的問題,最終都能找到問題,為什么你給我用介電常數不合格的基板,/ F  Y/ u( [5 q" T
) c; e2 d; r; A& M6 M' Z
我其實是要說,在我國現階段的設備,還沒到說不明白的程度,在工程里面,你看日本人什么樣,每個數據要寫出來,誰負責,數據沒處理好,你必須說為什么,
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-7-19 05:14 , Processed in 0.065683 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表