找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32F4 GSM800C模块资料及程序源码

[复制链接]
跳转到指定楼层
楼主
STM32F4 GSM800-C模块芯片资料及程序源码
实验器材:
    阿波罗STM32F429开发板
   
实验目的:
    学习ATK-SIM800C GSM模块的使用,学会短信收发、电话、GPRS、蓝牙通信等功能.
   
硬件资源:
    1,DS0(连接在PB1)
    2,串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面)
    3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模块(通过FSMC驱动,FSMC_NE1接LCD片选/A18接RS),或者RGB接口的4.3/7寸液晶屏      
    4,按键KEY0(PH3)/KEY1(PH2)/KEY2(PC13)/KEY_UP(PA0,也称之为WK_UP)
    5,SD卡,通过SDIO(SDIO_D0~D3(PC8~PC11),SDIO_SCK(PC12),SDIO_CMD(PD2))连接
    6,W25Q256(SPI FLASH芯片,连接在SPI5上)
    7,24C02
    9,ATK-SIM800C GSM模块1个,杜邦线3根/直连RS232线一条(一公一母).
   
    ATK-SIM800C模块与开发板连接方式1(通过3根杜邦线连接):
    ATK-SIM800C          STM32开发板
         STXD<------------>PB11(RX)
         SRXD<------------>PB10(TX)
         GND<------------>GND
            
    ATK-SIM800C模块与开发板连接方式2(通过RS232串口线连接):
    ATK-SIM800C          STM32开发板
        RS232_COM<------------>COM3   

实验现象:   
    本实验功能简介:本实验用于测试ATK-SIM800C 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-SIM800C模块之间实验,电脑端需要一个软件:
    网络调试助手,来实现和模块的TCP/UDP数据通信测试。

        4,蓝牙测试—通过先按KEY_2按键,然后按KEY0进入此项测试。此项测试又包含2个子项:发起配对请求和
        接收配对请求模式的通信,按KEY2进入发起配对请求,然后通过扫描搜索到手机设备,建立连接后,手机端
        打开蓝牙调试助手与模块再一次进行spp连接,然后手机看到模块发送的数据,屏幕也显示手机端发送过来的
        数据。按KEY0进入接收配对请求模式,手机端连接搜索到模块设备,然后进行连接,spp的连接和数据通信和
        前面的效果一样。


注意事项:
    1,4.3寸和7寸屏需要比较大电流,USB供电可能不足,请用外部电源适配器(推荐外接12V 1A电源).
    2,本例程在LCD_Init函数里面(在ILI93xx.c),用到了printf,如果不初始化串口1,将导致液晶无法显示!!
    3,字库更新时,需自备标准SD卡一张(即大卡,也可以用TF卡+卡套).
    4,字库更新,需自备SD卡一个,并拷贝光盘:6,SD卡根目录文件 对应使用板子下的,里面的所有内容到SD卡根目录,然后将SD卡插到开发板.
    5,采用方式2(RS232线)连接的时候,需要用跳线帽短接:COM3_TX和PB11,COM3_RX与PB10!
    6,如果触摸屏不准,请按住KEY0不放,然后按复位,松开复位,进入触摸屏校准。此时松开KEY0,执行校准,即可对屏幕进行校准。
    7,该实验请自备:移动/联通GSM SIM卡一张(并开通GPRS)、耳机(带麦)一副、直流电源1个(电流要足够,5V/2A或12V/1A)  
    8,ATK-SIM800C模块,在按电源开关后,会亮电源灯,
        若PKEY与VBAT跳线帽连接,则模块自动开机
        若PKEY与VBAT跳线帽没有连接,则需长按PWR_KEY开机!!开机后,红色的NET会闪烁  
    9,本例程的详细说明,见光盘:9,增值资料\1,ALIENTEK 产品资料\4,ATK-SIM800C 模块\ATK-SIM800C模块使用说明(阿波罗F429)_AN1604E.pdf



