




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、/GPRS 模塊使用說明AN1909 ATK-SIM800C本應用文檔(AN1909,對應 NANO STM32F4 開發(fā)板擴展實驗 8)將教大家如何在 ALIENTEKSTM32 開發(fā)板上使用 ATK-SIM800C本文檔分為如下幾部分:/GPRS 模塊。1,ATK-SIM800C/GPRS 模塊簡介2,硬件連接3,軟件實現(xiàn)4,驗證1、ATK-SIM800C/GPRS 模塊簡介ATK-SIM800C-V15(V15 是版本號,下面均以 ATK-SIM800C 表示該)是 ALIENTEK 推出的一款高性能工業(yè)級/GPRS 模塊(開發(fā)板)。ATK-SIM800C 模塊板載 SIMCOM 公司的
2、工業(yè)級四頻/GPRS 模塊:SIM800C,工作頻段四頻:850/900/1800/1900MHz,可以低功耗實現(xiàn)語音、SMS()、MMS(彩信)、藍牙數(shù)據(jù)信息的傳輸。ATK-SIM800C 模塊支持RS232 串口和LVTTL 串口(即支持 3.3V/5V 系統(tǒng)),并帶硬件流,支持 5V24V 的超寬工作范圍,使得本模塊可以非常方便的與您的進行連接,從而給您的提供包括語音、彩信、藍牙和 GPRS 數(shù)據(jù)傳輸?shù)裙δ堋?.1 模塊簡介ATK-SIM800C 模塊是 ALIENTEK 開發(fā)的一款高性能工業(yè)級/GPRS 模塊(開發(fā)板),功能完善,尤其適用于需要語音/ 所示:麥克風/GPRS 數(shù)據(jù)/藍牙
3、通信服務的各種領域,其圖如圖1.1.1開機/關機按鍵SIM800C模塊RS232 選擇和PKEY 引出接口耳機座(MIC)座SMA 天線接口SP3232RS232串口小辣椒天線鋰電池接口網(wǎng)絡狀態(tài)指示燈電源指示燈2 4G 陶瓷藍牙天線RTC 后備電池電源防反接二極管SMF05CESD 保護電源輸入接口電源開關自彈式MicroMP2303座圖 1.1.1 ATK-SIM800C 模塊圖從圖 1.1.1 可以看出,ATK-SIM800C 模塊不但外觀漂亮,而且功能齊全,模塊(不1算天線部分)為 62mm*52.5mm,并帶有安裝,非常小巧,并且利于安裝,可方便應用于各種設計。ALIENTEK ATK
4、-SIM800C 模塊(開發(fā)板)板載如下:uuuuuuuuuuuuuuu模塊:SIM800C 1 個 RTC 后備電池1 個麥克風接口1 個耳機接口1 個 RS232 選擇和 PKEY 引出接口1 個 RS232 串口1 個鋰電池接口1 個電源輸入接口1 個電源指示燈(1 個電源開關1 個自彈式 Micro)座1 個 SMA 天線接口并配套小辣椒天線1 個 2.4G 藍牙陶瓷天線1 個開機/關機按鍵1 個網(wǎng)絡狀態(tài)指示燈(紅色)ATK-SIM800C 模塊(開發(fā)板)采用工業(yè)級,特點包括:ØØØ板載 RS232 串口(支持硬件流),方便與 PC/工控機等設備連接;板載
5、 3.5mm 耳機和麥克風座,方便進行語音通信開發(fā);板載高效同步降壓電路,轉(zhuǎn)換效率高達 90%,支持超寬電壓工作范圍(524V),非常適合工業(yè)應用;ØØØØØØ板載電源防反接保護,ESD 保護,保護功能完善;板載 RTC 后備電池(XH414H-IV01E),無需擔心掉電問題;板載小辣椒天線和陶瓷天線,能有效提高信號接收能力;采用國際 A 級 PCB 料,沉金工藝,穩(wěn)定可靠;采用全新元器件,純銅鍍金排針,堅固耐用;人性化設計,各個接口都有絲印標注,使用起來一目了然;接口位置設計安排合理,方便順手。ØPCB為 62mm*52.
6、5mm,并帶有安裝,小巧精致;ATK-SIM800C 模塊的介紹,我們就介紹到這里,詳細的介紹,請看ATK-SIM800C(GPRS)模塊用戶手冊_V1.0相關章節(jié)。1.2 模塊使用本文檔,塊,實現(xiàn):介紹大家如何通過 ALIENTEK NANO STM32 開發(fā)板連接 ATK-SIM800C 模通信(撥打、接聽)、通信(英文、中英文、中英文接收)、GPRS 通信(TCP 和 UDP 通信)、藍牙通信(SPP 通信)、以及 TTS 文本轉(zhuǎn)語音。介紹要實現(xiàn)這些功能所需要的相關知識。本節(jié)1.2.1 AT 指令簡介AT 即 Attention,AT 指令集是從終端設備(Terminal Equipme
7、nt,TE)或數(shù)據(jù)終端設備(Data Terminal Equipment,DTE)向終端適配器(Terminal Adapter, TA)或數(shù)據(jù)電路終端設備(DataCircuit Terminal Equipment,DCE)的。通過 TA,TEAT 指令來移動臺(MobileStation,MS)的功能,與網(wǎng)絡業(yè)務進行交互。用戶可以通過 AT 指令進行呼叫、2本、數(shù)據(jù)業(yè)務、傳真等方面的。AT 指令必須以"AT"或"at"開頭,以回車(<CR>)結(jié)尾。模塊的響應通常緊隨其后,格式為:<回車><換行><響應內(nèi)容
8、><回車><換行>。我們通過串口調(diào)試助手 XCOM 來測試一下,打開:ATK-SIM800C 模塊配套資料3,配套軟件串口調(diào)試助手XCOM V2.0.exe,選擇正確的 COM 號(連接到 ATK-SIM800C 模塊的 COM端口,我電腦是 COM8),然后設置波特率為 115200,新行(必選!即 XCOM 自動添加回車換行功能),然后AT 到 ATK-SIM800C 模塊,如圖 1.2.1.1 所示:圖 1.2.1.1 AT 指令測試了 3 次 AT 指令,第一次看到有亂碼,這是因為模塊上電后,還圖 1.2.1.1 中,我們沒有實現(xiàn)串口同步,在收到第一次數(shù)據(jù)
9、(不一定要 AT 指令)后,模塊會自動實現(xiàn)串口同步(即自動識別出了通信波特率),后續(xù)通信就出現(xiàn)亂碼了。因為 SIM800C 具有自動串口波特率識別功能(識別范圍:1200-115200),所以我們的電腦(或設備)可以隨便選擇一個波特率(不超過識別范圍即可),來和模塊進行通信,這里我們選擇最快的 115200。從圖 1.2.1.1 可以看出,我們現(xiàn)在已經(jīng)和 SIM800C 模塊進行通信了,我們通過不同的 AT 指令,就可以實現(xiàn)對 SIM800C 的各種了。SIM800C 模塊提供的 AT 命令包含符合 3GPP TS 27.005 、 3GPP TS 27.007 和 ITU-TRecommen
10、dation V.25ter 的指令,以及 SIMCOM的 AT 指令:1, AT+CPIN?開發(fā)的指令。接下來我們介紹幾個常用該指令用于的狀態(tài),主要是 PIN 碼,如果該指令返回:+CPIN:READY,則表明狀態(tài)正常,返回其他值,則有可能是沒有2, AT+CSQ。該指令用于信號質(zhì)量,返回 SIM800C 模塊的接收信號強度,如返回:+CSQ:24,0,3表示信號強度是 24(最大的有效值是 31)。如果信號強度過低,則要檢查天線是否接好了? 3, AT+COPS?該指令用于當前運營商,該指令只有在連上網(wǎng)絡后,才返回運營商,否則返回空,如返回:+COPS:0,0,”CHINA MOBILE”
11、,表示當前選擇的運營商是中國移動。4, AT+CGMI該指令用于司生產(chǎn)的。5,AT+CGMM該指令用于6,AT+CGSN該指令用于模塊制造商,如返回:SIMCOM_,說明 SIM800C 模塊是 SIMCOM 公模塊型號,如返回:SIMCOM_SIM800C,說明模塊型號是 SIM800C。序列號(集 IMEI 號),每個模塊的 IMEI 號都是不一樣的,具有全球唯一性,如返回:866104023267696,說明模塊的7,AT+CNUM序列號是:866104023267696。該指令用于本機號碼, 必須在在位的時候才可以, 如返回:+CNUM:”,”136*”,”129”,7,4,則表明本機
12、號碼為:136*。另外,不是所有的 SIM卡都支持這個指令,有個別8,ATE1無法通過此指令得到其號碼。該指令用于設置模式(默認開啟),即模塊將收到的 AT 指令完整的返回給端,啟用該功能,有利于調(diào)試模塊。如果不需要開啟模式,則ATE0 指令即可關閉,這樣收到的指令將不再返回給9,AT+CGMR端,這樣方便程序。該指令用于固件版本序列號,如返回:Revision:1418B02SIM800C32_BT,說明模塊的固件版本序列號是 1418B02SIM800C32_BT, flash 大小是 32Mbit、支持藍牙通信功能。以上就是我們介紹的幾個常用的 AT 指令,當然還有其他一些常用的 AT
13、指令,比如ATD/ATA/ATH 等,我們在后面的章節(jié)會慢慢介紹。關于 SIM800C 詳細的 AT 指令介紹,請參考 :ATK-SIM800C 模 塊 配 套 資 料 4 , SIM800C 模 塊 資 料 SIM800 Series_AT Command Manual_V1.09.pdf 這個文檔。給模塊的指令,如果執(zhí)行效,則會返回”ERROR”。1.2.2 撥打/接聽,則會返回對應信息和”O(jiān)K”,如果執(zhí)行失敗/指令無使用ATK-SIM800C 模塊可以非常方便的進行撥打和接聽。實現(xiàn)撥號和接聽,常用的指令有:ATE0/ATD/ATA/ATH/AT+CLIP/AT+VTS 等 6 條 AT
14、指令。ATE0,用于關閉,在通過電腦串口調(diào)試助手調(diào)試的時候,我們:ATE1,開啟回顯,可以方便調(diào)試,但是我們通過單片機程序?qū)⑵潢P閉。的時候,用不到功能,所以:ATE0,ATD,用于撥打任意號碼,格式為:ATD+號碼+;,末尾的;一定要加上,否則不能撥號,如:ATD10086;,即可實現(xiàn)撥打 10086。ATA,用于應答ATH,用于掛斷,當收到來電的時候,給模塊:ATA,即可接聽來電。,要想結(jié)束正在進行的通話,只需給模塊:ATH,即可掛斷。AT+COLP,用于設置被叫號碼顯示,這里我們通過:AT+COLP=1,開啟被叫號碼顯示,當撥通的時候(被叫接聽),模塊會返回被叫號碼。AT+CLIP,用于設
15、置來電顯示,通過塊接收到來電的時候,會返回來電號碼。:AT+CLIP=1,可以實現(xiàn)設置來電顯示功能,模4AT+VTS,產(chǎn)生 DTMF 音,該指令只有在通話進行中才有效,用于向?qū)Ψ紻TMF 音,比如在撥打 10086的時候,我們可以通過:AT+VTS=1,模擬按鍵 1。以上就是在撥打/接聽時經(jīng)常用到的幾條指令,通過這幾條指令,就可以實現(xiàn)的撥打和接聽了,不過首先要保證模塊接入到網(wǎng)絡,通過:AT+COPS?,如果返回:+COPS: 0,0,"CHINA MOBILE",則說明模塊連接到了網(wǎng)絡,可以正常使用了,網(wǎng)絡運營商為"CHINA MOBILE(" 中國移動
16、)。這些指令的使用示例可以參考ATK-SIM800C(GPRS)模塊用戶手冊_V1.02.3.3 節(jié)。1.2.3的與使用ATK-SIM800C 模塊,我們可以很方便的進行中英文的與。的與將用到的指令有:AT+CNMI/ AT+CMGF / AT+CSCS / AT+CSMP / AT+/AT+CMGS/AT+CPMS 等 7 條 AT 指令。AT+CNMI,用于設置新消息指示。:AT+CNMI=2,1,設置新消息提示,當收到新消息,且未滿的時候,SIM800C 模塊會通過串口輸出數(shù)據(jù),如:+CMTI: "SM",2,表示收到接收到新消息,在的位置 2。AT+CMGF,用于設
17、置短消息模式,SIM800C 支持 PDU 模式和文本(TEXT)模式等 2 種模式,:AT+CMGF=1,即可設置為文本模式。AT+CSCS,用于設置 TE 字符集,默認的為 IRA,國際標準字符集,在純英文的時候,:AT+CSCS="",設置為缺省字符集即可。在中英文的時候,需要:AT+CSCS="UCS2",設置為 16 位通用 8 字節(jié)倍數(shù)編碼字符集。AT+CSMP,用于設置短消息文本模式參數(shù),在使用 UCS2 方式要:AT+CSMP=17,167,2,25,設置文本模式參數(shù)。中文的時候,需,用于,比如:AT+=1,則可以在位置 1AT+的。AT
18、+CMGS,用于在"UCS2"字符集下,最大可以,在""字符集下,最大可以180 個字節(jié)的英文字符,70 個漢字(包括字符/數(shù)字)。AT+CPMS,用于最 大 支 持 多少 條/設置優(yōu)選消息器,通過:AT+CPMS?,可以當前, 以 及 當前了 多 少 條等信 息 。 如 返 回 :50 條信息,目前已經(jīng)+CPMS:”SM_P”,1,50,”SM_P”,1,50,”SM_P”,1,50,表示當前最大有 1 條的信息。以上就是ATK-SIM800C與需要用到的一些 AT 指令,這些指令的使用示例可以參考(GPRS)模塊用戶手冊_V1.02.3.4 節(jié)。為方
19、便實現(xiàn)中英文的與,本文檔例程采用文本模式(AT+CMGF=1)、UCS2編碼字符集(AT+CSCS="UCS2"),這樣號碼和內(nèi)容,全部是采用 UNICODE 編碼的字。在便顯示。而在編碼的字的時候,需要將模塊返回的 UNICODE 編碼字轉(zhuǎn)換為 GBK/ASCII 碼,以的時候,需要將 GBK/ASCII 編碼的給 ATK-SIM800C 模塊,實現(xiàn)中英文號碼和的內(nèi)容轉(zhuǎn)換為UNICODE,。在ATK-SIM800C(GPRS)模塊用戶手冊_V1.02.3.4 節(jié)里面,我們使用了一個漢字Unicode 互換工具的軟件來實現(xiàn)漢字和 UNICODE 的互換。1.2.4 GPRS
20、 通信ATK-SIM800C 模塊內(nèi)嵌了 TCP/IP 協(xié)議,通過該模塊,我們可以很方便的進行 GPRS 數(shù)據(jù)通信。本文檔例程實現(xiàn)模塊與電腦的 TCP 和 UDP 數(shù)據(jù)傳輸。將要用到的指令有:AT+CGCLASS/AT+CGDCONT/ AT+CGATT/AT+CIPCSGP/AT+CIPHEAD /AT+CLPORT/AT+CIPSTART/AT+CIPSEN/AT+CIPSTATUS/AT+CIPCLOSE/AT+CIPSHUT 等 11 條 AT 指令。5AT+CGCLASS,用于設置移動臺類別。SIM800C 模塊支持類別"B"、"CG"和”CC
21、”,:AT+CGCLASS="B",設置移動時支持。類別為 B。即,模塊支持包交換和電路交換模式,但不能同AT+CGDCONT,用于設置 PDP 上下文。:AT+CGDCONT=1,"IP","CMNET",設置 PDP上下文標標志為 1,采用互聯(lián)網(wǎng)協(xié)議(IP),接入點為"CMNET"。AT+CGATT,用于設置附著和分離 GPRS 業(yè)務。:AT+CGATT=1,附著 GPRS 業(yè)務。AT+CIPCSGP,用于設置 CSD 或 GPRSGPRS 連接,接入點為”CMNET”。模式。:AT+CIPCSGP=1, &q
22、uot;CMNET",設置為AT+ CIPHEAD,用于設置接收數(shù)據(jù)是否顯示 IP 頭。:AT+CIPHEAD=1,即設置顯示 IP頭,在收到 TCP/UDP 數(shù)據(jù)的時候,會在數(shù)據(jù)之前添加如:+IPD:28,表示是 TCP/UDP 數(shù)據(jù),數(shù)據(jù)長度為 28 字節(jié)。通過這個頭,可以方便我們在區(qū)分數(shù)據(jù)來源。AT+CLPORT,用于設置本地端。:AT+CLPORT="TCP","8888",即設置 TCP 連接本地端為 8888。AT+CIPSTART,用于建立 TCP 連接或UDP 端。: AT+CIPSTART="TCP",&q
23、uot;219.137.88.114","8086",模塊將建立一個 TCP 連接,連接目標地址為:219.137.88.114,連接端口為 8086,連接AT+CIPSEND,用于會返回:CONNECT OK。數(shù)據(jù)。在連接以后:AT+CIPSEND,模塊返回:>,此時可以輸入要的數(shù)據(jù),最大可以一次1352 字節(jié),數(shù)據(jù)輸入完后,同發(fā)一樣,輸入十六進制的:1A(0X1A),啟動數(shù)據(jù)。在數(shù)據(jù)完成后,模塊返回:SEND OK,表示。AT+CIPSTATUS,用于當前連接狀態(tài)。:AT+CIPSTATUS,模塊即返回當前連接狀態(tài)。AT+CIPCLOSE,用于關閉 TC
24、P/UDP 連接連接。AT+CIPSHUT,用于關閉移動場景。:AT+CIPCLOSE=1,即可快速關閉當前 TCP/UDP:AT+SHUT,則可以關閉移動場景,關閉場景后連接狀態(tài)為:IP INITIAL,可以通過:AT+CIPSTATUS,。另外,在連接建立后,如果收到:+PDP: DEACT,則必須:AT+CIPSHUT,關閉場景后,才能實現(xiàn)重連。以上就是 GPRS 通信(TCP/UDP)將要用到的一些 AT 指令的簡介,這些指令的使用示例可以參考ATK-SIM800C(GPRS)模塊用戶手冊_V1.02.3.5 節(jié)。另外,要實現(xiàn)模塊與電腦的 GPRS 通信,需要確保所用電腦具有公網(wǎng) IP
25、,否則無法實現(xiàn)通信,推薦在 ADSL 網(wǎng)絡下進試,并最好關閉/殺毒軟件。對于 ADSL 用戶(沒用路由器),直接擁有 1 個公網(wǎng) IP,你可以通過一個條目,就是本機 IP,如圖 1.2.4.1 所示:,搜索:IP,第6圖 1.2.4.1得到的本機公網(wǎng) IP該 IP 將與你的電腦 IP(雙擊本地連接圖標à支持選項卡,即可查看)是一致的。對與使用了路由器的 ADSL 用戶,那么電腦 IP 與你1.2.4.2 所示:到的公網(wǎng) IP 是不一樣的,如圖圖 1.2.4.2 經(jīng)過路由器后的電腦 IP可以看到,我們電腦 IP 為 192.168.1.140,與公網(wǎng) IP 不一致,此時我們需要對路由器
26、進行一下轉(zhuǎn)發(fā)規(guī)則設置:登錄路由器頁面,然后選擇àLAN 接口配置àDMZ 配置,如圖1.2.4.3 所示:7圖 1.2.4.3 DMZ 設置值然后設置啟用 DMZ 主機,并設置 DMZ 主機 IP 地址為所用電腦的 IP 地址,本機 IP 為:192.168.1.140,如圖 1.2.4.4 所示:圖 1.2.4.4 設置 DMZ 主機然后保存。這樣,我們就把內(nèi)網(wǎng) IP(192.168.1.140)的電腦,擁有了一個公網(wǎng) IP。到了,相當于經(jīng)過路由器最后,我們在電腦上,還需要用到一個軟件:網(wǎng)絡調(diào)試助手,來協(xié)助驗證 GPRS 通信,該軟件啟動界面如圖 1.2.4.5 所示:圖
27、 1.2.4.5網(wǎng)絡調(diào)試助手啟動界面8該軟件的使用非常簡單,在第四節(jié)配合我們的例程向大家介紹該軟件的使用。1.2.5 藍牙通信ATK-SIM800C 模塊集成了藍牙 3.0,通過該模塊,我們可以很方便的進行藍牙數(shù)據(jù)通信。本 文 檔 例 程實 現(xiàn) 模 塊 與藍 牙 數(shù) 據(jù) 傳 輸 。 將 要 用 到 的 指 令 有 :AT+BTPOWER/AT+BTHOST/AT+BTSCAN/AT+BTUNPAIR/AT+BTPAIR/AT+BTACPT/AT+BTSPPSEND/AT+BTDISCONN 等 8 條 AT 指令。AT+BTPOWER,用于設置開啟或關閉藍牙電源,當AT+BTPOWER=1,返
28、回 OK,表示開啟藍牙電源;AT+BTPOWER=0,返回 OK,表示關閉藍牙電源。AT+BTHOST,用于和設置當前模塊藍牙設備名,當AT+BTHOST? 時,返回該設備的藍牙名字和地址,設置當前模塊藍牙設備名時,命令格式為 AT+BTHOST=<name> ,name為你要設置的設備名。AT+BTSCAN,用于設置藍牙搜索參數(shù)AT+BTSCAN=1,10 ,開啟掃描設備,時間為 10s,搜索到設備返回 例如:+BTSCAN: 0,1,"Meizu MX4 Pro",22:22:5f:b8:e9:af,-79,表示設備 1,名稱:Meizu MX4 Pro,地
29、址:22:22:5f:b8:e9:af,信號:-79。AT+BTUNPAIR 用于刪除藍牙設備配對AT+BTUNPAIR=0,刪除所有已配對的藍牙設備信息。(注意:上次配對過的設備,下次進行配對前必須刪除配對信息)AT+BTPAIR 用于實現(xiàn)藍牙配對,:AT+BTPAIR=0,1,向設備 1 發(fā)起配對請求。AT+BTACPT 用于接收配對的藍牙設備的連接請求,AT+BTACPT=0,拒絕連接請求。AT+BTACPT=1,接收連接請求,AT+BTSPPSEND 用于藍牙串口數(shù)據(jù),數(shù)據(jù)有兩種方式,定長與非定長。在連接以后:AT+CIPSEND,模塊返回:>,即非定長模式下,此時可以輸入要的數(shù)
30、據(jù),最大可以一次1024 字節(jié),數(shù)據(jù)輸入完后,同發(fā)一樣,輸入十六進制的:1A(0X1A),啟動數(shù)據(jù)。在數(shù)據(jù)完成后,模塊返回:SEND OK,表示。關于定長模式,請參考文檔ATK-SIM800C 藍牙功能_AN1603C.pdf, 文件路徑: ATK-SIM800C 模塊資料ATK-SIM800C 藍牙功能_AN1603C.pdfAT+BTDISCONN 用于斷開已連接的藍牙設備服務,1 服務的連接。AT+BTDISCONN=1,斷開與設備以上就是藍牙通信將要用到的一些 AT 指令的簡介,這些指令的使用示例可以參考ATK-SIM800C 藍牙功能_AN1603C.pdf或ATK-SIM800C2
31、.3.6 節(jié)。(GPRS)模塊用戶手冊_V1.0另外,要實現(xiàn)模塊與的藍牙通信,需要在端安裝一個軟件:藍牙串口助手增強版_Bluetooth_spp_pro, 該軟件你可以在豌豆莢市場搜索到, 也可以在我們提供的ATK-SIM800C 配套軟件資料中找到。該軟件啟動界面如圖 1.2.5.1 所示:9圖 1.2.5.1 藍牙串口助手增強版啟動界面1.2.6 TTS 文本轉(zhuǎn)語音TTS 文本轉(zhuǎn)語音的使用說明請查看ATK-SIM800C TTS 功能_AN1603B.pdf,文件路徑:ATK-SIM800C 模塊資料ATK-SIM800C TTS 功能_AN1603B.pdf,在這里我們就不做出介紹了。
32、2、硬件連接上面我們分別介紹了撥打/接聽,的與,GPRS 通信、藍牙通信、以及TTS 文本轉(zhuǎn)語音,下面將測試以上的每個功能,例程總分為 10 個,如下:1) 撥打2) 接聽3) 英文4) 中英文5)中英文接收6) GPRS TCP 通信7) GPRS UDP 通信8)藍牙連接通信9) 藍牙 主動連接通信10) TTS 文本語音例程功能講解:1) 撥打2) 接聽:上電后,模塊會自動撥通 10086,插上耳機到模塊可以聽到在通話。:上電后,用撥打到插在模塊上的碼,當識別到有來電10時,模塊會自動接聽來電。3) 英文4) 中英文信中對:上電后,模塊會往例程設定的號碼一條英文。:上電后,模塊會往例程設
33、定的號碼一條中英文,短號碼和內(nèi)容是 UNICODE 碼,UNICODE 碼是經(jīng)過漢字 UNICODE 互換工具軟件轉(zhuǎn)換而成的。5)中英文碼接收:上電后,模塊會等待的接收,用往插在模塊上的號,模塊收到會內(nèi)容輸出,若內(nèi)容是純數(shù)字、純英文、或數(shù)字和英文的,會以字輸出,若內(nèi)容夾帶中文,則是輸出 UNICODE 碼,這時請用漢字UNICODE 互換工具將內(nèi)容 UNICODE 碼轉(zhuǎn)換成中文。另外,當接收到內(nèi)容是“LED1ON”時,開發(fā)板 LED1 亮,若內(nèi)容時“LED1OFF”,開發(fā)板 LED1 滅。6)GPRS TCP 通信:上電后,模塊會往例程設定的 IP 和端口進行 TCP 通信連接,連接成功,對方
34、 IP 往模塊數(shù)據(jù)會串口輸出,當“LED1ON”,開發(fā)板 LED1 亮,“LED1OFF”時,開發(fā)板 LED1 滅。開發(fā)板收到模塊返回的 TCP 通信數(shù)據(jù),會往對方IP數(shù)據(jù)應答,若 10 秒內(nèi)開發(fā)板沒收到數(shù)據(jù),會向服務器心跳幀“OK”。7)GPRS UDP 通信:上電后,模塊會往例程設定的 IP 和端口進行 UDP 通信連接,連接,對方 IP 往模塊數(shù)據(jù)會串口輸出,當“LED1ON”,開發(fā)板 LED1 亮,發(fā)送“LED1OFF”時,開發(fā)板 LED1 滅。開發(fā)板收到模塊返回的 UDP 通信數(shù)據(jù),會往對方 IP 8)藍牙數(shù)據(jù)應答,若 10 秒內(nèi)開發(fā)板沒收到數(shù)據(jù),會向服務器心跳幀“OK”。連接通信:
35、上電后用帶藍牙的安卓開啟藍牙,搜索“sim800c”設備并進行連接。連接過后,端打開藍牙串口助手 PRO APP 搜索“sim800c”設備進行 spp 連接,直到連接。SPP 連接后,開發(fā)板以 500ms 時間向數(shù)據(jù),同時端的數(shù)據(jù)會串口輸出。9)藍牙主動連接通信:上電后,會搜索周邊的藍牙設備,當搜索到設備后,會向搜索列表第一個設備發(fā)起連接申請(這里需保證搜索列表的第一個設備是你的),這時端會收到藍牙配對申確定進行連接,連接后,端打開藍牙串。SPP 連接口助手 PRO APP,搜索“sim800c”設備進行 spp 連接,直到連接后,開發(fā)板以 500ms 時間向數(shù)據(jù),同時端的數(shù)據(jù)會串口輸出。1
36、0)TTS 文本語音:上電后,在串口助手輸入需要的文本,然后“新行”,點擊,模塊會將文本內(nèi)容轉(zhuǎn)換程語音輸出。當模塊正在語音,在串口助手輸入:暫停,然后“新行”,點擊,模塊會停止當前的語音。本實驗所需的硬件如下:1,ALIENTEK STM32 開發(fā)板 1 個2,ATK-SIM800C/GPRS 模塊一個(包含連接線 3 跟)3,直流穩(wěn)壓電源 1 個(推薦 12V 1A 電源)4,中國移動/一張(未停機,開通 GPRS 業(yè)務)5,耳機一副(帶麥克風功能,用于通話測試)6,一臺支持藍牙的設備()要完成本文檔例程的所有功能測試,請大家務必準備好以上硬件,否則有些功能可能無法完成。ATK-SIM800
37、C 所有的與數(shù)據(jù),都是通過串口來傳輸?shù)?,所以我們的開發(fā)板與模塊連接,只需要連接串口即可(當然還需要共地)。接下來,我們看看 ALIENTEK NANO STM32開發(fā)板與 ATK-SIM800C 模塊的連接方式。ATK-SIM800C 模塊需要把 P1 的兩個跳線帽拔了。然后,用 3 根系連接:線,按表 2.1 所示關11表 2.1 ATK-SIM800C 模塊同 NANO STM32F4開發(fā)板連接關系表注意,表中的 GND,大家可以在開發(fā)板和 ATK-SIM800C 模塊上面,隨便找一個 GND 標號的排針,連接在一起即可。最后,特別提醒:ATK-SIM800C 模塊必須由單獨的電源供電(推
38、薦 12V1A 電源),開發(fā)板通過 USB 插電腦供電,不過切記要共地哦!3、軟件實現(xiàn)全部的實驗,我們都是以擴展實驗 1-HC05 上進行修改,在 HARDWARE 文件里面新建USART2 文件夾,存放usart3.c 和usart3.h 兩個文件。并在工程HARDWARE 組里面添加uasrt3.c, 并添加 usart3 文件夾到頭文件包含路徑。在工程目錄添加 SIM800C 文件夾,并在工程里面再添加 SIM800C 分組,新建 sim800c 和 sim800c 兩個文件,存放再 SIM800C 文件夾內(nèi),將 sim800c.c 加入 SIM800C 分組,并添加SIM800C 文件
39、夾到頭文件包含路徑。我們?nèi)サ粼こ痰囊恍┪从玫降?c 文件,最終的工程如圖 3.1 所示:圖 3.1 ATK-SIM800C 模塊測試實驗工程截圖usart2.c 在之前的例程(詳見:ATK-HC05 藍牙串口模塊使用說明)已經(jīng)有介紹過,下面每個例程進行講解。1)撥打:我們主要看 sim800c.c 和 main.c 的代碼,首先 sim800c,該文件是 ATK-SIM800C 模塊的驅(qū)動代碼,sim800c 里面的代碼如下:12/sim800C命令后,檢測接收到的應答/str:期待的應答結(jié)果ATK-SIM800CGNDSTXDSRXDATK-SIM800C模塊NANO STM32F4 開發(fā)
40、板GNDPA3PA213/返回值:0,沒有得到期待的應答結(jié)果/其他,期待應答結(jié)果的位置(str 的位置) u8* sim800c_check_cmd(u8 *str)char *strx=0;if(USART2_RX_STA&0X8000)/接收到一次數(shù)據(jù)了USART2_RX_BUFUSART2_RX_STA&0X7FFF=0;/添加結(jié)束符strx=strstr(const char*)USART2_RX_BUF,(const char*)str);return (u8*)strx;/向 sim800C命令/cmd:令字(不需要添加回車了),當 cmd<0XFF 的時候,
41、數(shù)字(比如0X1A),大于的時候字./ack:期待的應答結(jié)果,如果為空,則表示不需要等待應答/waittime:等待時間(:10ms)/返回值:0,(得到了期待的應答結(jié)果)/1,失敗u8 sim800c_send_cmd(u8 *cmd,u8 *ack,u16 waittime)u8 res=0; USART2_RX_STA=0;if(u32)cmd<=0XFF)USART2->DR=(u32)cmd;else u2_printf("%srn",cmd);/命令if(ack&&waittime)/需要等待應答while(-waittime)/等待
42、倒計時delay_ms(10);if(USART2_RX_STA&0X8000)/接收到期待的應答結(jié)果if(sim800c_check_cmd(ack)break;/得到有效數(shù)據(jù)USART2_RX_STA=0;if(waittime=0)res=1;return res;14/檢測(準備和是否)/返回值:2 正常/其他,錯誤代碼u8 sim800c_info_show(void)static u8 sim_flag=0; USART2_RX_STA=0;switch(sim_flag)case 0:if(sim800c_send_cmd("AT+CPIN?",&qu
43、ot;OK",20) /是否在位printf("不存在!rn");elsesim_flag=1;printf("存在!rn");break;case 1:if(sim800c_send_cmd("AT+CREG?","+CREG: 0,1",20)/網(wǎng)絡是否已printf("網(wǎng)絡正在!rn");elsesim_flag=2;printf("網(wǎng)絡!rn");break; USART2_RX_STA=0;return sim_flag;/號碼#define CALL_N
44、UM 10086/sim800C 主測試程序void sim800c_test(void)u8 timex=0;u8 sim_ready=0;sim800c.的代碼比較簡單就幾個函數(shù),下面簡單講解下。首先, 是檢測模塊應答函數(shù): u8* sim800c_check_cmd(u8 *str) , 該函數(shù)用于檢測ATK-SIM800C 模塊回來的應答/數(shù)據(jù),其中 str 為期待應答字,返回值如果為 0,則表示沒有收到期待應答字,否則為期待應答字所在的位置。第二個函數(shù)是:u8 sim800c_send_cmd(u8 *cmd,u8 *ack,u16 waittime),該函數(shù)用于向ATK-SIM80
45、0C 模塊命令。cmd 為命令字,當 cmd<=0XFF 的時候,則直接cmd,比如結(jié)束的時候,需要0X1A,也可以通過該函數(shù)。ack 為期待應答字waittime 為等待時間(:10ms),等待時間中,我們使用了定時器定義 10ms 更新中斷,15u8 call_ok=0;while(sim800c_send_cmd("AT","OK",100)/檢測是否應答 AT 指令printf("未檢測到模塊!rn");delay_ms(800); printf("嘗試連接模塊.rn");delay_ms(400);
46、 LED0=!LED0;sim800c_send_cmd("ATE0","OK",200);/指令不printf("rnSIM800C 撥打測試rn"); while(1)delay_ms(10); if(sim_ready)/就緒.if(call_ok)call_ok=0; delay_ms(50);printf("撥打%drn",CALL_NUM); u2_printf("ATD%d;rn",CALL_NUM);/撥號if(!sim_ready)/沒就緒if(sim800c_info_sho
47、w()=2)sim_ready=1; call_ok=1;else sim_ready=0;if(timex%20)=0)LED0=!LED0;/200ms 閃爍timex+;用來實現(xiàn)兩個字符接收間距以 10ms 接收超時標準(具體請看 timer.c 中定時器 3 的中斷服務函數(shù)和 usart2.c 中 USART2_IRQHandler 串口 2 的中斷服務函數(shù))第三個函數(shù)是:u8 sim800c_info_show(void),該函用于檢測 ATK-SIM800C 模塊 SIM卡是否插上,以及運營商網(wǎng)絡是否,返回值如果為 0,則表示已就緒。最后要介紹的函數(shù)是:void sim800c_t
48、est(void),該函數(shù)是本 ATK-SIM800C 模塊測試的主函數(shù),先檢測打的是 10086 號碼。是否就緒,就緒了就撥打 CALL_NUM 宏定義的,這里我們撥sim800c.c 我們就介紹到這里,我們再來看看 main.c,該文件里面就一個 main 函數(shù),main函數(shù)代碼如下:此部分代碼比較簡單,先對外設進行初始化,然后就調(diào)用 sim800c_test()進行試。的測以上就是撥打2)接聽:的代碼實現(xiàn),接下來講解下接聽測試。接聽測試代碼與撥打大致相同,僅多了一個 call_test()函數(shù),該函數(shù)實現(xiàn)配置模塊來電提醒功能,等待來電接聽來電的處理,代碼如下:16/來電檢測函數(shù)void
49、call_test(void)u8 timex=0; u8 *p,*p2;u8 p120=0;/申請 20 直接用于存放號碼if(sim800c_send_cmd("AT+CLIP=1","OK",200); /設置來電顯示if(sim800c_send_cmd("AT+COLP=1","OK",200); /設置被叫號碼顯示printf("等待來電.rn");while(1)delay_ms(10);if(USART2_RX_STA&0X8000)/接收到串口的數(shù)據(jù)int main(v
50、oid)HAL_Init();/初始化 HAL 庫Stm32_Clock_Init(RCC_PLL_MUL9);/設置時鐘,72M delay_init(72);/初始化延時函數(shù)LED_Init();/初始化 LEDuart_init(115200);/初始化串口 115200USART2_Init(115200);/串口 2 初始化printf("ALIENTEK NANO STM32rn"); while(1)sim800c_test(); /測試函數(shù)中先設置模塊的來電顯示和被叫顯示功能,然后在程序 while 中一直等待來電,當有來電時會立即接聽,并且將來電的號碼通過
51、串口打印顯示。main.c 的代碼跟之前一樣,同樣先初始化外設,然后進入 sim800c 測試。以上就是接聽3)英文英文的代碼實現(xiàn),接下來講解下英文:測試。測試代碼與之前大致相同,僅多了一個 Text_SMS()函數(shù),該函數(shù)實現(xiàn)配置模塊功能的參數(shù),以及啟動的,代碼如下:17/*參數(shù)配置*/static char *phone=""""/接收方號static char *content="ATK-SIM800C MSG SEND TEST"/內(nèi)容/*/設置 TEXT 文本模式英文void Text_SMS(void)u8 timex=0
52、;char temp50="AT+CMGS="sim800c_send_cmd("AT+CMGF=1","OK",200);/設置文本模式sim800c_send_cmd("AT+CSCS=""","OK",200);/設置 TE 字符集為strcat(temp,(char*)phone);/字拼接函數(shù)sim800c_send_cmd(u8*)temp,">",200);/命令+號碼u2_printf("%s",content);
53、/內(nèi)容到模塊USART2_RX_BUFUSART2_RX_STA&0X7FFF=0;/添加結(jié)束符if(sim800c_check_cmd("+CLIP:")/接收到來電p=sim800c_check_cmd("+CLIP:"); p+=8;p2=(u8*)strstr(const char *)p,"""); p20=0;/添加結(jié)束符strcpy(char*)p1,(char*)p);/獲取號碼printf("接聽來電: %srn",p1);/打印提示sim800c_send_cmd("
54、ATA","OK",200);/接聽來電 USART2_RX_STA=0;if(timex%20)=0)LED0=!LED0;/200ms 閃爍timex+;函數(shù)中先配置功能的參數(shù),然后調(diào)用 phone 和 content 變量向目標一條英文,測試時使用程序中的號碼,請修改的號碼,以免收不到。main.c 的代碼跟之前一樣,同樣先初始化外設,然后進入 sim800c 測試。以上就是英文4)中英文 中英文別,的代碼實現(xiàn),接下來講解下中英文測試。:測試代碼與英文大致相同,但在 Text_SMS()函數(shù)中會有所區(qū)同樣該函數(shù)實現(xiàn)配置模塊功能的參數(shù),以及啟動的,代碼如下:18/*參數(shù)配置*/static char *phone=""00000034""/接收方號“” UNICODE 碼static char *content="00410054004B002D00530049004D003E2D82F1658777ED4FE153D190016D4B8BD5"/內(nèi)容“ATK-SIM800C 中英文測試” UNICODE 碼/*/設置 TEXT 文本模式英文void Text_SMS(void)u8 timex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 游樂設備管理規(guī)定
- 油氣儲層力學性質(zhì)與流體流動
- 油品存放地安全操作規(guī)程
- Photoshop平面設計基礎 課件 任務6.3 攝影雜志封面
- 企業(yè)培訓員工心態(tài)課件
- 創(chuàng)新型企業(yè)部分股權(quán)激勵與業(yè)績考核合同
- 離婚雙方車輛房產(chǎn)分割及共同財產(chǎn)清算協(xié)議
- 貨架行業(yè)投標方案
- 餐飲業(yè)廚師職業(yè)規(guī)劃與就業(yè)合同
- 車輛質(zhì)押貸款合同違約責任協(xié)議
- 2024年葡萄糖注射液項目可行性研究報告
- 國家職業(yè)技術(shù)技能標準 4-04-02-02 信息通信網(wǎng)絡線務員 人社廳發(fā)20199號
- 數(shù)獨題目高級50題(后附答案)
- 南昌市2025屆高三摸底測試(零模)數(shù)學試卷(含答案)
- GB/T 44099-2024學生基本運動能力測評規(guī)范
- 幼兒園美術(shù)案例分析與措施
- 高斯小學奧數(shù)二年級(上)第05講 圖形規(guī)律進階
- MOOC 化工過程與控制仿真實習-北京化工大學 中國大學慕課答案
- 《保溫保冷技術(shù)》
- 新版人教版七年級全冊英語單詞表(含音標)可打印
- 2024-2026胡潤財富報告
評論
0/150
提交評論