久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3814|回復: 0
打印 上一主題 下一主題
收起左側

stm32使用gsm模塊打電話代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:251082 發表于 2018-6-24 11:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
stm32使用gsm模塊打電話代碼

單片機源程序如下:
  1. /*****************************************************       
  2. 接線說明:
  3. STM32                                        A6&A7
  4. GND                <----->        GND
  5. PA2                ------>        U_RXD
  6. PA3                <------        U_TXD

  7. //用于調試可不接
  8. STM32                                        USB-TTL模塊
  9. GND                ------>        GND
  10. TX1                ------>        RXD
  11. ***********************************************************/

  12. #include "stm32f10x.h"
  13. #include "delay.h"
  14. #include "usart.h"
  15. #include "led.h"
  16. #include "usart2.h"


  17. //常量
  18. #define Success 1U
  19. #define Failure 0U

  20. //定義變量
  21. unsigned long  Time_Cont = 0;       //定時器計數器

  22. char phoneNumber[] = "1771922xxxx";                //替換成需要被撥打電話的號碼


  23. void errorLog(int num);
  24. void phone(char *number);
  25. unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry);
  26. void Sys_Soft_Reset(void);

  27. int main(void)
  28. {       
  29.         delay_init();
  30.        
  31.         NVIC_Configuration();          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  32.         uart_init(9600);         //串口初始化為9600
  33.         USART2_Init(115200);        //串口2波特率9600
  34.         u2_printf("AT\r\n");
  35.         Init_LEDpin();
  36.        
  37.        
  38.        
  39.         printf("Welcome to use!\r\n");
  40.         printf("ILoveMcu.taobao.com!\r\n");
  41.        
  42.         if (sendCommand("AT\r\n", "OK", 3000, 10) == Success);
  43.         else errorLog(1);
  44.         delay_ms(10);

  45.         if (sendCommand("AT+CPIN?\r\n", "READY", 1000, 10) == Success);
  46.         else errorLog(2);
  47.         delay_ms(10);

  48.         if (sendCommand("AT+CREG?\r\n", "CREG: 1", 1000, 10) == Success);
  49.         else errorLog(3);
  50.         delay_ms(10);

  51.         phone(phoneNumber);                //打電話
  52.        
  53.         while(1)
  54.         {
  55.                
  56.         }
  57. }

  58. void errorLog(int num)
  59. {
  60.         printf("ERROR%d\r\n",num);
  61.         while (1)
  62.         {
  63.                 if (sendCommand("AT\r\n", "OK", 100, 10) == Success)
  64.                 {
  65.                         Sys_Soft_Reset();
  66.                 }
  67.                 delay_ms(200);
  68.         }
  69. }

  70. void Sys_Soft_Reset(void)
  71. {  
  72.     SCB->AIRCR =0X05FA0000|(u32)0x04;      
  73. }

  74. void phone(char *number)
  75. {
  76.         char send_buf[20] = {0};
  77.         memset(send_buf, 0, 20);    //清空
  78.         strcpy(send_buf, "ATD");
  79.         strcat(send_buf, number);
  80.         strcat(send_buf, ";\r\n");

  81.         if (sendCommand(send_buf, "SOUNDER", 10000, 10) == Success);
  82.         else errorLog(4);
  83. }

  84. unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry)
  85. {
  86.         unsigned char n;
  87.         USART2_CLR_Buf();
  88.         for (n = 0; n < Retry; n++)
  89.         {
  90.                 u2_printf(Command);                 //發送GPRS指令
  91.                
  92.                 printf("\r\n***************send****************\r\n");
  93.                 printf(Command);
  94.                
  95.                 Time_Cont = 0;
  96.                 while (Time_Cont < Timeout)
  97.                 {
  98.                         delay_ms(100);
  99.                         Time_Cont += 100;
  100.                         if (strstr(USART2_RX_BUF, Response) != NULL)
  101.                         {                               
  102.                                 printf("\r\n***************receive****************\r\n");
  103.                                 printf(USART2_RX_BUF);
  104.                                 USART2_CLR_Buf();
  105.                                 return Success;
  106.                         }
  107.                        
  108.                 }
  109.                 Time_Cont = 0;
  110.         }
  111.         printf("\r\n***************receive****************\r\n");
  112.         printf(USART2_RX_BUF);
  113.         USART2_CLR_Buf();
  114.         return Failure;
  115. }
復制代碼

所有資料51hei提供下載:
01.STM32撥打電話.rar (319.11 KB, 下載次數: 42)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜免费视频 | 中文字幕 国产 | 毛片一区 | 日韩中文字幕一区 | 国产精品久久久久久久久久了 | 一a一片一级一片啪啪 | 999热视频| 天天拍天天操 | 深爱激情综合 | 久久精品成人热国产成 | 黑人精品xxx一区一二区 | 国产精品久久久久久久久免费相片 | 国产三级一区二区三区 | 亚洲精品久久国产高清情趣图文 | 欧美一区在线视频 | 日韩高清一区二区 | 久久久精彩视频 | 一区二区国产在线观看 | 一级在线观看 | 欧美一区二区三区在线 | 久久久久国产一区二区三区 | 成人不卡一区二区 | 国产电影精品久久 | 国产高清视频一区 | 成人在线视频网址 | 在线视频成人 | 欧美日韩电影一区 | 一区二区三区回区在观看免费视频 | 一二区成人影院电影网 | 亚洲精品久久久一区二区三区 | 久久一区二区三区四区 | 国产一区二区在线视频 | 成人免费高清 | 日韩精品久久久久 | 天堂久久网 | 成人影院一区二区三区 | 欧美日韩亚洲系列 | 久久精品国产v日韩v亚洲 | 日韩中文字幕免费在线观看 | 黄色香蕉视频在线观看 | 欧美偷偷操 |