久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7862|回復: 11
收起左側

STC15F2K60S2+esp8266 ,手機app控制LED

  [復制鏈接]
ID:355489 發表于 2018-6-23 13:14 | 顯示全部樓層 |閱讀模式
單片機是我的業余愛好

準備工作:
單片機:德飛萊STC15F2K60S2板子,Esp8266 WIfi模
手機App:華為官網上下載 易友調試助手。
C程序開發工具:Keil uVision3
單片機程序燒制及串口助手:stc-isp-15xx-v6.82E

圖 2

圖 2
圖 2

經過幾個晚上終于調通了,在調試過程中主要有以下問題:
1、硬件連接問題,如下圖1 ,這個圖可以在串口調試的時候有用,但如果你是用STC15F2K60S2單片機與esp8266調試需要將TX,RX反接,可能是因為我用ESP8266作為服務端導致的,若有大神了解,望不吝賜教。
2、 網上資料因各自硬件不同,所以對c程序調試會碰到各種問題,主要在串口聯接及通信上問題多。


       (圖1)      

步驟:
1 測試串口與手機app的連接
將ESP8266與單片機模塊按圖1連接, 將單片機與電腦用USB連接,如圖 2 打開串口
在發送緩沖區依次輸入以下命令并點發送按鈕。
AT+RST  復位模塊,成功后返回ready
AT+CIPMODE=1  設為station模式
AT+CWLAP  顯示無線列表
AT+CWJAP="TP-LINK_0728","xxx"  加入無線網絡  xxx-為你給路由設置的密碼。


設置ESP8266為服務端
AT+CIPMUX=1  模塊作為服務器時,可以被多個客戶端連接,若作為客戶端時,可以連接多個服務器。
AT+CIPSERVER=1,333  333為服務器端口
AT+CIFSR  查找服務端ip, 手機app作為客戶端連接服務器需要 服務端IP,端口。

打開手機app, 將協議類型設置 為TCP client, 服務器IP為上一步查詢結果,端口為333點擊連接后,就可以測試了。

2 、單生機連接esp8266與手機通信。
a  將如下c源碼用開發工具編譯好。
b 將程序燒錄到單片機,燒錄時要斷開ESP8266 的TX,RX連接,否則燒錄不成功。
c 燒錄完成后,將上圖的TX,RX反接到單片機上。
4測試

C程序:
#include <reg52.h>                       //包含頭文件
#define uint unsigned int
#define uchar unsigned char
#define RELOAD_COUNT 0xFA         //宏定義波特率發生器的載入值
#define MAIN_Fosc                22118400L        //定義主時鐘       
#define        BaudRate1                115200UL        //選擇波特率
#define receive_max 20          //串口接收緩沖長度   
#define        Timer1_Reload        (65536UL -(MAIN_Fosc / 4 / BaudRate1))                //Timer 1 重裝值, 對應300KHZ
#define        Timer2_Reload        (65536UL -(MAIN_Fosc / 4 / BaudRate1))        //Timer 2 重裝值, 對應300KHZ
typedef  unsigned char u8;


/*****************LED燈對應P0口的1個端口*************/
sbit LED0=P3^7;
/************波特率發生器相關功能寄存器的定義****************/
sfr AUXR=0x8E;
sfr BRT=0x9C;
sfr AUXR1=0xA2;
sfr P_SW1 = 0xA2;
/*****************相關變量**************/
uchar Recive_table[receive_max];        //用于接收wifi模塊反饋到MCU上的數據
u8 receive_count=0; //接受數據的個數
/*******************************************************************
名稱:延時函數
作用:毫秒級延時,微妙級延時函數,為數據收發完成作等待.......
********************************************************************/
void ms_delay(uint t)
{
    uint i,j;
    for(i=t; i>0; i--)
        for(j=110; j>0; j--);
}
/********************************************************************
名稱:波特率發生器函數
作用:波特率發生器可以是T1定時器實現,也可以是MCU內部獨立的波特率發生器,
各自不同的載入值計算式,具體根據寄存器相關設置來參考計算,以實現
異步串行通訊。(經測試,兩種設置方式均可用,可任選一種。)
********************************************************************/
void Uart_Init()//使用定時器1作為波特率發生器
{
    SCON |= 0x40;               //8位數據
    P_SW1 &=  ~0xc0;       //UART1 使用P30 P31口  默認
    TR1 = 0;                    //關閉定時器
    TR1 = 0;                        //波特率使用Timer1產生
    AUXR &= ~0x01;                //S1 BRT Use Timer1;
    TMOD &= ~(1<<6);   //Timer1 set As Timer
    TMOD &= ~0x30;     //Timer1_16bitAutoReload;2
    AUXR |=  (1<<6);        //Timer1 set as 1T mode
    TH1 = (u8)(Timer1_Reload >> 8);
    TL1 = (u8)Timer1_Reload;
    TR1  = 1;
    PS = 1; //高優先級中斷
    REN = 1;        //允許接收
    ES  = 1;        //允許中斷
    EA = 1;                //允許全局中斷
}


//發送一字節
void sendByte(uchar b)
{   ES=0;
    SBUF = b;
    while(!TI);
    TI=0;
    ES=1;
}


//發送字符串
void sendString(uchar *s)
{
    while(*s != '\0') //字符串默認結尾'\0',以此來判斷字符串的結束
    {
        sendByte(*s++);
    }
}


