找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6099|回復(fù): 1
收起左側(cè)

STM32F4 GSM800C模塊資料及程序源碼

[復(fù)制鏈接]
ID:227045 發(fā)表于 2017-12-26 18:57 | 顯示全部樓層 |閱讀模式
STM32F4 GSM800-C模塊芯片資料及程序源碼
實(shí)驗(yàn)器材:
    阿波羅STM32F429開發(fā)板
   
實(shí)驗(yàn)?zāi)康?
    學(xué)習(xí)ATK-SIM800C GSM模塊的使用,學(xué)會(huì)短信收發(fā)、電話、GPRS、藍(lán)牙通信等功能.
   
硬件資源:
    1,DS0(連接在PB1)
    2,串口1(波特率:115200,PA9/PA10連接在板載USB轉(zhuǎn)串口芯片CH340上面)
    3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模塊(通過FSMC驅(qū)動(dòng),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個(gè),杜邦線3根/直連RS232線一條(一公一母).
   
    ATK-SIM800C模塊與開發(fā)板連接方式1(通過3根杜邦線連接):
    ATK-SIM800C          STM32開發(fā)板
         STXD<------------>PB11(RX)
         SRXD<------------>PB10(TX)
         GND<------------>GND
            
    ATK-SIM800C模塊與開發(fā)板連接方式2(通過RS232串口線連接):
    ATK-SIM800C          STM32開發(fā)板
        RS232_COM<------------>COM3   

實(shí)驗(yàn)現(xiàn)象:   
    本實(shí)驗(yàn)功能簡介:本實(shí)驗(yàn)用于測試ATK-SIM800C GSM/GPRS模塊,總共包括四大項(xiàng)測試:
   
    1,撥號測試—通過按KEY0按鍵進(jìn)入此項(xiàng)測試。進(jìn)入測試后,屏幕將虛擬一個(gè)鍵盤,通過鍵盤輸入電話號碼
    ,即可進(jìn)行撥號。如果有電話打進(jìn)來,則會(huì)顯示來電號碼,并可以通過鍵盤實(shí)現(xiàn)來電接聽。

    2,短信測試—通過按KEY1按鍵進(jìn)入此項(xiàng)測試。此項(xiàng)測試包含2個(gè)子項(xiàng):讀短信測試和發(fā)短信測試。按KEY0
    進(jìn)入讀短信測試,屏幕將顯示SIM卡當(dāng)前存儲的信息條數(shù)以及總共可以存儲的信息條數(shù),并在屏幕上虛擬一
    個(gè)鍵盤,通過鍵盤輸入,即可讀取指定條目的短信,并且語音報(bào)讀,其內(nèi)容將顯示在LCD上面。按KEY1進(jìn)入
        發(fā)短信測試,屏幕將顯示一條固定的短信內(nèi)容,并虛擬一個(gè)鍵盤,通過鍵盤輸入目標(biāo)手機(jī)號碼,即可執(zhí)行發(fā)
        送,將固定內(nèi)容的短信發(fā)送給目標(biāo)手機(jī),并帶狀態(tài)提示。

    3,GPRS測試—通過按WK_UP按鍵進(jìn)入此項(xiàng)測試。此項(xiàng)測試又包含2個(gè)子項(xiàng):TCP測試和UDP測試。默認(rèn)為TCP
    連接,通過按WK_UP按鍵,可以在TCP/UDP之間切換。此項(xiàng)測試需要輸入IP地址(要連接的目標(biāo)IP地址,必
    須為公網(wǎng)IP),端口號固定為:8086。在設(shè)定好連接方式和IP地址之后,即可進(jìn)行連接,連接成功后,則
    可以和目標(biāo)進(jìn)行GPRS數(shù)據(jù)通信。本測試,我們在電腦和ATK-SIM800C模塊之間實(shí)驗(yàn),電腦端需要一個(gè)軟件:
    網(wǎng)絡(luò)調(diào)試助手,來實(shí)現(xiàn)和模塊的TCP/UDP數(shù)據(jù)通信測試。

        4,藍(lán)牙測試—通過先按KEY_2按鍵,然后按KEY0進(jìn)入此項(xiàng)測試。此項(xiàng)測試又包含2個(gè)子項(xiàng):發(fā)起配對請求和
        接收配對請求模式的通信,按KEY2進(jìn)入發(fā)起配對請求,然后通過掃描搜索到手機(jī)設(shè)備,建立連接后,手機(jī)端
        打開藍(lán)牙調(diào)試助手與模塊再一次進(jìn)行spp連接,然后手機(jī)看到模塊發(fā)送的數(shù)據(jù),屏幕也顯示手機(jī)端發(fā)送過來的
        數(shù)據(jù)。按KEY0進(jìn)入接收配對請求模式,手機(jī)端連接搜索到模塊設(shè)備,然后進(jìn)行連接,spp的連接和數(shù)據(jù)通信和
        前面的效果一樣。


注意事項(xiàng):
    1,4.3寸和7寸屏需要比較大電流,USB供電可能不足,請用外部電源適配器(推薦外接12V 1A電源).
    2,本例程在LCD_Init函數(shù)里面(在ILI93xx.c),用到了printf,如果不初始化串口1,將導(dǎo)致液晶無法顯示!!
    3,字庫更新時(shí),需自備標(biāo)準(zhǔn)SD卡一張(即大卡,也可以用TF卡+卡套).
    4,字庫更新,需自備SD卡一個(gè),并拷貝光盤:6,SD卡根目錄文件 對應(yīng)使用板子下的,里面的所有內(nèi)容到SD卡根目錄,然后將SD卡插到開發(fā)板.
    5,采用方式2(RS232線)連接的時(shí)候,需要用跳線帽短接:COM3_TX和PB11,COM3_RX與PB10!
    6,如果觸摸屏不準(zhǔn),請按住KEY0不放,然后按復(fù)位,松開復(fù)位,進(jìn)入觸摸屏校準(zhǔn)。此時(shí)松開KEY0,執(zhí)行校準(zhǔn),即可對屏幕進(jìn)行校準(zhǔn)。
    7,該實(shí)驗(yàn)請自備:移動(dòng)/聯(lián)通GSM SIM卡一張(并開通GPRS)、耳機(jī)(帶麥)一副、直流電源1個(gè)(電流要足夠,5V/2A或12V/1A)  
    8,ATK-SIM800C模塊,在按電源開關(guān)后,會(huì)亮電源燈,
        若PKEY與VBAT跳線帽連接,則模塊自動(dòng)開機(jī)
        若PKEY與VBAT跳線帽沒有連接,則需長按PWR_KEY開機(jī)。¢_機(jī)后,紅色的NET會(huì)閃爍  
    9,本例程的詳細(xì)說明,見光盤:9,增值資料\1,ALIENTEK 產(chǎn)品資料\4,ATK-SIM800C 模塊\ATK-SIM800C模塊使用說明(阿波羅F429)_AN1604E.pdf

0.png

單片機(jī)源程序如下:
  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開發(fā)板 擴(kuò)展實(shí)驗(yàn)17
  20. //ATK-SIM800C GSM/GPRS模塊測試實(shí)驗(yàn)
  21.   
  22. int main(void)
  23. {     
  24.         u8 key,fontok=0;                  
  25.         Stm32_Clock_Init(360,25,2,8);        //設(shè)置時(shí)鐘,180Mhz
  26.         delay_init(180);                                 //初始化延時(shí)函數(shù)
  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);                         //初始化內(nèi)部內(nèi)存池
  37.         my_mem_init(SRAMEX);                         //初始化外部內(nèi)存池
  38.         my_mem_init(SRAMCCM);                         //初始化CCM內(nèi)存池
  39.         exfuns_init();                                         //為fatfs相關(guān)變量申請內(nèi)存  
  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)                             //強(qiáng)制校準(zhǔn)
  44.         {
  45.                 LCD_Clear(WHITE);                     //清屏
  46.                 TP_Adjust();                               //屏幕校準(zhǔn)
  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;                             //設(shè)置字體為紅色                                
  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. }
復(fù)制代碼

所有資料51hei提供下載:
(寄存器版本,適合阿波羅STM32F429開發(fā)板)擴(kuò)展實(shí)驗(yàn)17 ATK-SIM800C GSM模塊實(shí)驗(yàn).7z (1.45 MB, 下載次數(shù): 41)


回復(fù)

使用道具 舉報(bào)

ID:269143 發(fā)表于 2017-12-31 09:52 | 顯示全部樓層
請問是4G通信嗎?
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表