m_hSer, &dwReadError," />

激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月


主題:串口通信

  共有50345人關注過本帖    
xxq2012
1樓


串口通信  發帖心情 Post By:2012-5-17 9:41:00   [只看該作者]

ClearCommError( lpSerial->m_hSer, &dwReadError, &cmStat );
nWillLen = cmStat.cbInQue;
為什么當串口有數據主動上送時,串口接收線程收到的字節數是128的,而不是8個字節觸發的

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
lqk
2樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2012-5-17 13:14:00   [只看該作者]

不太清楚你講的問題,請描述具體一點。

  單帖管理 | 引用 | 回復 回到頂部
xxq2012
3樓


  發帖心情 Post By:2012-5-17 13:31:00   [只看該作者]

EM9360 串口接收下面終端上送的數據,數據很多,我斷點設在nWillLen = cmStat.cbInQue;語句的下一條,監測收到的數據長度,每次收到的nWillLen  =0x00000080,就是數據長度達到了128個字節了,而不是8個字節

  單帖管理 | 引用 | 回復 回到頂部
x10
4樓


  發帖心情 Post By:2012-5-17 14:20:00   [只看該作者]

EM9360板上的串口是DMA驅動的,其buffer長度為128字節,所以當連續接收的數據超過128個字節,就會在128字節是產生中斷(DMA buffer切換),若發送的字節小于128字節,接收在3個字節長度的時間沒有進一步的數據時,會產生超時中斷,這時應用程序就會收到不是128字節的數據的。

  單帖管理 | 引用 | 回復 回到頂部
xxq2012
5樓


  發帖心情 Post By:2012-5-17 14:26:00   [只看該作者]

去年我調試的時候是收到8個字節就觸發了nWillLen =0x00000008,現在是板子改了啊?

  單帖管理 | 引用 | 回復 回到頂部
x10
6樓


  發帖心情 Post By:2012-5-17 14:44:00   [只看該作者]

是修改了buffer長度,這樣可提高效率,適應更高波特率的應用。這個對你有什么不利的影響嗎?

  單帖管理 | 引用 | 回復 回到頂部
xxq2012
7樓


  發帖心情 Post By:2012-5-17 14:48:00   [只看該作者]

呵呵,我原來接收數據部分的代碼得修改了

  單帖管理 | 引用 | 回復 回到頂部
admin
8樓


  發帖心情 Post By:2012-5-18 14:50:00   [只看該作者]

串口驅動程序提供的數據是一種流式的數據,應用程序的接收線程需要對原始數據進行格式分析,才能提取出符合應用需要的應用數據包供上層使用。比方應用數據包有n個字節,格式為0x55,0xaa, {真正的數據},chksum。這時接收線程需要識別整個數據結構,并做校驗和,這樣才能得到可靠的應用數據包。如果用收到n個字節就作為應用數據包,可以但肯定不可靠。因為一旦傳送過程出點錯,那就會連續好幾幀數據的丟失。

  單帖管理 | 引用 | 回復 回到頂部
xxq2012
9樓


  發帖心情 Post By:2012-5-30 16:14:00   [只看該作者]

下面設備不停的發送數據上來,完整的數據幀是以3個EB 90為同步字頭,幀內包括數據長度字節,數據的提取,處理你們有相關的代碼和例程嗎,能發給我一份作參考嗎,請發送到414595534@QQ.com,謝謝!

  單帖管理 | 引用 | 回復 回到頂部
x10
10樓


  發帖心情 Post By:2012-5-31 8:28:00   [只看該作者]

我們沒有統一的數據幀提取方法,原則是把接收線程做成一個狀態機,根據具體的幀結構會有發現相應的簡化算法。

  單帖管理 | 引用 | 回復 回到頂部
xxq2012
11樓


  發帖心情 Post By:2012-6-1 15:09:00   [只看該作者]

那恢復成原來8個字節觸發的方式行嗎?通過燒寫內核,發個老版本的內核給我,謝謝

  單帖管理 | 引用 | 回復 回到頂部
x10
12樓


  發帖心情 Post By:2012-6-2 19:43:00   [只看該作者]

寫解析應當很容易的。就是
switch(state)
{
case 0:
   if(buf[i] == 0xEB)
      state = 1:
   break;
....
}
類似上面的流程。對串口數據通訊的程序,應用數據包的提取應當是最基本的。否則通訊過程肯定是不穩定的,這與8字節buffer還是128字節buffer沒關系。
如果一定希望要收8個,自然成組,建議發送8個字節后,停4個字節的時間,再發。這樣你肯定就能收到8個字節了。

  單帖管理 | 引用 | 回復 回到頂部

返回首頁

串口通信

用戶名:
            驗證碼: 驗證碼,看不清楚?請點擊刷新驗證碼
內容:
主站蜘蛛池模板: 高h辣肉各种姿势爽文bl| 日本一级特黄视频| 2020国产成人精品免费视频| 亚洲欧美综合色区小说| 日韩黄色在线视频| 欧美日韩在线国产| 美国一级毛片免费看成人| 久久啊| 亚洲在线观看一区二区| 日韩免费观看一级毛片看看| 成年女人免费v片| 国产免费高清福利拍拍拍| 99热在线精品观看| 欧美成人一区二区三区不卡视频| 一区不卡| 午夜影视水蜜桃网站| 欧美三级不卡| 国语一区| 99ri精品国产亚洲| 久久婷婷六月| 亚洲国产日韩a在线播放| 九九久久国产精品免费热6| 亚洲国产m3u8在线观看| 欧美视频黄色| 国产精品一区二区三区四区| 99精品免费在线| 国产高清视频在线| 久久久www成人免费精品| 亚洲国产精品久久久久秋霞66| 中文字幕日韩哦哦哦| 久在线| 手机看片一区二区| 伊人久久网站| 欧美视频国产| 欧美成人三级一区二区在线观看| 国产精品1024免费看| 韩国免费高清一级| 国产成人啪精品| 国产福利小视频在线播放观看| 国产欧美另类久久久精品免费| 欧美成人精品手机在线观看|