一、英文短信
發:AT
收:OK
發:AT+CMGF=1
收:OK
發:AT+CMGS="+8615083111880"
收:>
發:data //data 為發送内容(enter 後以ctrl+z(0x1A)結束)
收:+CMGS: 54 OK
如果不成功,出現+CMS ERROR: 302 錯誤。再次發送AT+CMGF=1,AT+CMGS="+8615083111880"。出現>,然後輸入短信内容
二、中文PDU短信
我用一個例子說明整個過程~
短信中心号碼可以百度
北京移動 +8613800100500 北京聯通 +8613010112500
上海移動 +8613800210500 上海聯通 +8613010314500
天津移動 +8613800220500 天津聯通 +8613010130500
重慶移動 +8613800230500 重慶聯通 +8613010831500
短信中心:+8613800100500
收信号碼:+8613401041516
短信内容:我愛聽評書
第一步——格式化短信中心号碼
1 - 要去掉“+”号,然後看看長度要是奇數的話就在末尾追加一個“F”。
+8613800200500 >>>> 8613800100500F
2 - 将奇數位和偶數位交換位置。
8613800100500F >>>> 683108100005F0
3 - 在前面加上“91”,是國際化的意思。
683108100005F0 >>>> 91683108100005F0
4 - 最後算一算它有多長了,把長度除于2,再把結果轉換為2位的16進制數,加在最前面。
91683108100005F0長16 16/2=8 8的16進制“08” 一定要注意是2位
91683108100005F0 >>>> 0891683108100005F0
短信中心号碼就處理完了,下幾一步有類似的算法,現在我感覺就像做菜一樣……
第二步——格式化收信号碼
1 - 要去掉“+”号,然後看看長度要是奇數的話就在末尾追加一個“F”。
+8613401041516 >>>> 8613401041516F
2 - 将奇數位和偶數位交換位置。
8613401041516F >>>> 683104011415F6
第三步——格式化發送内容
1 - 把字元串轉換為Unicode格式。(轉換函數我寫過了,直接拿去用好了)
我愛聽評書 >>>> 62117231542C8BC44E66
2 - 把串Unicode碼的長度除于2,再把結果轉換為2位的16進制數,加在最前面。
62117231542C8BC44E66長20 20/2=10 10的16進制“0A”
62117231542C8BC44E66 >>>> 0A62117231542C8BC44E66
先看看我們都準備什麼了,再繼續~
格式化後的短信中心:0891683108100005F0
格式化後的收信号碼:683104011415F6
格式化後的發送内容:0A62117231542C8BC44E66
第四步——組合處理
1 - 算一下收信号碼的長度,不包括“+”号。這個收信号碼指的是+8613401041516,而不是683104011415F6。
+8613401041516 >>>> 8613401041516 長度為“OD”(2位16進制數表示)
2 - 在長度前後分别加“1100”。
OD >>>> 1100OD
3 - 如果收信号碼是手機的話就在後面追加“91”,如果是小靈通的話就要追加“81”。
+8613401041516是手機号碼是以加“91”
11000D >>>> 11000D91
4 - 11000D91 + 格式化後的收信号碼 + “000800” + 格式化後的發送内容
11000D91 >>>> 11000D91683104011415F60008000A62117231542C8BC44E66
5 - 計算上面那一大字元串的長度除于2,10進制表示。
11000D91683104011415F6008000A62117231542C8BC44E66長50 50/2=25
嗯,咱再看看手裡都有啥了~
格式化後的短信中心:0891683108100005F0
實際的發送内容:11000D91683104011415F60008000A62117231542C8BC44E66
發送内容的長度:25
都準備好了我們可以發短信了 ^_^
最後一步——通過AT指令發送PDU短信
AT+CMGF=0 <Enter> (告訴它你要發的是PDU類的短信)
OK (這是它傳回的它說:“我已經準備好了”)
AT+CMGS=25 <Enter> (告訴它你要發的實際長度)
>0891683108100005F011000D91683104011415F60008000A62117231542C8BC44E66 <Ctrl+Z> (看到它傳回“>” 在後面輸入格式化的短信中心+實際的發送内容最後按Ctrl+Z發送)
如果最後傳回不是“ERROR”,那就是發送成功咯~!
三、撥打電話
1、AT指令打電話,注意在撥的号碼後面有個分号;
atd10086;
OK
2、如果有電話到來時,則是序列槽上将收到RING字元串,這時我們可以使用ATA指令摘機,如果不想接聽,可以使用ATH挂斷;
但是我沒有接到RING。
四、AT常用指令
at
OK
1, 查子產品制造商:
at+cgmi
ZTE INCORPORATED
OK
2, 查GPRS子產品型号:
at+cgmm
MF626
OK
3, 查子產品版本:
at+cgmr
BD_TMOP673M3V1.0.1B07
OK
4, 查SIM卡是否在位:
at+cpin?
+CPIN: READY
OK
5,查GPRS子產品信号強度,其中”,”前的數字為信号強度,如下面示例中的12為信号強度。
at+csq
+CSQ: 12,99
OK
若信号強度為99,則無效。我這裡信号強度一般在20左右。
6,查SIM卡是否注冊上網絡,其中”,”後的值為SIM卡的注冊狀态,如下面示例中的1.
OK
at+creg?
+CREG: 0,5
OK
如果狀态值為0,表示未注冊;如果為1表示本地号碼注冊上;如果為2,表示正在搜尋營運商注冊,但沒注冊上;3表示拒絕注冊;4,未知狀态; 5, 漫遊号碼注冊上。
7,查SIM卡營運商,如下面顯示的”CHN-CUGSM”為中國聯通的号碼:
at+cops?
+COPS: 0,0,"China Mobile Communication Corp.",0
OK
在UC864E子產品上,使用AT+COPS?查詢,則聯通的号碼将顯示為”cmnet”,但在GTM900B/C, SIM5215上顯示的是”CHN-CUGSM”. 中國移動的則為”China Mobile”,在現實的時候也有一些差別,例如在UC864E上中國移動顯示為” China Mobile”,當中隻有一個空格;而在GTM900B上則顯示” China Mobile”,當中有兩個空格。但是這上面是China Mobile Communication Corp.
8,短信相關指令:
設定短信格式為Text模式:
AT+CMGF=1
OK
設定短信格式為PDU模式:
AT+CMGF=0
OK