最近參加一次校內電子比賽,有個題目就是讓作用單片機與GSM的結合實現遠程控制,這裏的控制是控制兩盞220V的燈泡,要求實現單片機的短信的收發。比賽已經完了,此次比賽有學習到很多新東西,寫寫總結體會(軟件方面,由於負責軟件部分)。編程
GSM模塊選擇的是西門子TC35I,網上它的資料比較多。之前有同窗買過這個模塊,可是直接用GSM模塊的話對比賽成績有影響,因此咱們只是買了TC35I和SIM卡插槽,本身來從新畫板子,把ARM與TC25I畫在一塊板子上。網上關於GSM控制的資料不少,但不少都是用51控制的,因此咱們起初的工做就是學習TC35I和將51與GSM的程序移植到ARM上。幸虧單從控制GSM上來講,並非太難,它是基於串口通訊的,並且全是基於AT指令的控制,提及來,就只是熟悉下指令,並且此次比賽用到的指令也比較少,主要是關於短消息方面的指令。咱們用到的指令以下:網絡
AT&F:設置目前參數爲廠商默認值,成功則返回OK。學習
AT+CREG?:網絡註冊。成功則返回+CREG:0,1或 +CREG:0,5。錯誤則返回ERROR。spa
AT+CMGF=1:設置短信格式爲TEXT格式。設計
AT+CSCA=’+86XXXXXXXXXXX’:發送本地中心號碼it
AT+CMGS=’XXXXXXXXXXX’:發送目標手機號碼軟件
AT+CMGR=n:讀取某條短信,n表示第幾條短信程序
AT+CMGD=n:刪除某條短信,n表示第幾條短信im
由於只是簡單的進行控制,只需傳送ASCII碼值。因此咱們短信格式設置爲了TEXT格式,減輕了編程的負擔。總結
下圖就是咱們GSM控制方面的軟件流程圖:
ARM7串口通信方面的,採用了FIFO接收,8字節觸發,有字符超時中斷。
下圖是TC35I的電路圖
另外,原本用ARM就是打算用ucosii完成軟件設計的,可是臨近比賽也仍是沒用弄出來,想了很久不知道錯在哪裏,最後果斷放棄,跑裸機。看來,對Ucosii還要繼續進行學習,熟練運用它進行編程。