對使用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)
2020-4-20 14:00 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|