找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2570|回复: 1
打印 上一主题 下一主题
收起左侧

使用STC15L驱动A6 GSM/GPRS模块

[复制链接]
跳转到指定楼层
楼主


全部资料下载地址:
A6驱动实例.rar (29.24 KB, 下载次数: 35)




  1. void main(void)
  2. {        
  3.     u8 key_press=-1;
  4.         u8 i=0;        
  5.         u8  bClearScreen=0;
  6.         u8  bCldStart=0;
  7.         u8 count_s5,count_s10=0;

  8.         gpio_init();

  9.         relay_init();
  10.         beep_init();  

  11.         delay_ms(1000);
  12.         beep_on_ms(3000);
  13.         
  14.         Init_ST7567_LCD();

  15.         clear_screen(0x00);
  16.         displayStringWidthScreenPos(0,0,"sys start...");                          

  17.         led_rgb_blink(3,50);

  18.         USART_Configuration(USART1);                 
  19.         displayStringWidthScreenPos(2,0,"uart1 start OK");        

  20.         //delay_ms(1000);
  21.         USART_Configuration(USART2);
  22.         displayStringWidthScreenPos(4,0,"uart2 start OK");
  23.         //delay_ms(1000);

  24.         //a6_module_init();//模块初始化开机
  25.         a6_module_reset();

  26.         delay_ms(1000);
  27.         
  28.         displayStringWidthScreenPos(6,0,"A6  start   OK");        

  29.         key_board_init();

  30.         delay_ms(1000);               
  31.         clear_screen(0x00);        
  32.         displayStringWidthScreenPos(0,0,"kb start   OK");
  33.         
  34.         led_rgb_init();               
  35.         displayStringWidthScreenPos(2,0,"Led start   OK");        
  36.         
  37.         displayStringWidthScreenPos(4,0,"AiCld start.");  
  38.                
  39.         //display_dial_pic(1);        

  40.         //初始化保存号码的内存
  41.     for(i=0;i<PHONE_NUMBER_MAX_LENGTH;i++)
  42.         {
  43.            phone_number[i]=0;            
  44.         }
  45.         phone_number_len=0;               

  46.         //SendString(USART1,"scan_kb start \r\n");

  47.         send_at_cmd("AT\r\n",1);
  48.         send_at_cmd("ATE0 \r\n",0);               
  49.         
  50.         if(networkIsReg==1)
  51.         {
  52.             displayStringWidthScreenPos(4,0,"AiCld start..");
  53.                 send_aicloud_at();                                                                        
  54.                 displayStringWidthScreenPos(4,0,"AiCld start...");  
  55.         }
  56.         else
  57.         {
  58.                 SendString(USART1,"newwork is not register\r\n");
  59.         }

  60.         //displayStringWidthScreenPos(6,0,"");                                                

  61.         count_s5=0;
  62.         count_s10=0;
  63.         while(1)
  64.         {
  65.                   key_press=scan_kb();
  66.                                                    
  67.                 if(key_press !=  KB_VAL_NULL)
  68.                 {
  69.                    if(!bClearScreen)
  70.                    {
  71.                               clear_screen(0x00);
  72.                            bClearScreen=1;
  73.                    }

  74.                   if(key_press==KB_VAL_SMS)
  75.                   {                              
  76.                           displayStringWidthScreenPos(6,0,"Send SMS.....");
  77.                       phone_number[phone_number_len]=0;
  78.                       send_sms_at(phone_number);                          
  79.                           displayStringWidthScreenPos(6,0,"              ");                        
  80.                   }                                                                 
  81.                   else if(key_press==KB_VAL_DIAL)
  82.                   {         
  83.                      dialPressNumber++;
  84.                          if(dialPressNumber >4)
  85.                          {//长按dial键相当于删除
  86.                        inputBackspace();

  87.                            if(phone_number_len>0)
  88.                            {
  89.                               phone_number_len--;
  90.                            }
  91.                            phone_number[phone_number_len]=0;
  92.                            }                                
  93.                   }
  94.                   else
  95.                   {                    
  96.                     inputChar(key_press);
  97.                         
  98.                         phone_number[phone_number_len]=(u8)key_press;
  99.                         if(phone_number_len<PHONE_NUMBER_MAX_LENGTH)
  100.                         {
  101.                           phone_number_len++;                        
  102.                         }                        
  103.                   }
  104.                 }
  105.                 else
  106.                 {
  107.                   if(dialPressNumber>0 && dialPressNumber<=4)
  108.                    {//短按是拨号                                            
  109.                           phone_number[phone_number_len]=0;
  110.                          if(sendAtCmdNo==4)
  111.                          {//正在拨号,执行挂断命令
  112.                                  //display_dial_pic(0);
  113.                                 displayStringWidthScreenPos(6,0,"            ");
  114.                                 send_at_cmd("ATH\r\n",5);
  115.                                 sendAtCmdNo=0;
  116.                          }
  117.                          else
  118.                          {//显示拨号提示
  119.                                 //display_dial_pic(1);
  120.                                 displayStringWidthScreenPos(6,0,"Dial......");
  121.                                 send_dial_at(phone_number);
  122.                                 displayStringWidthScreenPos(6,0,"           ");
  123.                                  //phone_number_len=0;
  124.                          }                           
  125.                    }

  126.                    dialPressNumber=0;
  127.                   
  128.                    if(count_s5>20)//5秒种计时器
  129.                    {
  130.                        if(networkIsReg!=1)
  131.                            {
  132.                                  send_at_cmd("AT+CREG? \r\n",0);
  133.                            }
  134.                        if(cld_is_connect()!=AT_CMD_SUCCESS && networkIsReg==1)
  135.                            {
  136.                               SendString(USART1,"Start AiCloud Connect\r\n" ) ;

  137.                                   displayStringWidthScreenPos(4,0,"AiCld start.  ");  
  138.                               send_aicloud_at();                                 
  139.                            }

  140.                            count_s5=0;
  141.                    }

  142.                    if(count_s10>40)//10秒种计时器
  143.                    {                     
  144.                            count_s10=0;
  145.                    }
  146.                 }        
  147.         
  148.                 delay_ms(200);
  149.                 count_s5++;
  150.                 count_s10++;
  151.         }  
  152. }
复制代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:117930 发表于 2017-6-28 22:23 | 只看该作者
谢谢  值得借鉴 程序的设计很规范 学习中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表