|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請問存不存在單片機(jī)程序發(fā)送數(shù)據(jù)過快導(dǎo)致PC端接收數(shù)據(jù)出錯(cuò) |
| 作者:addisonqhd 欄目:單片機(jī) |
請問存不存在單片機(jī)程序發(fā)送數(shù)據(jù)過快,串口波特率設(shè)定太小,導(dǎo)致PC端接收數(shù)據(jù)出錯(cuò)的問題? |
| 2樓: | >>參與討論 |
| 作者: hotpower 于 2006/4/9 11:19:00 發(fā)布:
肯定會(huì)有 |
|
| 3樓: | >>參與討論 |
| 作者: 汽車電子 于 2006/4/9 11:49:00 發(fā)布:
數(shù)據(jù)太快太多了還有死機(jī)的可能 * - 本貼最后修改時(shí)間:2006-4-9 11:59:03 修改者:汽車電子 |
|
| 4樓: | >>參與討論 |
| 作者: hotpower 于 2006/4/9 11:52:00 發(fā)布:
用緩沖更好管理 |
|
| 5樓: | >>參與討論 |
| 作者: addisonqhd 于 2006/4/9 14:24:00 發(fā)布:
如何用緩沖? 如何用緩沖? |
|
| 6樓: | >>參與討論 |
| 作者: ljxh401 于 2006/4/9 17:00:00 發(fā)布:
我用vb寫的程序總是接收不完的 郁悶 |
|
| 7樓: | >>參與討論 |
| 作者: xwj 于 2006/4/9 19:41:00 發(fā)布:
如果PC端程序沒BUG,串口再快的速度都撐不死電腦的 根本不是一個(gè)數(shù)量級(jí)的東西 有問題只能說是你的程序設(shè)計(jì)不當(dāng)(思路有問題)! |
|
| 8樓: | >>參與討論 |
| 作者: 何以解憂 于 2006/4/9 20:59:00 發(fā)布:
嘿嘿本來俺也是認(rèn)為mcu撐不死PC的,因?yàn)榭匆姾芏噙@樣的PC實(shí)例 不過hotpower和汽車電子這樣一說俺又含糊了... 用VB?試試使用c? |
|
| 9樓: | >>參與討論 |
| 作者: dengm 于 2006/4/11 19:24:00 發(fā)布:
用 100 到 200 ms的緩沖,利用50ms的timer輔助。。 |
|
| 10樓: | >>參與討論 |
| 作者: hunao 于 2006/4/12 18:45:00 發(fā)布:
緩沖區(qū)溢出 |
|
| 11樓: | >>參與討論 |
| 作者: BitFu 于 2006/4/12 20:18:00 發(fā)布:
一般不會(huì),只要接收緩沖夠大. 接受緩沖設(shè)置的大一點(diǎn)就不會(huì)出現(xiàn)此類現(xiàn)象. |
|
| 12樓: | >>參與討論 |
| 作者: 汽車電子 于 2006/4/12 23:32:00 發(fā)布:
我的串口通直接用線程,串口接收緩沖32K 被動(dòng)接收,接收數(shù)據(jù)太快大多,界面操作會(huì)失靈,但接收數(shù)據(jù)正常。數(shù)據(jù)停止后,界面操作恢復(fù)正常。 優(yōu)點(diǎn)是接收顯示快,一接收到馬上顯示。 看來要修改為主動(dòng)接收才行,每50ms讀取一次數(shù)據(jù),刷新一次顯示,不會(huì)覺得數(shù)據(jù)滯后的,也不會(huì)影響調(diào)試 |
|
| 13樓: | >>參與討論 |
| 作者: jinjianhui 于 2006/4/13 13:31:00 發(fā)布:
加入延時(shí)程序 前提:實(shí)時(shí)性要求不高 在發(fā)送數(shù)據(jù)幀時(shí),每向PC發(fā)送一個(gè)字節(jié)都加入了一個(gè)延時(shí)程序DELAY,這樣做的目的是保證PC端的可靠接收。PC機(jī)內(nèi)部的串口收發(fā)控制芯片大多具有一定數(shù)量的FIF0數(shù)據(jù)緩沖區(qū),但它的容量有限,一般為16BYTE。通過大量實(shí)驗(yàn)發(fā)現(xiàn)延時(shí)長度在7ms可以保證數(shù)據(jù)完成不存在丟失現(xiàn)象。(引用書上的) |
|
| 14樓: | >>參與討論 |
| 作者: yuanfangjy 于 2006/4/13 20:30:00 發(fā)布:
- 主要的問題,在於你的PC端程序的寫法如何! 我之前的做法是,串口接收的部分另開一個(gè)線程,收到數(shù)據(jù)後直接寫入buffer,再發(fā)message通知主程序去buffer取數(shù)據(jù),buffer足夠大。 這樣數(shù)據(jù)傳輸再快也不會(huì)影響你的主界面的操作。不過RS232本來也不能傳太快,反正我前一段時(shí)間用115200跑數(shù)據(jù),錯(cuò)誤還是蠻高的。 還是USB比較好,又快又不會(huì)出錯(cuò)。 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |