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

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

二.實驗流程


 

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

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

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

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

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

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

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

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

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

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

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

分命令的后果。


主循環(huán):
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鍵,則調(diào)用MSN()函數(shù),達到發(fā)送短信的目的
    if(GPIO_Keypress(GPIO_KEY, BUT_SEL))
  MSN();
  while(GPIO_Keypress(GPIO_KEY, BUT_SEL));

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

發(fā)送短信的命令:
void MSN(void)
{u8 word;
  Serial_PutString("AT+CMGF=1rn");         //設置短信消息為英文格式
  while(1)
   {word=USART_ReceiveData(USART3);
    if(word==''n'')
    break;
    }
 Serial_PutString("AT+CMGS="13800138000"rn");   //設置短信接收的號碼
 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需要用到的每一只引腳都需要使能引腳時鐘,本程序需要用到三個按鍵以及一個串口(USTAR3),其中兩

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

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

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

RCC_APB2Periph_GPIO_WKUP , ENABLE);

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

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

GPIO_InitTypeDef GPIO_InitStructure;

  GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);

  /* 設置USARTx_Tx 為復用推挽輸出,頻率為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);

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

  /* 設置按鍵引腳為浮空輸入,頻率為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);

引腳的配置有三項,Pin、Speed與Mode,在設置USARTx_Tx時把三項都設置了,而在設置USART_Rx時卻只設置

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

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

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

一次。
5.4 主程序是通過串口3和手機模塊通信的,而波特率設置為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;

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

具體指令at+ipr?的作用為查看當前手機模塊的通訊頻率,at+ipr=115200為設置手機模塊的當前通訊頻率。回車之后,再次輸入數(shù)據(jù)就會出現(xiàn)亂碼,因為手機模塊的通訊頻率已經(jīng)修改了,現(xiàn)在只需停止串口軟件通信,然后把軟件的通訊頻率改為115200就可以了。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