日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]一.實(shí)驗(yàn)內(nèi)容 基于stm32平臺(tái)控制手機(jī)模塊撥打電話,取消撥打電話以及發(fā)送短信。 按下WKUP鍵撥打電話,按下Tamper鍵則取消撥打,按下SEL鍵就以短信形式發(fā)送一串英文字符到手機(jī)。二.實(shí)驗(yàn)流程 三.實(shí)驗(yàn)結(jié)果 按下WKUP

一.實(shí)驗(yàn)內(nèi)容
基于stm32平臺(tái)控制手機(jī)模塊撥打電話,取消撥打電話以及發(fā)送短信。
按下WKUP鍵撥打電話,按下Tamper鍵則取消撥打,按下SEL鍵就以短信形式發(fā)送一串英文字符到手機(jī)。

二.實(shí)驗(yàn)流程


 

三.實(shí)驗(yàn)結(jié)果
按下WKUP鍵,撥通手機(jī);按下Tamper鍵截?cái)嗤ㄔ?;按下SEL鍵往手機(jī)發(fā)送短信。

四.實(shí)現(xiàn)原理
4.1撥打電話命令為atd+電話號(hào)碼+分號(hào)+回車,只要通過(guò)串口往手機(jī)模塊發(fā)送這一串命令就可以實(shí)現(xiàn)撥打電話

功能。
4.2截止撥號(hào)命令為ath+回車,理解方式是at+hold(舉起或停下來(lái)),同樣,撥打的相對(duì)應(yīng)at指令為atd可以理

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

設(shè)置接收短信的手機(jī)號(hào)碼,第三步就是編寫短信消息的內(nèi)容。"AT+CMGF=1rn",作用是設(shè)置短信消息為英文

格式,手機(jī)模塊接到這串命令之后會(huì)返回" OK rn",那么STM32不停循環(huán)檢測(cè)串口返回來(lái)的信息,直至出現(xiàn)

回車符才進(jìn)行下一步動(dòng)作。接著往手機(jī)模塊發(fā)送"AT+CMGS="13800138000"rn",作用是設(shè)置短信接收的手

機(jī)號(hào)碼,接著手機(jī)模塊會(huì)返回''>''符號(hào),同理STM32不停循環(huán)檢測(cè)串口接收的信息,直至出現(xiàn)''>''才進(jìn)行下一步

動(dòng)作。下一步就是往手機(jī)模塊發(fā)送"We are the best team!x1a",“We are the best team!”為信息的內(nèi)

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

步,假如不循環(huán)檢測(cè)串口返回的信息,一連串往手機(jī)模塊發(fā)送三串命令,手機(jī)模塊會(huì)相應(yīng)不來(lái),導(dǎo)致丟失部

分命令的后果。


主循環(huán):
while(1)
 { //如果按下WKUP鍵,則撥打號(hào)碼為“13800138000”的手機(jī)
 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鍵,則調(diào)用MSN()函數(shù),達(dá)到發(fā)送短信的目的
    if(GPIO_Keypress(GPIO_KEY, BUT_SEL))
  MSN();
  while(GPIO_Keypress(GPIO_KEY, BUT_SEL));

 //延遲的作用為簡(jiǎn)單的防按鍵抖動(dòng)功能
 Delay(100);
 }

發(fā)送短信的命令:
void MSN(void)
{u8 word;
  Serial_PutString("AT+CMGF=1rn");         //設(shè)置短信消息為英文格式
  while(1)
   {word=USART_ReceiveData(USART3);
    if(word==''n'')
    break;
    }
 Serial_PutString("AT+CMGS="13800138000"rn");   //設(shè)置短信接收的號(hào)碼
 while(1)
   {word=USART_ReceiveData(USART3);
    if(word==''>'')
    break;
    }
 Serial_PutString("We are the best team!x1a");    //編寫短信內(nèi)容
 while(1)
   {word=USART_ReceiveData(USART3);
    if(word==''n'')
    break;
    }
 }

五.程序深入分析
5.1
STM32需要用到的每一只引腳都需要使能引腳時(shí)鐘,本程序需要用到三個(gè)按鍵以及一個(gè)串口(USTAR3),其中兩

個(gè)按鍵在PC口,一個(gè)按鍵在PA口,程序在RCC_Configuration()函數(shù)里面實(shí)現(xiàn):
/*使能GPIOx 時(shí)鐘 */
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE);

/* 使能USARTx 時(shí)鐘 */
RCC_APB1PeriphClockCmd(RCC_APB_Periph_USARTx, ENABLE);

/* 使能按鍵引腳時(shí)鐘 */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO| RCC_APB2Periph_GPIO_BUTTON |

RCC_APB2Periph_GPIO_WKUP , ENABLE);

