程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> MC8630模塊(EVDO)成功發送短信

MC8630模塊(EVDO)成功發送短信

編輯:C++入門知識

  這個發短信問題已經糾結筆者快兩個月了,陸陸續續產生一些奇怪的問題,這裡筆者對使用此模塊要特別注意的地方進行一些總結和說明,希望用這個模塊發短信的朋友們能夠從中得到參考,提高開發進度。

    1.與MC8331A不同的是,MC8630是交互式發短信的。什麼意思?

    MC8331A是直接一條AT指令,過去,其中包括發送短信的號碼,內容和長度,而8630則不是這樣,它是這樣:

  

[cpp] 
at^hcmgs="15868152889"CR    //CR是回車 
>                           //>號是模塊返回的 
hello                       //這是你要發送的數據 
[cpp] 
0x1a                        //結束符 
[cpp] 
^HCMGS:1                    //如下是模塊返回的 
OK 
^HCMGSS:1  www.2cto.com
    它是交互式的,首先輸入要發送的號碼,然後等待模塊回應:“>”這個字符,然後在輸入要發送的數據,這樣完成發送短信。

    2.第一個問題倒不是什麼難事,最讓人糾結的就是結束符問題,看過手冊的人都知道,如果是英文的要發送0x1a這個結束符,如果是中文要發送0xaa 0x1a這兩個結束符。

    大家也許會想這個不是很簡單嗎?是的,一開始筆者也認為很簡單,於是對於構造at指令的最後一個字符的時候賦值為:

  

[cpp]  
cmd[end] = 0x1a 

    這樣弄吧,很長一段時間程序就一直阻塞在這個地方,經過檢查發現不了問題,為什麼?其實它的意思是:

[cpp] 
cmd[end] = "\x1a" 

   這點要特別注意,估計大多數人都是死在這個地方!

   3.AT指令“\r”問題

    也許你有過這個錯誤,也許你沒有,但是發送AT指令一定要加"\r",pdf上沒有,也不會特別說明,所以at指令必須有回車符,以保證指令開始的時候是頂頭開始。如:

  

[cpp] 
atCmdSend("AT\r"); 

    這個是小細節問題,不過如果編程編到頭昏眼花的時候,可能不注意,也會讓人百思不得其解

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved