标题: STM32+GSM(SIM900A)模块通过服务器实现网络授时(仅供参考学习) [打印本页]

作者: qq1182560902    时间: 2020-4-20 08:36
标题: STM32+GSM(SIM900A)模块通过服务器实现网络授时(仅供参考学习)
对使用GSM模块使用有挺大参考作用,使用串口与CDNA指令完成。希望帮到大家学习

单片机源程序如下:
/**
  ******************************************************************************
  * @file    main.c
  * @author  GXNU_LPK
  * @version V1.0
  * @brief   用3.5.0版本库建的工程模板
  ******************************************************************************
  * @attention
  *
  * 实验平台: STM32F103CT6核心板
  * 实验内容:GSM(SIM900A)模块通过服务器实现网络授时
  * 备    注:Get_net_time.c这部分的代码来源于https://blog.csdn.net/ludaoyi88/article/details/51757664
  *           根据此ludaoyi123博主提供的思路和代码进行测试和修改而来,经实验测试和改善后目前已初步达到实验目的,但
  *           稳定性方面略微存在一些欠缺,请学习者自行改善,仅供学习,不得用于其他用途
  ******************************************************************************
  */
  
#include "stm32f10x.h"
#include "GSM.h"
#include "AT_Cmd.h"
#include "usart2.h"
#include "usart1.h"
#include "delay.h"
#include "string.h"
#include "rtc.h"
#include "Get_net_time.h"



/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
int main(void)
{
    u8 res;
   
    delay_init();
    Usart2_Init(115200);    //初始化串口2
    delay_ms(3);
    Usart1_Init(115200);    //初始化串口1
   
    if(RTC_Init()==0)
        printf("RTC初始化成功\r\n");
    else
        printf("RTC初始化失败\r\n");
   
    printf("初始化SIM900A中...\r\n");
   
    res=1;
    while(res)
    {
        res=GSM_Dect();
        delay_ms(2000);
    }
    res=1;
//    while(res)
//    {
//        res=SIM900A_CONNECT_SERVER_SEND_INFOR((u8*)"time.nist.gov",(u8*)"13");//连接授时服务器(国外)
//    }
//    Get_Sever_Time();//提取获取到的时间并存入STM32和GSM模块内部RTC中
    Get_GSM_RTCtime();//直接从GSM模块内部获取时间,初次上电时需要手动复位
   
    printf("\r\n系统初始化完成\r\n");
        while(1)
      {
          display_time();//显示STM32内部RTC的时间
          delay_ms(1000);
      }

   
}

全部资料51hei下载地址:
GSM通过服务器或内部网络授.7z (771.75 KB, 下载次数: 30)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1