MSP430與GPRS模組的串列埠通訊硬體流控制
阿新 • • 發佈:2019-02-05
經過自己研究終於弄懂是怎麼個回事了
現在發出來,有不對的地方望大家指正
MC52I可以通過AT\Q[num] (num=0/1/2/3)選擇不使能流控制(num=0),XON/XOFF軟體流控制(num=1),僅模組的CTS有效(num=2)和RTS/CTS硬體流控制四種方式。值得注意的是通常情況下MC52I不需要進行這方面的設定,直接預設為不使能流控制方式,但是當你需要使用MC52I的休眠模式時就必須要設定為RTS/CTS硬體流控制即傳送
下面介紹下modem下的RTS和CTS定義:
RTS有效(低電平)表示DTE(這裡就是微控制器)可以收,CTS有效表示modem可以收,這兩個訊號互相獨立,分別表示一個方向的流量情況。具體處理如下(借鑑了別人的描述 dengm 發表於 2005-1-14 07:52 侃微控制器)
微控制器端:
傳送資料—— 當發現(不一定及時發現)CTS無效時,停止傳送;
當發現(不一定及時發現)CTS有效時,恢復傳送;
接收資料—— 0<M<N<LEN_OF_RX_BUFFERS
當接收buffers中的bytes<M 時,給 RTS 有效訊號;
當接收buffers中的bytes>N 時,給 RTS 無效訊號;
modem端:
同上,但RTS與CTS交換
在這裡modem端我們無需處理,只需要監測CTS的電平即可,針對上述的微控制器串列埠無法接收到資料的問題,使連線RTS的I/O口輸出低電平(如果一直設為低電平表示微控制器一直允許接收資料,當傳輸資料非常大的時候會造成資料丟失,因此需要按照上面給出的bytes>N時,使RTS無效),然後再除錯就能夠發現微控制器接收到modem返回的資料了。