音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

串口數(shù)據(jù)接收不正確

作者:embtoney 欄目:單片機
串口數(shù)據(jù)接收不正確
   我使用PIC18F6390實現(xiàn)Uart的接收和發(fā)送,24M晶振,9600Baud,發(fā)現(xiàn)發(fā)送正常,但是接收時有時會收到不正確的數(shù)據(jù)。用示波器捕捉數(shù)據(jù)發(fā)現(xiàn)接收到的數(shù)據(jù)完全正常,請教這是什么原因?
   在論壇里發(fā)現(xiàn)有高手提到過采樣速率的問題,我沒有在MICROCHIP的數(shù)據(jù)手冊中看到關(guān)于Uart采樣速率的描述。有人可以告訴我怎么設(shè)置采樣速率以及如何觀察它?

2樓: >>參與討論
embtoney
補充
我是采用中斷方式接收一幀數(shù)據(jù)的。

3樓: >>參與討論
zgl7903
1沒有設(shè)置高中斷優(yōu)先級 2中斷里的時間過長 3有關(guān)中斷的操作
 
4樓: >>參與討論
anzhongxin
回復(fù)!
中斷里是否很干凈,就只有數(shù)據(jù)接中斷吧!
一貞數(shù)據(jù)是幾個字節(jié)?如果連續(xù)接收多個字節(jié)的話,可能是接收數(shù)據(jù)時,由于讀取的不及時而造成的(因為PIC有兩級緩存),如果系統(tǒng)活不是很多的話,建議采用查詢接收!應(yīng)該不會出問題!

5樓: >>參與討論
embtoney
查詢接收
查詢的方式也試過了,還是不行。

6樓: >>參與討論
飛翔天空
re:
PDF文檔有關(guān)于波特率和波特率設(shè)置寄存器(SPBRG)設(shè)定值的表格
估計你是值設(shè)的不對
也有可能是芯片有問題
你可以弄兩個按鍵,在運行時調(diào)整波特率(也可用在線DEBUG調(diào)整),看能不能調(diào)到正確的數(shù)據(jù)接收

7樓: >>參與討論
xieyuanbin
PIC單片機的硬件UART是無法控制器采樣速率的.
接收不正常無外乎波特率不對,讀取不及時兩類,試試每次少接收一些數(shù)據(jù),或者干脆只接收一個字節(jié).
如果把每個字節(jié)之間的停止位拉長,超過兩個字節(jié)發(fā)送所需的時間的話,就可以分辨波特率不對或讀取不及時

8樓: >>參與討論
embtoney
肯定不是波特率的問題,估計是芯片本身有什么特殊要求!
回復(fù)以上幾位朋友:

應(yīng)該不是波特率的問題,因為前端設(shè)備和后端設(shè)備都是采用同樣的pic18f6490/6390,晶振和配置位都是一樣的,確認(rèn)無問題!退一步即使配置一個非標(biāo)的波特率,也不應(yīng)該出現(xiàn)不匹配的情況。

另外應(yīng)該也不是溢出的問題,因為我的系統(tǒng)是這樣的:
A<<=====>><<B>><<=====>><<C>><<=====>><<D,其中ABCD都是傳輸設(shè)備,問題是產(chǎn)生在C和D之間,也就是C不能可靠的接收D發(fā)過來的數(shù)據(jù),A、B、C之間卻沒有問題,最大突發(fā)單幀數(shù)據(jù)可以達到將近100個字節(jié)都沒有任何問題。


9樓: >>參與討論
embtoney
和芯片的接收端口有關(guān)系,和后端設(shè)備應(yīng)該沒有關(guān)系
我發(fā)現(xiàn)這種接收不可靠的情況發(fā)生在數(shù)據(jù)到達端接設(shè)備返回來的這種情況,因此我試了一下將C作為端接設(shè)備,就是說數(shù)據(jù)到C之后返回,這時同樣情況發(fā)生--B不能可靠接收數(shù)據(jù),使用示波器抓取數(shù)據(jù)顯示在B的接收口的波形是正確的。
同樣的,我嘗試了將B作為端接設(shè)備,問題一樣出現(xiàn)。

懷疑是前端設(shè)備接收端口時序方面問題,將后端設(shè)備延遲發(fā)送,但問題依舊。

總結(jié)下來,問題應(yīng)該是和芯片的接收端口有關(guān)系,和后端設(shè)備應(yīng)該沒有關(guān)系,找尋答案中。。。。

10樓: >>參與討論
embtoney
頂起來~′
就是說串口來了數(shù)據(jù)進不了中斷

11樓: >>參與討論
anjylau
研究一下
你設(shè)置的發(fā)送接收是9位還是8位,是否設(shè)有帶地址自動檢測功能,有沒有采用檢錯與糾錯的處理方法

12樓: >>參與討論
xieyuanbin
有沒有示波器?
看看波形有沒有畸變.

13樓: >>參與討論
stycx
用2400Baud能行嗎,可以的話就是誤差的問題
 
14樓: >>參與討論
蘭天白云
有沒有懷疑過ABCD間的連接設(shè)備?
 
15樓: >>參與討論
cjy
將其它程序屏蔽掉,單運行串口看看
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
充電器-非充電電池的識別
求助單片機的定時器/計數(shù)器管腳的問題
為什麼MPLAB IDE裝不了?
誰有pic用iic總線讀寫eeprom的例子
CAN的調(diào)試
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號