找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

STM32驅(qū)動(dòng)無線WIFI模塊ESP8266的學(xué)習(xí)心得

  [復(fù)制鏈接]
ID:324568 發(fā)表于 2018-5-8 14:15 | 顯示全部樓層 |閱讀模式
作為一個(gè)大學(xué)生,我學(xué)過51之后,覺得這是一款很經(jīng)典的單片機(jī)。但畢竟51作為8位單片機(jī),功能還是有局限性,然后我著手學(xué)stm32單片機(jī),我做的第一個(gè)就是基于wifi模塊的led燈系統(tǒng)。首先,作為新手,我買的是STM32F103ZE開發(fā)板,然后客服送我一個(gè)wifi模塊和資料。資料包括wifi模塊esp8266的學(xué)習(xí)資料和stm32的資料。然后我對(duì)著資料,開始學(xué)習(xí),這里只簡(jiǎn)單介紹esp8266的使用。
開發(fā)板上的有接口可以直接插上esp8266, 圖片1.png 在客服給的stm32資料里面搭建好keil5開發(fā)環(huán)境。在esp8266的資料里面有單片機(jī)和手機(jī)傳輸數(shù)據(jù)的歷程,將歷程下載到開發(fā)板里面,還要一個(gè)手機(jī)app 圖片2.png ,都在資料包里面,安裝到手機(jī)上面,然后修改一下代碼,設(shè)置為傳輸數(shù)據(jù)為“open”led燈開,傳輸數(shù)據(jù)為“close”led燈關(guān)。 圖片3.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 "malloc.h"
  9. #include "sdio_sdcard.h"  
  10. #include "w25qxx.h"   
  11. #include "ff.h"  
  12. #include "exfuns.h"   
  13. #include "text.h"
  14. #include "usart3.h"
  15. #include "touch.h"
  16. #include "common.h"


  17. int main(void)
  18. {
  19.         u8 key,fontok=0;
  20.            Stm32_Clock_Init(9);        //系統(tǒng)時(shí)鐘設(shè)置
  21.         delay_init(72);                        //延時(shí)初始化
  22.         uart_init(72,115200);         //串口1初始化
  23.         usart3_init(36,115200);  //串口3初始化
  24.         LCD_Init();                                //初始化液晶
  25.         LED_Init();                 //LED初始化        
  26.         KEY_Init();                                //按鍵初始化         
  27.         usmart_dev.init(72);        //usmart初始化       
  28.         TP_Init();                                //初始化觸摸屏
  29.         my_mem_init(SRAMIN);                //初始化內(nèi)部?jī)?nèi)存池            
  30.         exfuns_init();                        //為fatfs相關(guān)變量申請(qǐng)內(nèi)存  
  31.   f_mount(fs[0],"0:",1);                 //掛載SD卡
  32.         f_mount(fs[1],"1:",1);                 //掛載FLASH.
  33.         key=KEY_Scan(0);  
  34.         if(key==KEY0_PRES)                //強(qiáng)制校準(zhǔn)
  35.         {
  36.                 LCD_Clear(WHITE);        //清屏
  37.                 TP_Adjust();                  //屏幕校準(zhǔn)
  38.                 TP_Save_Adjdata();          
  39.                 LCD_Clear(WHITE);        //清屏
  40.         }
  41.         fontok=font_init();                //檢查字庫是否OK
  42.         if(fontok||key==KEY1_PRES)//需要更新字庫                                 
  43.         {
  44.                 LCD_Clear(WHITE);                           //清屏
  45.                 POINT_COLOR=RED;                        //設(shè)置字體為紅色                                
  46.                 LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
  47.                 while(SD_Init())                //檢測(cè)SD卡
  48.                 {
  49.                         LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
  50.                         delay_ms(200);
  51.                         LCD_Fill(60,70,200+60,70+16,WHITE);
  52.                         delay_ms(200);                    
  53.                 }                                                                                                                     
  54.                 LCD_ShowString(60,70,200,16,16,"SD Card OK");
  55.                 LCD_ShowString(60,90,200,16,16,"Font Updating...");
  56.                 key=update_font(20,110,16,"0:");//從SD卡更新
  57.                 while(key)//更新失敗               
  58.                 {                                           
  59.                         LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
  60.                         delay_ms(200);
  61.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  62.                         delay_ms(200);                       
  63.                 }                   
  64.                 LCD_ShowString(60,110,200,16,16,"Font Update Success!");
  65.                 delay_ms(1500);       
  66.                 LCD_Clear(WHITE);        //清屏               
  67.         }  
  68.         atk_8266_test();                //進(jìn)入ATK_ESP8266測(cè)試
  69. }

復(fù)制代碼

所有資料51hei提供下載:
(寄存器版本,適合戰(zhàn)艦V3和精英STM32開發(fā)板)擴(kuò)展實(shí)驗(yàn)13 ATK-ESP8266 WIFI模塊測(cè)試實(shí)驗(yàn).rar (1.64 MB, 下載次數(shù): 320)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:425686 發(fā)表于 2018-11-16 17:28 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:483888 發(fā)表于 2019-3-17 14:36 | 顯示全部樓層
樓主調(diào)用memcmp函數(shù)是不是要添加個(gè)<string.h>頭文件,可是我添加了之后memcmp函數(shù)還是調(diào)用不了呢
回復(fù)

使用道具 舉報(bào)

ID:613112 發(fā)表于 2019-9-18 16:18 | 顯示全部樓層
我有stm32的那個(gè)keil5,但是上傳不了,你可以去正點(diǎn)原子下
openedv點(diǎn)com/thread-13912-1-1.html
回復(fù)

使用道具 舉報(bào)

ID:589232 發(fā)表于 2019-10-3 14:30 | 顯示全部樓層
修改哪里
回復(fù)

使用道具 舉報(bào)

ID:687726 發(fā)表于 2021-5-26 14:20 | 顯示全部樓層
直接將源碼下到板子里就能用嘛?還需要對(duì)ESP8266進(jìn)行AT指令設(shè)置嘛?
回復(fù)

使用道具 舉報(bào)

ID:422924 發(fā)表于 2021-5-27 23:50 | 顯示全部樓層
感謝樓主,需要用,先收藏了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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