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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8433|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

GPRS A6 A7開發(fā)板原理圖、stm32/51單片機(jī)代碼及相關(guān)工具軟件

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
安可信 GPRS A6 A7 開發(fā)板原理圖、51/stm32代碼及相關(guān)工具。AT指令,51和stm32源代碼,以及使用手冊,測試工具。


里面帶GPRS A6 A7開發(fā)板原理圖和封裝庫:Goouuu-GPRSModel-A7封裝庫.PcbLib

工具軟件:

PDU短信編碼器.zip
SOCKET調(diào)試助手.rar
sscom42.zip
果云A6調(diào)試助手.rar


手冊:

Goouuu_A6模塊使用手冊..pdf
安信可GSM GPRS A6_A7_A6C模組用戶開發(fā)手冊20160721.pdf


51單片機(jī)和stm32單片機(jī)源碼:

1.撥打電話.rar
2.發(fā)送TEXT短信.rar
3.發(fā)送中文短信.rar
4.接收短信控制LED燈.rar


以下是部分源碼預(yù)覽:
本程序通過手機(jī)短信控制LED的亮滅
使用單片機(jī)串口2與模塊通信;接法如下
        STC單片機(jī)   GPRS模塊
        P1.2(RXD2)->RXD
        P1.3(TXD2)->TXD
        GND          ->GND
1、板子上電后運(yùn)行指示燈RUNING_LED會以一秒的頻率閃爍;
2、通過芯片的串口1可以監(jiān)視模塊的登錄情況;
3、手機(jī)發(fā)送“onled”點(diǎn)亮LED;
4、手機(jī)發(fā)送“offled”熄滅LED;
5、使用串口2與模塊通信,串口1用于將信息打印輸出。

