SIM900A英文簡訊的讀取與傳送

2021-07-01 21:29:58 字數 1237 閱讀 4702

一、英文簡訊的傳送:

一般分為五步進行簡訊的傳送:

1、我們用到at+cscs指令來設定te字符集,預設的為gsm7位預設字符集,在傳送英文簡訊時,需要傳送:at+cscs="gsm",設定為預設字符集即可。

2、用指令at+cmgf來設定短訊息模式,即為文字模式(text)還是pdu模式,這裡我們傳送at+cmgf=1,設定為文字模式即可。

3、下面就是要設定具體的傳送物件的**號碼了,假如我們要給**為18792992426的號碼傳送簡訊,則傳送:at+cmgs="18792992426"即可。

4、指定號碼設定完畢之後就要傳送簡訊內容了,直接傳送英文內容即可,沒有其他附加的指令。

5、最後就是簡訊傳送的啟動指令了,即傳送0x1a即可。

特別注意:以上五步即可完成一條簡訊的傳送,但是還是特別需要注意幾點:

在傳送前面三條的內容時,要在傳送的結果加上回車,如果用除錯助手的話,不用加回車,只需在新行傳送那裡打鉤即可。傳送第四條簡訊內容的時候不必傳送回車。在傳送完簡訊內容以後,最後已十六進製制(hex)格式單獨傳送:1a(即0x1a),即可啟動一次簡訊的傳送,另外還可以傳送:0x1b即「esc」的鍵值,用於告訴sim900a,取消本次操作,不執行傳送。稍等片刻,在簡訊傳送成功之後,模組會返回如:+cmgs:156的確認資訊,表示簡訊傳送成功。

二、英文簡訊的讀取:

1、和傳送簡訊一樣,傳送指令at+cscs="gsm"。

2、傳送指令at+cmgf=1,設定模式。

3、 一條關鍵的指令:at+cnmi,用於設定新訊息指示。傳送at+cnmi=2,1,設定新訊息提示。當收到簡訊,且sim卡未滿的時候,sim900a模組會返回資料給串列埠,如:+cmti:"sm",2表示收到的新訊息,儲存在sim卡的位置2。

4、知道了簡訊儲存的位置,下來就是讀取簡訊的指令了,傳送:at+cmgr,用於讀取簡訊,比如傳送at+cmgr=1就可以讀取sim卡儲存在位置1的簡訊。

英文簡訊的讀取步驟比較簡單,但是還是需要注意幾個地方:

1: 如果sim記憶體滿了,當接受到新訊息的時候就不會返回資料給串列埠,此時解決的方法就是刪除以前的儲存內容,釋放空間,具體操作為:傳送指令:at+cmgd=1,刪除全部簡訊。

2: 想要程式設計更加清晰方便,我們也可以提前知道sim卡的實時記憶體狀態,如傳送指令:at+cpms?,可以查詢當前sim卡最大支援多少條簡訊儲存,以及當前儲存了多少條簡訊等資訊。如返回:+cpms:使用者手冊「sm」,1,50,表示當前sim卡最大儲存50條資訊,目前已經有1條儲存的資訊。  

SIM900A訪問HTTP的簡單方法

某天,突然想,sim900a能不能訪問網頁呢?如果能,直接把資料通過網頁提交上去不就更簡單了嘛。於是乎,果斷諮詢賣家,得到的答覆是 理論上可行,但是沒測試過 1 要訪問網頁,總得先上網咖。那手機是怎麼上網的呢?開啟 資料連線 就行了吧。恩。可是手機怎麼知道怎麼接入網路呢?想起當年用hero的時候,無...

linux 下使用sim900打電話發簡訊

gprs模組 sim900 開發板 fl2440 作業系統 linux 3.0 gprs模組,是具有gprs資料傳輸功能的gsm模組。gprs模組就是乙個精簡版的手機,整合gsm通訊的主要功能於一塊電路板上,具有傳送短訊息 通話 資料傳輸等功能。gprs模組相當於手機的核心部分,如果增加鍵盤和螢幕就...

SIM900的USSD測試小程式

關鍵 如下 enum status int main int argc,char argv char interactbuff 50 char outbuff 1024 enum status status ussdstart int fd open dev ttys0 o rdwr o nonbl...