天天看點

labview序列槽讀不到資料問題的一些經驗總結

用labview寫的序列槽一直讀不到資料,找了很久終于發現原因了。

在寫序列槽之前,先确定序列槽的配置有沒有錯。如波特率、校驗位、停止位、流控制等。

然後是确定硬體能用。包括USB轉序列槽,單片機。我用的是USB轉TTL,最友善的一種驗證方法就是,把USB轉TTL的RX腳和TX腳短接起來,運作labview寫的序列槽,實作自發自收的功能。驗證單片機就用序列槽調試工具和單片機通信,調試工具發送指令,看單片機能不能傳回資料。

labview的序列槽寫法網上有很多,我就不詳述了。主要講一下我遇到的問題。

自己寫的序列槽發下去資料,labview序列槽接收緩沖區接收不到。已經用上面的方法驗證過,可以下發和接收的。後來檢視資料類型,發現這個有影響。單片機接收的終止符是\r\n,而我labview發下去的隻有\n。這個把發送緩沖區用十六進制顯示,就可以看到最後的終止符隻有\n,也就是換行符。也可以通過發送的位元組數看。\r\n是兩個位元組,發的資料位元組比自己輸入的位元組數要多兩個。我需要的是\r\n,回車CR加換行LF,是以單片機接收不到我發的指令,是以沒有傳回。換成十六進制輸入,增加\r\n,發送,就可以收到自己想要的資料啦。

labview隻有一個終止符,也可以自己添加多個終止符,在這裡附上NI論壇的連結:http://www.ni.com/tutorial/4256/zhs/

踩過的坑,希望能幫助到大家。

繼續閱讀