|
10黑幣
最近想搞個PC與單片機用串口通訊的程序,單片機部分通訊搞好了(作為初學者,當然是篡改老師的,請別見怪!),用“串口助手”收發字符串正常。但是用易語言寫的PC端,發送正常,單片機的LCD顯示正常,可是回傳到PC端顯示的就不對了,字符串順序顛三倒四的,每次回顯次序也不同,還自動加了換行符。 這個PC端,是我用易語言附帶的串口通訊例程改的,原來的例程似乎就有問題,由于我用的是USB轉串口的340線,顯示COM3,但是原例程中只有COM1、COM2兩個端口,我曾加了COM3端口選項,也是收不到信號。
現在把我改的串口通訊源碼上傳,希望能得到各位大仙的幫助、修改,或者能解釋一下接收顯示順序混亂的原因。謝謝各位了!
下面是易語言收到信號后的代碼文本,因為可能這里可能沒有多少用易語言的朋友。(全部文件在附件里)
.版本 2
.子程序 _串口_收發_收到信號
.參數 信號類型, 整數型
.局部變量 循環容器, 整數型
信號次數 = 信號次數 + 1
.如果真 (信號次數 < 36)
信號時間 [信號次數] = 取啟動時間 () - 起始時間
.如果真結束
.計次循環首 (24, 循環容器)
.如果真 (信號順序 [循環容器] = 0)
信號順序 [循環容器] = 信號類型
跳出循環 ()
.如果真結束
.計次循環尾 ()
.子程序 _串口_收發_數據到達
.參數 數據字節值, 整數型
.局部變量 循環容器, 整數型
處理事件 ()
數據次數 = 數據次數 + 1
.' 如果真 (數據次數 ≤ 4)
' 數據時間 [數據次數] = 取啟動時間 () - 起始時間
.如果真結束
.計次循環首 (18, 循環容器)
.如果真 (信號順序 [循環容器] = 0)
信號順序 [循環容器] = 10
跳出循環 ()
.如果真結束
.計次循環尾 ()
編輯框_連續接收.加入文本 (字符 (數據字節值))
編輯框_連續接收.刷新顯示 ()
.如果真 (串口_收發.信號操作 (1, #DTR信號) = 假)
信息框 (“操作失敗”, 0, )
.如果真結束
數據次數 = 0
處理事件 ()
|
-
-
1602串口.zip
2015-3-29 09:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
38.46 KB, 下載次數: 10, 下載積分: 黑幣 -5
改自本論壇的串口通訊程序
-
-
串口實驗.zip
2015-3-29 09:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
3.45 KB, 下載次數: 7, 下載積分: 黑幣 -5
易語言的上位機部分
|