如何檢測串口連接正常

如何檢測串口連接正常

可以通過我的電腦——屬性——設備管理器——端口(COM)——USB SERIAL如果能再端口里面看到USB SERIAL,就說明串口與電腦連接正常。具體如下:串口與電腦連接時,可以看到端口(COM和LPT),里面有USB串口字樣就對了(全英文)串口連接移除后,端口就不見了。

如果串口連接了,缺看不到,可以這樣:下載驅動,安裝好驅動程序,重新連接一下電腦。

(安裝驅動的時候不能拔除串口連接)(要選擇正確的版本,有的驅動是XP的,有的是WIN7等)。換一條串口線。一般這樣就百科行了(STC12C5A60S2的USB轉串口的,一般串口也差不多)。

串口通訊中要發(fā)送字符型數據接收時怎樣判斷接收完畢

你之前用的隊列結構是完全可行的。有幾個問題你必須清楚:1.讀取txt文件中的數據,txt中數據是*的,也就是說讀取過程叫做—-數據回放2.讀取實際信息的數據,數據是活的,通??梢越凶觥獎討B(tài)數據采集(實時采集)針對**點來說:數據回放,是指要求你把已經有的數據,按不同的時間段進行回放,這需要你對txt文件中的數據的格式,怎么回放,回放時間間隔把握好。

這個我建議你先不要做,因為數據回放就是把數據一個個拿出來,再按時間排列去一個個顯示出去,不如實時采集來的直接。

第二點,實時采集,也就是說,數據來源可以有兩種:1.真實數據。2.模擬數據。在你之前的范例程序中,也就是“基礎隊列.vi”中,在循環(huán)內部的隨機數模塊,就是模擬數據。也就是說,是人為做的一個循環(huán)隨機數。

而真實數據,就是實際采集到的數據(替換模擬數據)。真實數據來源有很多種,比如,串口通訊,接收到的不停變換的數據(動態(tài)數據)。在最初做這個項目的時候,我的建議是,如果不了解真實數據(板卡數據采集/通訊等),那么就使用模擬數據,在labview中有很多可以模擬的子VI,比如正玄波發(fā)生器等等。

或者,人為造信號,比如之前的“基礎隊列.vi”中,范例造的隨機數信號。這里就涉及到你之前問的一個問題,數—字符串。(這些是計算機基礎知識)字符在c語言中是char類型,在數據的傳遞中,字符串是以ASCII碼形式傳輸的,說白了也是數只不過比如“s”對應的ASC碼數是“78”(沒查表只是舉例)。

在內存中占1個字節(jié)。所以,當以字符串傳遞數據的時候,數的表現形式往往是人看不懂的,因為是ASC碼所以,你傳遞整數,傳遞字符串,其道理是一樣的,只是如何能讓人來讀懂這些數。所以“基礎隊列.vi”中的隨機數vi是以double雙精度數傳遞的一個數,而你所要做的就是把這個隨機數vi換成字符串的輸出形式。

labview查找數組轉字符串這個vi或字符串轉8位數組這個vi,然后查看如何使用,可以幫助你,而demo的“基礎隊列.vi”程序可以保留,你所要做的就是以上說的這些基礎。

vb 判斷串口是否接收完成問題,謝謝

?Private?Sub?MSComm1_OnComm()?\’……?If?MSComm1.CommEvent?=?2?Then?Cheng=0?\’……?End?IfEnd?Sub

Modbus通信協議的數據接收 程序中,如何判斷一次數據接受已經完畢?

無需關心數據是否接收完畢,只要有數據發(fā)過來,都收到自己的緩沖區(qū)當中。
在應用層,打開一個任務以定期掃描緩沖區(qū)中的新數據。

如果有新數據,確定其是否為必需的協議幀。

通過幀頭幀尾標識符還有校驗等判斷接收幀的正確性,如果正確再處理,不正確丟棄。
Modbus沒有固定的幀頭標記,長度也沒有固定。 判斷時,首先查找具有正確地址的字符,然后找出后續(xù)功能代碼是否正確。 根據功能代碼,確定后續(xù)數據有多長并進行校驗。

如果驗證正確,則說明幀是正確的。

擴展資料:
舉例說明如下:
從站地址03,從0開始讀取10個寄存器,則接收到的幀為03 03 00 00 00 0a xx xx,查找從站地址03的字節(jié),找到后,以下功能碼為03,符合功能碼范圍。
該功能碼的數據包括固定為8個字節(jié)的校驗和,然后在其后沒有8個字節(jié)時,表示其已被沒收,然后在關閉后進行判斷。

如果正確,則可以在應用層中正確處理該幀。

問題1:stm32怎么判斷串口接收完成 問題2:使用串口調試發(fā)數據,為什么單片機發(fā)回來的數據偶爾會出現亂碼

你要搞清楚ascii符號和數字的差別:ascii符號“0”~“9”的編碼是0x30~0x39,換成10進制就是48~57。數字就是0~9。

如果要將“0”~“9”轉換為數字,減去0x30就可以了。

如果你用串口發(fā)送數字0~9,那就要勾選“十六進制發(fā)送“,這樣就對了。

stm32串口如果沒有接受結束判斷會怎樣,會有什么情況

不會的。pc端只管發(fā)數據,而不會去理會接收端是否全部接收。

所以對接收端的要求就是串口參數配置要一樣,處理速度跟得上。

stm32端的串口接收一般怎么做?最常見的就是使用串口接收中斷,在接收中斷里將數據依次寫入數組,然后在主函數中處理接收到的數據。如果想判斷數據接受完成,可以再開一個定時器中斷,比如volatile int timeOut;在串口接收中斷中將這個timeOut設為0,在定時器中斷中執(zhí)行++操作。當timeOut大于一個值,比如說5ms,則說明在5ms時間內串口中斷沒有收到數據,認為數據接收完成。還一種方法是使用串口空閑中斷+DMA實現。

這個可以在上面那個方法不能適用的情況下使用,百度一下吧,要說的太多,不詳述了。**一點,需要注意的是寫入接收數組時,注意溢出的情況。