/********************************************************************
名稱:WIFI模塊設置函數
作用: 啟動模塊,以便可以實現無線接入和控制
********************************************************************/
void ESP8266_Set(uchar *puf) // 數組指針*puf指向字符串數組
{
    sendString(puf);
    ms_delay(10);
    sendString("\r\n");//回車
}
/****************************************************
名稱:ESP8266發送數據函數
功能:用于與wifi模塊相連的終端發送數據
*****************************************************/
void ESP8266_Sent(uchar *puf)      // 數組指針*puf指向字符串數組
{
    ESP8266_Set("AT+CIPSEND=0,50");
    sendString(puf);
    ms_delay(10);
    sendString("\r\n");   //回車
}


/********************************************************************
名稱:主函數
作用:程序的執行入口
********************************************************************/
void main()
{
    ms_delay(50000);
    LED0=0;//關閉LED燈
    Uart_Init();//使用獨立的波特率發生器
    ms_delay(500);
    LED0=!LED0;
    ms_delay(500);
    LED0=!LED0;
    ESP8266_Set("AT+CIPMUX=1"); //啟動多連接
    ms_delay(500);
    LED0=!LED0;
    ESP8266_Set("AT+CIPSERVER=1,333");//建立server,端口為333
    ms_delay(500);
    LED0=!LED0;
    //允許串口中斷
    while(1)
    {


        if(receive_count > 0)//如果接受到數據
        {
            ms_delay(500);
            receive_count = 0;//接收計數清0


            if(Recive_table[9]=='0')
            {
                LED0=!LED0;//0 燈滅
                ms_delay(500);
                ESP8266_Sent("close");
                //  ms_delay(500);
                //        ESP8266_Sent(Recive_table);
                //         ms_delay(500);
            }
            if(Recive_table[9]=='1')
            {
                LED0=!LED0;//0 燈滅
                ms_delay(500);
                ESP8266_Sent("open");
                //  ms_delay(500);
                //        ESP8266_Sent(Recive_table);
                //         ms_delay(500);
            }
            receive_count = 0;//接收計數清0


        }
    }
}




void UART1_int (void) interrupt 4
{
    if(RI)
    {
        RI = 0;//清除接受標志
        Recive_table[receive_count] = SBUF;//將數據存入數組
        if(++receive_count > receive_max) {
            receive_count = 0;//避免溢出
        }
        if((Recive_table[receive_count-1]=='\n'))
            receive_count=0;
    }
    if(TI)
    {}
}





  



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:384334 發表于 2018-8-10 20:58 來自手機 | 顯示全部樓層
學習中,謝謝
回復

使用道具 舉報

ID:355489 發表于 2018-8-11 09:12 | 顯示全部樓層

RE: STC15F2K60S2+esp8266 ,手機app控制LED

連接圖[url=]圖片[/url]
回復

使用道具 舉報

ID:355489 發表于 2018-8-11 09:16 | 顯示全部樓層
wifi與單片機連接圖
IMG_20180811_090947.jpg
回復

使用道具 舉報

ID:387014 發表于 2018-8-21 13:39 | 顯示全部樓層
不錯呀
回復

使用道具 舉報

ID:359281 發表于 2018-8-22 14:36 | 顯示全部樓層
STC15F2K60S2+esp8266 ,手機app控制LED
回復

使用道具 舉報

ID:631878 發表于 2019-11-12 15:14 | 顯示全部樓層
你好,可以用stc89c52嗎?
回復

使用道具 舉報

ID:110278 發表于 2019-11-19 14:20 | 顯示全部樓層
很好。
回復

使用道具 舉報

ID:25310 發表于 2019-11-20 10:46 | 顯示全部樓層
我得借鑒一下了,謝謝樓主分享。
回復

使用道具 舉報

ID:560110 發表于 2020-1-15 21:56 | 顯示全部樓層

你好,可以用stc89c52嗎?
回復

使用道具 舉報

ID:686631 發表于 2020-1-16 13:26 | 顯示全部樓層
單片機起什么作用?可以省掉吧
回復

使用道具 舉報

ID:748762 發表于 2020-5-27 17:52 | 顯示全部樓層
手機APP是用易安卓做的嗎?有代碼嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美精品在线 | 亚洲精品电影在线观看 | 欧美综合一区 | 亚洲成人自拍网 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 黄色成人免费在线观看 | 色播久久 | 亚洲日本激情 | 欧美日韩中文字幕在线 | 久久精品亚洲精品国产欧美 | 久热m3u8| 亚洲一区二区三区视频在线 | 粉色午夜视频 | 99精品视频在线观看免费播放 | 日韩有码一区 | 日韩成人在线免费观看 | 国产精品日韩一区 | 国产一区二区三区高清 | 日韩天堂av | 欧美日韩一区二区三区不卡视频 | 色综合一区二区 | 精品久久久久久久久亚洲 | 国产一级成人 | 亚洲黄色高清视频 | 欧美一区免费 | 久久大 | 久久小视频 | 久久精品欧美视频 | 久久久久久久久淑女av国产精品 | 激情网站在线观看 | 欧美一级片在线观看 | 国产99视频精品免费播放照片 | 亚洲欧美国产一区二区三区 | 日本高清aⅴ毛片免费 | 精品网站999 | 国产精品美女久久久久久久久久久 | 国产乱码精品一区二区三区五月婷 | 欧美一区二区三区视频 | 久久99久久99精品免视看婷婷 | 中文字幕一区二区三区四区五区 | 久久精品国产一区二区电影 |