单片机学习小组
直播中

李杰

7年用户 1284经验值
私信 关注

STM32 GSM模块测试实验详解

本实验功能简介:本实验用于测试ATK-SIM900A GSM/GPRS模块,总共包括三大项测试:
1,拨号测试—通过按KEY0按键进入此项测试。进入测试后,屏幕将虚拟一个键盘,通过键盘输入电话号码,即可进行拨号。如果有电话打进来,则会显示来电号码,并可以通过键盘实现来电接听。

2,短信测试—通过按KEY1按键进入此项测试。此项测试包含2个子项:读短信测试和发短信测试。按KEY0进入读短信测试,屏幕将显示SIM卡当前存储的信息条数以及总共可以存储的信息条数,并在屏幕上虚拟一个键盘,通过键盘输入,即可读取指定条目的短信,其内容将显示在LCD上面。按KEY1进入发短信测试,屏幕将显示一条固定的短信内容,并虚拟一个键盘,通过键盘输入目标手机号码,即可执行发送,将固定内容的短信发送给目标手机,并带状态提示。
3,GPRS测试—通过按WK_UP按键进入此项测试。此项测试又包含2个子项:TCP测试和UDP测试。默认为TCP连接,通过按WK_UP按键,可以在TCP/UDP之间切换。此项测试需要输入IP地址(要连接的目标IP地址,必须为公网IP),端口号固定为:8086。在设定好连接方式和IP地址之后,即可进行连接,连接成功后,则可以和目标进行GPRS数据通信。本测试,我们在电脑和ATK-SIM900A模块之间实验,电脑端需要一个软件:网络调试助手,来实现和模块的TCP/UDP数据通信测试。


本实验硬件连接方式(模块与开发板):
ATK-SIM900A              ALIENTEK STM32开发板
        STXD<------------>PA3(RXD)
        SRXD<------------>PA2(TXD)
         GND<------------>GND


注意事项:
1,该实验请自备:中国移动SIM卡一张(未停机,并开通GPRS业务)、耳机(带麦克风)一副、直流稳压电源1个。
2,使用ALIENTEK MiniSTM32开发板的朋友,该实验需要更新字库(字库存放方式类似战舰板,同Mini板的方式有区别,所以需要更新),请在SD卡:SYSTEMFONT 目录下存放:UNGBK.BIN,FONT12.BIN和FONT16.BIN等三个文件.这几个文件已经存放在Mini板的本例程工程目录下,大家只需要拷贝到SD卡即可(即将:SD卡根目录文件下的SYSTEM文件夹拷贝到SD卡根目录).

  


stm32单片机源程序:
  • #include "sys.h"
  • #include "usart.h"
  • #include "delay.h"
  • #include "led.h"
  • #include "key.h"
  • #include "exti.h"
  • #include "wdg.h"
  • #include "timer.h"
  • #include "lcd.h"
  • #include "usmart.h"
  • #include "rtc.h"
  • #include "wkup.h"
  • #include "dma.h"
  • #include "24cxx.h"
  • #include "flash.h"
  • #include "touch.h"
  • #include "malloc.h"
  • #include "string.h"
  • #include "mmc_sd.h"
  • #include "ff.h"
  • #include "exfuns.h"
  • #include "fontupd.h"
  • #include "text.h"
  • #include "usart2.h"
  • #include "sim900a.h"
  • //ALIENTEK战舰STM32开发板扩展实验5
  • //ATK-SIM900A GSM/GPRS模块测试实验
  • int main(void)
  • {
  •         u8 key,fontok=0;
  •            Stm32_Clock_Init(9);        //系统时钟设置
  •         delay_init(72);                        //延时初始化
  •         uart_init(72,115200);         //串口1初始化
  •         LCD_Init();                                //初始化液晶
  •         LED_Init();                 //LED初始化
  •         KEY_Init();                                //按键初始化
  •         usmart_dev.init(72);        //usmart初始化
  •          USART2_Init(36,115200);        //初始化串口2
  •         TP_Init();                                //初始化触摸屏
  •         mem_init(SRAMIN);                //初始化内部内存池
  •          exfuns_init();                        //为fatfs相关变量申请内存
  •           f_mount(0,fs[0]);                 //挂载SD卡
  •         key=KEY_Scan(0);
  •         if(key==KEY_RIGHT)                //强制校准
  •         {
  •                 LCD_Clear(WHITE);        //清屏
  •                 TP_Adjust();                  //屏幕校准
  •                 TP_Save_Adjdata();
  •                 LCD_Clear(WHITE);        //清屏
  •         }
  •         fontok=font_init();                //检查字库是否OK
  •         if(fontok||key==KEY_DOWN)//需要更新字库
  •         {
  •                 LCD_Clear(WHITE);                           //清屏
  •                  POINT_COLOR=RED;                        //设置字体为红色
  •                 LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
  •                 while(SD_Initialize())                //检测SD卡
  •                 {
  •                         LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
  •                         delay_ms(200);
  •                         LCD_Fill(60,70,200+60,70+16,WHITE);
  •                         delay_ms(200);
  •                 }
  •                 LCD_ShowString(60,70,200,16,16,"SD Card OK");
  •                 LCD_ShowString(60,90,200,16,16,"Font Updating...");
  •                 key=update_font(20,110,16,0);//从SD卡更新
  •                 while(key)//更新失败
  •                 {
  •                         LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
  •                         delay_ms(200);
  •                         LCD_Fill(20,110,200+20,110+16,WHITE);
  •                         delay_ms(200);
  •                 }
  •                 LCD_ShowString(60,110,200,16,16,"Font Update Success!");
  •                 delay_ms(1500);
  •                 LCD_Clear(WHITE);//清屏
  •         }
  •         sim900a_test();
  • }
  • …………限于本文篇幅 余下代码请从电子发烧友下载附件…………



下载:
    扩展实验5 ATK-SIM900A GSM模块测试实验.rar  

    sim900a手册.pdf  

更多回帖

发帖
×
20
完善资料,
赚取积分