本实验功能简介:本实验用于测试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
|