單片機(jī)源程序如下:
  1. /**********************************************************************************
  2.    STM32F103C8T6  
  3.          
  4.          GSM 短信控制
  5.          
  6. * 硬件連接說明
  7.          使用單片串口2與GPRS模塊通信  注:使用串口2可以避免下載和通信不會沖突
  8.          STM32      GPRS模塊
  9.          PA3 (RXD2)->RXD
  10.          PA2 (TXD2)->TXD
  11.          GND              ->GND

  12.    PA9 PA10 串口1
  13.          
  14.    PB5 LED1 指示燈1
  15.    PB6 LED2 指示燈2         
  16.          
  17.          指令: 發(fā)送短信到模塊
  18.          led1on   --- LED1  打開
  19.          led1off  --- LED1  關(guān)閉
  20.          led2on   --- LED2  打開
  21.          led2off  --- LED2  關(guān)閉
  22. **********************************************************************************/

  23. #include "stm32f10x.h"
  24. #include "usart.h"
  25. #include "Led.h"
  26. #include "SysTick.h"
  27. #include "timer.h"
  28. #include "string.h"

  29. #define Automatic_Startup 1     //定義自啟動 V1.2版本起有自啟動功能

  30. //#define Buf1_Max 60                                           //串口1緩存長度
  31. #define Buf2_Max 200                                           //串口2緩存長度
  32. /*************        本地常量聲明        **************/


  33. /*************  本地變量聲明        **************/
  34. //char Uart1_Buf[Buf1_Max];
  35. char Uart2_Buf[Buf2_Max];

  36. u8 Times=0,First_Int = 0,shijian=0;

  37. vu8 Timer0_start;        //定時器0延時啟動計(jì)數(shù)器
  38. vu8 Uart2_Start;        //串口2開始接收數(shù)據(jù)
  39. vu8 Uart2_End;          //串口2接收數(shù)據(jù)結(jié)束


  40. /*************        本地函數(shù)聲明        **************/
  41. void CLR_Buf2(void);
  42. u8 Find(char *a);
  43. void Second_AT_Command(char *b,u8 wait_time);
  44. void Set_Text_Mode(void);
  45. void Check_New_Message(void);
  46. void Wait_CREG(void);

  47. /*************  外部函數(shù)和變量聲明*****************/




  48. /*******************************************************************************
  49. * 函數(shù)名 : main
  50. * 描述   : 主函數(shù)
  51. * 輸入   :
  52. * 輸出   :
  53. * 返回   :
  54. * 注意   : 串口2負(fù)責(zé)與GPRS模塊通信,串口1用于串口調(diào)試,可以避免在下載程序時數(shù)據(jù)
  55.                                          還發(fā)送到模塊
  56. *******************************************************************************/
  57. int main(void)
  58. {
  59.         SysTick_Init_Config();
  60.         GPIO_Config();
  61.         
  62.         USART1_Init_Config(115200);
  63.         USART2_Init_Config(115200);
  64.         Timer2_Init_Config();
  65.         UART1_SendString("GPRS模塊短信測試程序\r\n");
  66.         UART1_SendString("GPRS模塊在注冊網(wǎng)絡(luò)\r\n");
  67.         Wait_CREG();
  68.         UART1_SendString("GPRS模塊注冊成功\r\n");
  69.         UART1_SendString("GPRS模塊短信模式設(shè)置\r\n");
  70.         Set_Text_Mode();
  71.         UART1_SendString("設(shè)置成功,短信模式:TEXT\r\n");

  72.         UART1_SendString("初始化完成\r\n");
  73.         while(1)
  74.         {
  75.                 Check_New_Message();
  76.         }
  77. }

  78. /*******************************************************************************
  79. * 函數(shù)名  : USART2_IRQHandler
  80. * 描述    : 串口1中斷服務(wù)程序
  81. * 輸入    : 無
  82. * 返回    : 無
  83. * 說明    :
  84. *******************************************************************************/
  85. void USART2_IRQHandler(void)                        
  86. {
  87.                         u8 Res=0;
  88.                         Res =USART_ReceiveData(USART2);
  89.                         Uart2_Buf[First_Int] = Res;            //將接收到的字符串存到緩存中
  90.                         First_Int++;                                        //緩存指針向后移動
  91.                         if(First_Int > Buf2_Max)                       //如果緩存滿,將緩存指針指向緩存的首地址
  92.                         {
  93.                                 First_Int = 0;
  94.                         }   
  95. }         

  96. /*******************************************************************************
  97. * 函數(shù)名  : TIM2_IRQHandler
  98. * 描述    : 定時器2中斷斷服務(wù)函數(shù)
  99. * 輸入    : 無
  100. * 輸出    : 無
  101. * 返回    : 無
  102. * 說明    : 無
  103. *******************************************************************************/
  104. void TIM2_IRQHandler(void)   //TIM3中斷
  105. {
  106.         static u8 flag =1;

  107.         if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)  //檢查TIM3更新中斷發(fā)生與否
  108.         {
  109.                
  110.                 TIM_ClearITPendingBit(TIM2, TIM_IT_Update  );  //清除TIMx更新中斷標(biāo)志
  111.                
  112.                 if(Timer0_start)
  113.                 Times++;
  114.                 if(Times > shijian)
  115.                 {
  116.                         Timer0_start = 0;
  117.                         Times = 0;
  118.                 }
  119.         
  120.                 if(flag)
  121.                 {
  122.                         LED4_ON();
  123.                         flag=0;
  124.                 }
  125.                 else
  126.                 {
  127.                         LED4_OFF();
  128.                         flag=1;
  129.                 }
  130.         }        
  131. }

  132. /*******************************************************************************
  133. * 函數(shù)名 : CLR_Buf2
  134. * 描述   : 清除串口2緩存數(shù)據(jù)
  135. * 輸入   :
  136. * 輸出   :
  137. * 返回   :
  138. * 注意   :
  139. *******************************************************************************/
  140. void CLR_Buf2(void)
  141. {
  142.         u16 k;
  143.         for(k=0;k<Buf2_Max;k++)      //將緩存內(nèi)容清零
  144.         {
  145.                 Uart2_Buf[k] = 0x00;
  146.         }
  147.     First_Int = 0;              //接收字符串的起始存儲位置
  148. }

  149. /*******************************************************************************
  150. * 函數(shù)名 : Find
  151. * 描述   : 判斷緩存中是否含有指定的字符串
  152. * 輸入   :
  153. * 輸出   :
  154. * 返回   : unsigned char:1 找到指定字符,0 未找到指定字符
  155. * 注意   :
  156. *******************************************************************************/

  157. u8 Find(char *a)
  158. {
  159.   if(strstr(Uart2_Buf,a)!=NULL)
  160.             return 1;
  161.         else
  162.                         return 0;
  163. }

  164. /*******************************************************************************
  165. * 函數(shù)名 : Second_AT_Command
  166. * 描述   : 發(fā)送AT指令函數(shù)
  167. * 輸入   : 發(fā)送數(shù)據(jù)的指針、發(fā)送等待時間(單位:S)
  168. * 輸出   :
  169. * 返回   :
  170. * 注意   :
  171. *******************************************************************************/

  172. void Second_AT_Command(char *b,u8 wait_time)         
  173. {
  174.         u8 i;
  175.         char *c;
  176.         c = b;                                                                                //保存字符串地址到c
  177.         CLR_Buf2();
  178.   i = 0;
  179.         while(i == 0)                    
  180.         {
  181.                 if(!Find("OK"))
  182.                 {
  183.                         if(Timer0_start == 0)
  184.                         {
  185.                                 b = c;                                                        //將字符串地址給b
  186.                                 for (; *b!='\0';b++)
  187.                                 {
  188.                                         while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==RESET);
  189.                                         USART_SendData(USART2,*b);//UART2_SendData(*b);
  190.                                 }
  191.                                 UART2_SendLR();        
  192.                                 Times = 0;
  193.                                 shijian = wait_time;
  194.                                 Timer0_start = 1;
  195.                    }
  196.     }
  197.            else
  198.                 {
  199.                         i = 1;
  200.                         Timer0_start = 0;
  201.                 }
  202.         }
  203.         CLR_Buf2();
  204. }

  205. /*******************************************************************************
  206. * 函數(shù)名 : Set_Text_Mode
  207. * 描述   : 設(shè)置短信為TEXT文本模式
  208. * 輸入   :
  209. * 輸出   :
  210. * 返回   :
  211. * 注意   :
  212. *******************************************************************************/
  213. void Set_Text_Mode(void)
  214. {
  215.         Second_AT_Command("ATE0",3);                                                                                  //取消回顯        
  216.         Second_AT_Command("AT+CMGF=1",3);                                                      //短信模式設(shè)置為TEXT
  217. }

  218. /*******************************************************************************
  219. * 函數(shù)名 : Check_Message_rec
  220. * 描述   : 檢查是否有新信息,并執(zhí)行信息內(nèi)容指令
  221. * 輸入   :
  222. * 輸出   :
  223. * 返回   :
  224. * 注意   :
  225. *******************************************************************************/

  226. void Check_New_Message(void)
  227. {
  228.         if(strstr(Uart2_Buf,"+CMT:")!=NULL)                   //若緩存字符串中含有"+CMT:"就表示有新的短信
  229.         {
  230.                
  231.                 UART1_SendString("收到新短信:\r\n");
  232.                 UART1_SendString(Uart2_Buf);                        //把模塊返回的信息原樣輸出
  233.                 if(strstr(Uart2_Buf,"led1on")!=NULL)
  234.                 {
  235.                         LED1_ON();
  236.                 }
  237.                 if(strstr(Uart2_Buf,"led1off")!=NULL)
  238.                 {
  239.                         LED1_OFF();
  240.                 }
  241.                 if(strstr(Uart2_Buf,"led2on")!=NULL)
  242.                 {
  243.                         LED2_ON();
  244.                 }
  245.                 if(strstr(Uart2_Buf,"led2off")!=NULL)
  246.                 {
  247.                         LED2_OFF();
  248.                 }
  249.                  CLR_Buf2();
  250.                  
  251.         }
  252. }

  253. /*******************************************************************************
  254. * 函數(shù)名 : Wait_CREG
  255. ……………………

  256. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
GPRS A6,A7資料.7z (10.88 MB, 下載次數(shù): 198)


評分

參與人數(shù) 2黑幣 +55 收起 理由
ssvv + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報(bào)

來自 2#
ID:288583 發(fā)表于 2018-3-27 23:03 | 只看該作者
void Second_AT_Command(char *b,char *a,u8 wait_time) 這個函數(shù)是用來干嘛的?
u8 Find(char *a)這個函數(shù)查找是否含有指定的字符串,指定的字符串是啥?
定時中斷函數(shù)在這里是用來控制什么的?
不是很理解,求解答,感謝
回復(fù)

使用道具 舉報(bào)

板凳
ID:250019 發(fā)表于 2018-2-1 08:39 | 只看該作者
非常感謝!
回復(fù)

使用道具 舉報(bào)

地板
ID:308085 發(fā)表于 2018-4-14 17:01 | 只看該作者
非常感謝!
回復(fù)

使用道具 舉報(bào)

5#
ID:330457 發(fā)表于 2018-5-15 15:15 | 只看該作者
非常感謝!!!!!!!!!!!!!!!!!!!!!!!
回復(fù)

使用道具 舉報(bào)

6#
ID:95072 發(fā)表于 2018-6-29 21:43 | 只看該作者
非常感謝
回復(fù)

使用道具 舉報(bào)

7#
ID:90353 發(fā)表于 2020-3-24 22:40 | 只看該作者
thank you very much
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人综合久久 | 欧美日韩国产三级 | 久久激情网 | 精品久久久久香蕉网 | 国产精品成人一区二区三区 | 久久久免费 | 国产日韩欧美综合 | 四色永久 | 精品国产视频 | av在线视 | 中文字幕1区2区3区 日韩在线视频免费观看 | 久久久天天 | www.日韩高清 | 成人免费在线播放视频 | 欧美三级电影在线播放 | 国产 日韩 欧美 制服 另类 | 成人免费高清 | 国产精品一区二区三区在线 | 色精品视频 | 午夜精品一区二区三区在线观看 | 免费观看www | 日韩精品a在线观看图片 | 久久精品福利 | 国产精品99久久久精品免费观看 | av在线播放网址 | a国产一区二区免费入口 | 久久综合激情 | 成人免费在线观看 | 亚洲一区二区国产 | 亚洲一区中文字幕 | www.伊人.com | 成人免费毛片在线观看 | 毛片免费观看 | 国产成人精品一区二区三 | 日韩日韩日韩日韩日韩日韩日韩 | 久久99网| 亚洲欧美日韩国产综合 | 最近最新中文字幕 | 欧美在线亚洲 | 深爱激情综合 | 桃色五月 |