5.2
STM32每一只引腳都有復(fù)用功能,所以用到的每一只引腳都需要配置引腳的功能,程序在

GPIO_Configuration()函數(shù)里面實(shí)現(xiàn):

GPIO_InitTypeDef GPIO_InitStructure;

  GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);

  /* 設(shè)置USARTx_Tx 為復(fù)用推挽輸出,頻率為50MHz */
  GPIO_InitStructure.GPIO_Pin = GPIO_TxPin;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOx, &GPIO_InitStructure);

  /* 設(shè)置USARTx_Rx為浮空輸入,頻率為50MHz */
  GPIO_InitStructure.GPIO_Pin = GPIO_RxPin;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOx, &GPIO_InitStructure);

  /* 設(shè)置按鍵引腳為浮空輸入,頻率為2MHz */
  GPIO_InitStructure.GPIO_Pin = BUT_LEFT | BUT_RIGHT | BUT_UP | BUT_DOWN | BUT_Tamper |

BUT_SEL;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_Init(GPIO_KEY, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = BUT_WKUP;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIO_WKUP, &GPIO_InitStructure);

引腳的配置有三項(xiàng),Pin、Speed與Mode,在設(shè)置USARTx_Tx時(shí)把三項(xiàng)都設(shè)置了,而在設(shè)置USART_Rx時(shí)卻只設(shè)置

了兩項(xiàng),其中Speed沒(méi)有設(shè)置,則保持上一次設(shè)置的狀態(tài),也就是在設(shè)置USART_Tx時(shí)的50MHz。同理在設(shè)置上

下左右與Tamper、SEL鍵對(duì)應(yīng)引腳時(shí)都設(shè)置了三項(xiàng),而設(shè)置WKUP鍵對(duì)應(yīng)引腳時(shí)只是配置了兩項(xiàng)。
5.3 在主函數(shù)的死循環(huán)里面最后一步是調(diào)用delay()函數(shù)來(lái)延遲100ms,作用是防止按鍵的抖動(dòng)。而delay

函數(shù)的實(shí)現(xiàn)是通過(guò)調(diào)用SysTick時(shí)鐘源溢出中斷來(lái)實(shí)現(xiàn)的,SysTick時(shí)鐘源在main函數(shù)的開(kāi)頭設(shè)置了為1ms中斷

一次。
5.4 主程序是通過(guò)串口3和手機(jī)模塊通信的,而波特率設(shè)置為115200,程序如下:

USART_InitStructure.USART_BaudRate = 115200;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No ;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

其實(shí)手機(jī)模塊也有其通訊頻率的,假如兩者的頻率不同,那么就不能達(dá)到通訊的目的,現(xiàn)在就讓我們來(lái)看看如何查看和修改手機(jī)模塊的通訊頻率。硬件的連接很簡(jiǎn)單,只需要把手機(jī)模塊的電源接上,插上手機(jī)模塊和手機(jī)卡,用USB轉(zhuǎn)串口線把電腦和手機(jī)模塊連接起來(lái),打開(kāi)SecureCRT軟件,并設(shè)置好通訊頻率。假如軟件設(shè)置的通信頻率和手機(jī)模塊的實(shí)際頻率不同,那么在軟件的窗口就會(huì)出現(xiàn)亂碼?,F(xiàn)在有一個(gè)疑問(wèn)啦,假如手機(jī)模塊剛買回來(lái),不知道通信頻率怎么辦,不用擔(dān)心,手機(jī)模塊如果沒(méi)經(jīng)設(shè)置,它的通訊頻率是默認(rèn)第一收數(shù)據(jù)的數(shù)據(jù)頻率。下面舉例子把手機(jī)模塊的通訊頻率由115200改為57600,

具體指令at+ipr?的作用為查看當(dāng)前手機(jī)模塊的通訊頻率,at+ipr=115200為設(shè)置手機(jī)模塊的當(dāng)前通訊頻率?;剀囍螅俅屋斎霐?shù)據(jù)就會(huì)出現(xiàn)亂碼,因?yàn)槭謾C(jī)模塊的通訊頻率已經(jīng)修改了,現(xiàn)在只需停止串口軟件通信,然后把軟件的通訊頻率改為115200就可以了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

串口作為單片機(jī)開(kāi)發(fā)的一個(gè)常用的外設(shè),應(yīng)用范圍非常廣。大部分時(shí)候,串口需要接收處理的數(shù)據(jù)長(zhǎng)度是不定的。那么怎么才能判斷一幀數(shù)據(jù)是否結(jié)束呢,今天就以STM32單片機(jī)為例,介紹幾種接收不定長(zhǎng)數(shù)據(jù)的方法。

關(guān)鍵字: 單片機(jī) 串口 STM32

要問(wèn)機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來(lái)年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開(kāi)發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

消費(fèi)電子

96070 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