• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 消費電子 > 設計應用 > STM32 MSN&Dial實驗分析及原理

    STM32 MSN&Dial實驗分析及原理

    作者: 時間:2009-07-30 來源:網絡 收藏

    本文引用地址:http://www.czjhyjcfj.com/article/166918.htm

    一.內容
    基于stm32平臺控制模塊撥打電話,取消撥打電話以及發送短信。
    按下WKUP鍵撥打電話,按下Tamper鍵則取消撥打,按下SEL鍵就以短信形式發送一串英文字符到

    二.流程


    三.結果
    按下WKUP鍵,撥通;按下Tamper鍵截斷通話;按下SEL鍵往手機發送短信。

    四.實現
    4.1撥打電話命令為atd+電話號碼+分號+回車,只要通過串口往手機模塊發送這一串命令就可以實現撥打電話

    功能。
    4.2截止撥號命令為ath+回車,理解方式是at+hold(舉起或停下來),同樣,撥打的相對應at指令為atd可以理

    解為at+dial(撥打)
    4.3發送短信的命令相比撥打電話和截止撥號有點復雜,具體分為三步。第一步設置短信消息的格式,第二步

    設置接收短信的手機號碼,第三步就是編寫短信消息的內容。AT+CMGF=1rn,作用是設置短信消息為英文

    格式,手機模塊接到這串命令之后會返回 OK rn,那么不停循環檢測串口返回來的信息,直至出現

    回車符才進行下一步動作。接著往手機模塊發送AT+CMGS=13800138000rn,作用是設置短信接收的手

    機號碼,接著手機模塊會返回''>''符號,同理不停循環檢測串口接收的信息,直至出現''>''才進行下一步

    動作。下一步就是往手機模塊發送We are the best team!x1a,“We are the best team!”為信息的內

    容,字符” x1a”為鍵盤“CTRL+Z”的ASCII碼值。這里分為三步,每一步都要完成動作之后才能進行下一

    步,假如不循環檢測串口返回的信息,一連串往手機模塊發送三串命令,手機模塊會相應不來,導致丟失部

    分命令的后果。


    主循環:
    while(1)
    { //如果按下WKUP鍵,則撥打號碼為“13800138000”的手機
    if(!GPIO_Keypress(GPIO_WKUP, BUT_WKUP))
    Serial_PutString(atd13800138000;rn);
    while(!GPIO_Keypress(GPIO_WKUP, BUT_WKUP));

    //如果按下Tamper鍵,則截止通話
    if(GPIO_Keypress(GPIO_KEY, BUT_Tamper))
    Serial_PutString(ATHrn);
    while(GPIO_Keypress(GPIO_KEY, BUT_Tamper));

    //如果按下SEL鍵,則調用MSN()函數,達到發送短信的目的
    if(GPIO_Keypress(GPIO_KEY, BUT_SEL))
    MSN();
    while(GPIO_Keypress(GPIO_KEY, BUT_SEL));

    //延遲的作用為簡單的防按鍵抖動功能
    Delay(100);
    }

    發送短信的命令:
    void MSN(void)
    {u8 word;
    Serial_PutString(AT+CMGF=1rn); //設置短信消息為英文格式
    while(1)
    {word=USART_ReceiveData(USART3);
    if(word==''n'')
    break;
    }
    Serial_PutString(AT+CMGS=13800138000rn); //設置短信接收的號碼
    while(1)


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 商洛市| 通榆县| 永城市| 东兴市| 仪征市| 汝州市| 老河口市| 合江县| 通山县| 光山县| 旌德县| 庆城县| 康定县| 德令哈市| 台南市| 体育| 冀州市| 新疆| 合山市| 永善县| 宜州市| 闽侯县| 冕宁县| 洱源县| 望江县| 石屏县| 黄大仙区| 上饶县| 屏南县| 秭归县| 兴山县| 新泰市| 台安县| 双江| 会宁县| 保山市| 乌审旗| 乐昌市| 阿勒泰市| 丰原市| 宁安市|