linux 下使用sim900打電話發簡訊

2021-07-09 11:57:55 字數 2536 閱讀 8182

****************************************====

gprs模組:sim900

開發板:fl2440

作業系統:linux 3.0

****************************************===

gprs模組,是具有gprs資料傳輸功能的gsm模組。gprs模組就是乙個精簡版的手機,整合gsm通訊的主要功能於一塊電路板上,具有傳送短訊息、通話、資料傳輸等功能。gprs模組相當於手機的核心部分,如果增加鍵盤和螢幕就是乙個完整的手機。普通電腦或者微控制器可以通過rs232串列埠與gprs模組相連,通過at指令控制gprs模組實現各種基於gsm的通訊功能。

gprs模組區別於傳統的純簡訊模組,兩者都是gsm模組,但是簡訊模組只能收發簡訊和語音通訊,而gprs模組還具有gprs資料傳輸功能。

使用sim900發簡訊打**之前,必須了解at命令怎麼使用。下面是一些常用的命令

at+cmgc   send an sms command(發出一條短訊息命令)    

at+cmgd   delete sms message(刪除 sim 卡記憶體的短訊息)    

at+cmgf   select sms message formate (選擇短訊息資訊收發格式: 0-pdu;1-文字)

at+cmgl   list sms message from preferred store(列出 sim 卡中的短訊息

at+cmgr   read sms message(讀短訊息)    

at+cmgs   send sms message(傳送短訊息)    

at+cmgw   write sms message to memory(向 sim 記憶體中寫入待發的短訊息)

at+cmss   send sms message from storage(從 sin |m 記憶體中傳送短訊息)

at+cnmi   new sms message indications(顯示新收到的短訊息)    

at+cpms   preferred sms message storage(選擇短訊息記憶體)    

at+csca   sms service center address(短訊息中心位址)    

at+cscb   select cell broadcast messages(選擇蜂窩廣播訊息)   

at+csmp   set sms text mode parameters(設定短訊息文字模式引數)

at+csms   select message service(選擇短訊息服務)

at+cnmi=2,1,0,0,0  

//設定收到新簡訊存於sim卡中併發cmti通知

+cmti:」sm」,1           //收到了簡訊,自動彈出,其中1表示存在sim中的序號

at+cmgr=1             //讀取簡訊,其中1要與上面序號對應

at+cmgd=1             //刪除簡訊,其中1為簡訊序號

三:測試

開發板開機之後使用sercure ctr 敲下面的命令

>:microcom -s 115200 /dev/ttys1

按at  是否能返回 ok 檢查模組和板子是不是連線好的模組能不能正常的工作,退出按ctrl+x,以下測試都是在這個基礎上做的。

1:發簡訊

at+cmgf=1  //cmgf=0是以pud模式傳送的。為1是以文字方式傳送

at+cmgs="159********"    //是你要傳送給的手機的號碼

〉hello world !                    //你傳送的你內容

注意:每敲完一條指令都要按回車,直到返回「>」後開始輸入資訊,但是在輸入完簡訊內容後不能敲回車而應該按組合鍵「ctrl+z」作為結束符。回車鍵在ascii碼中的數值是「\r」,「ctrl+z」在ascii碼中的數值是「0x1a」,所以在程式設計時可以直接在資訊內容後進行字串拼接。

2:打**

atd159********;    //千萬不要忘記後邊的分號!

ath           //結束通話 **

3  接聽** 

當顯示ring這個單詞的時候就說明有**打過來了

ata     //接聽**

ath    //結束通話**

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...

sim900 一些有用的指令

at cmgl指令 讀取指定儲存型別的簡訊 rec unread 或者rec read等 注意pdu和文字傳送方式下命令引數的區別。at cmgl rec unread r n 該命令用於讀取sim卡中接收但未讀的簡訊,讀完後簡訊的儲存型別變為 rec read 響應 cmgl 5,rec unre...

linux下串列埠使用

串列埠終端程式設計順序 開啟 設定 讀寫 關閉。涉及到的api。1 獲取終端屬性tcgetattr 原型 int tcgetattr int fd,struct termios termios p 功能 取得終端介質 fd 初始值,並把其值賦給temios p 函式可以從後台程序中呼叫 但是,終端屬...