单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"  
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "key.h"
  7. #include "usmart.h"   
  8. #include "sdram.h"   
  9. #include "malloc.h"
  10. #include "w25qxx.h"   
  11. #include "sdio_sdcard.h"
  12. #include "ff.h"  
  13. #include "exfuns.h"
  14. #include "fontupd.h"
  15. #include "text.h"        
  16. #include "touch.h"        
  17. #include "usart3.h"
  18. #include "sim800c.h"

  19. //ALIENTEK 阿波罗STM32F429开发板 扩展实验17
  20. //ATK-SIM800C GSM/GPRS模块测试实验
  21.   
  22. int main(void)
  23. {     
  24.         u8 key,fontok=0;                  
  25.         Stm32_Clock_Init(360,25,2,8);        //设置时钟,180Mhz
  26.         delay_init(180);                                 //初始化延时函数
  27.         uart_init(90,115200);                         //初始化串口1波特率为115200
  28.         usart3_init(45,115200);                         //初始化串口3波特率为115200  
  29.         usmart_dev.init(90);                 //初始化USMART
  30.         LED_Init();                                                 //初始化与LED连接的硬件接口
  31.         SDRAM_Init();                                         //初始化SDRAM
  32.         LCD_Init();                                                 //初始化LCD
  33.         KEY_Init();                                                 //初始化按键
  34.         W25QXX_Init();                                         //初始化W25Q256
  35.         tp_dev.init();                                         //初始化触摸屏
  36.         my_mem_init(SRAMIN);                         //初始化内部内存池
  37.         my_mem_init(SRAMEX);                         //初始化外部内存池
  38.         my_mem_init(SRAMCCM);                         //初始化CCM内存池
  39.         exfuns_init();                                         //为fatfs相关变量申请内存  
  40.         f_mount(fs[0],"0:",1);                          //挂载SD卡
  41.         f_mount(fs[1],"1:",1);                          //挂载FLASH.
  42.         key=KEY_Scan(0);  
  43.         if(key==KEY0_PRES)                             //强制校准
  44.         {
  45.                 LCD_Clear(WHITE);                     //清屏
  46.                 TP_Adjust();                               //屏幕校准
  47.                 TP_Save_Adjdata();         
  48.                 LCD_Clear(WHITE);                    //清屏
  49.         }
  50.         fontok=font_init();                             //检查字库是否OK
  51.         if(fontok||key==KEY1_PRES)           //需要更新字库                                 
  52.         {
  53.                 LCD_Clear(WHITE);                                //清屏
  54.                 POINT_COLOR=RED;                             //设置字体为红色                                
  55.                 LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
  56.                 while(SD_Init())                             //检测SD卡
  57.                 {
  58.                         LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
  59.                         delay_ms(200);
  60.                         LCD_Fill(60,70,200+60,70+16,WHITE);
  61.                         delay_ms(200);                    
  62.                 }                                                                                                                     
  63.                 LCD_ShowString(60,70,200,16,16,"SD Card OK");
  64.                 LCD_ShowString(60,90,200,16,16,"Font Updating...");
  65.                 key=update_font(20,110,16,"0:"); //从SD卡更新
  66.                 while(key)                       //更新失败               
  67.                 {                                            
  68.                         LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
  69.                         delay_ms(200);
  70.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  71.                         delay_ms(200);                       
  72.                 }                  
  73.                 LCD_ShowString(60,110,200,16,16,"Font Update Success!");
  74.                 delay_ms(1500);        
  75.                 LCD_Clear(WHITE);                //清屏               
  76.         }
  77.         sim800c_test();                      //GSM测试
  78. }
复制代码

所有资料51hei提供下载:
(寄存器版本,适合阿波罗STM32F429开发板)扩展实验17 ATK-SIM800C GSM模块实验.7z (1.45 MB, 下载次数: 41)


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

使用道具 举报

沙发
ID:269143 发表于 2017-12-31 09:52 | 只看该作者
请问是4G通信吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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