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

標題: 互聯網遠程控制 [打印本頁]

作者: rye    時間: 2016-8-10 15:26
標題: 互聯網遠程控制
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"

#include "exti.h"
#include "ex_out.h"
#include "ex_in.h"
#include "W5500.h"
#include "net.h"
#include "value.h"
#include "fu_dhcp.h"
#include "flash.h"
#include "dht12.h"

/********************************************************************/
/* 本程序僅供學習參考,未經作者允許,不得用于任何商業用途                                  */
/* 本程序為Fuhome互聯網遠程控制終端靜系列專用程序                            */
/* 適用于硬件平臺  采用W5500+STM32F103C8T6 64K+20K                                                  */                                                                            */
/* 單片機相關配置,I/O口定義,定時器,串口,中斷等初始化函數                   */
/* 本程序用于硬件設備接入fuhome.net 平臺進行遠程控制(手機APP/微信/WEB */
/* 版本:v1.2 2016年6月30日                                                                                                        */
/* 龍劍奮斗                                                                                                                                                */
/* 定期更新,敬請關注——開放,交流,深入,進步                                                        */
/* Copyright  未來之家 實驗室,讓科技融入生活                                        */
/********************************************************************/


int main(void)
{
        U8 i=0;
        U8 Data_Have=0;//0 沒有數據 1有數據,第一次運行時寫入固定數據

         
         
         SystemInit();                          //系統時鐘初始化為72M          SYSCLK_FREQ_72MHz
        delay_init(72);             //延時函數初始化
        NVIC_Configuration();//設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
         Uart_Init(9600);                 //波特率 9600
        
          //KEY_Init();              //IO初始化
    //EXTIX_Init();
    Timerx_Init(99,7100);//定時器3延時 10ms

          Ex_in_Init();
          Ex_out_Init();
          DHT12_Init();

          //讀取工作參數
          STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)fu_temp,62);
         
                //是否需要寫入
                if(fu_temp[0]!=0xac||fu_temp[1]!=0xa2)
                {
                        //第一次需要寫入數據了
                        STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)fu_index,62);
                  //讀取工作參數
                        STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)fu_temp,62);
    }
               
                //如果不對,那說明單片機有問題,進入死循環
                if(fu_temp[0]!=0xAc||fu_temp[1]!=0xA2)
                {
                        while(1)
                        {
                                SYS=0;
                                OUT=1;
                                IN=1;
                                delay_ms(200);
                                SYS=0;
                                OUT=0;
                                IN=1;
                                delay_ms(200);
                                SYS=0;
                                OUT=0;
                                IN=0;
                                delay_ms(200);
                        }
    }
               
               
                SYS=0;
                OUT=1;
                IN=1;
                delay_ms(200);
                SYS=0;
                OUT=0;
                IN=1;
                delay_ms(200);
                SYS=0;
                OUT=0;
                IN=0;
                delay_ms(200);
                                

                //是否進入設置
                Set_Flag=Key_Scan();
                while(Set_Flag)//設置完成必須重啟才能
                {
                        SYS=0;
                        OUT=0;
                        IN=0;
                        delay_ms(500);
                        SYS=1;
                        OUT=1;
                        IN=1;
                        delay_ms(500);
                }   
               
                //分析工作模式及設置參數
                //1/IP模式 0自動獲取 1固定IP 2/工作模式 0遠控 1透傳
                 Get_IP=fu_temp[2];
                 Work_Sta=fu_temp[21];
                 Tihuan();
               

                SPI_Configuration();                //W5500 SPI初始化配置(STM32 SPI1)
    W5500_GPIO_Configuration();        //W5500 復位IO配置        
                W5500_Hardware_Reset();                //硬件復位W5500
         
          Load_All();     //子網掩碼和MAC等固定信息
               
                //自動獲取IP
                if(Get_IP==0x00)
                {
                        //裝DHCP網絡參數
                        Load_Auto();               
                 
                        W5500_Init();                  //初始化W5500寄存器函數
                        Socket_Init(0);                //指定Socket(0~7)初始化,初始化端口0 端口號
                        
                        W5500_Socket0_Set();//W5500端口0初始化配置,防止斷開連接等讓再次連接
                        SYS=1;
                        OUT=0;
                        IN=0;
                        DHCP();
                        SYS=1;
                        OUT=1;
                        IN=1;//指示已經獲取到IP
                }
                //固定IP
                else
                {
                        //裝載固定IP參數
                        Load_Keep();
                        W5500_Init();                  //初始化W5500寄存器函數
                        Socket_Init(0);                //指定Socket(0~7)初始化,初始化端口0 端口號
                        
                        W5500_Socket0_Set();//W5500端口0初始化配置,防止斷開連接等讓再次連接
                        
                        SYS=0;
                        OUT=1;
                        IN=0;
                        delay_ms(500);
                        SYS=1;
                        OUT=0;
                        IN=1;
                        delay_ms(500);
                        SYS=1;
                        OUT=1;
                        IN=1;
                }
               
  //設置本地端口7001
  Update_Port();
        Heart_Bag();

while (1)
        {
               
                        //是否進入設置
                Set_Flag=Key_Scan();
                while(Set_Flag)//設置完成必須重啟才能
                {
                        SYS=0;
                        OUT=0;
                        IN=0;
                        delay_ms(500);
                        SYS=1;
                        OUT=1;
                        IN=1;
                        delay_ms(500);
                }  
               
                W5500_Socket0_Set();//W5500端口0初始化配置,防止斷開連接等讓再次連接
                        
                W5500_Interrupt_Process();//W5500中斷處理程序,用來讀取數據

                if((S0_Data & S_RECEIVE) == S_RECEIVE)//如果Socket0接收到數據
                {
                        S0_Data&=~S_RECEIVE;
                        Process_UDP();//W5500接收并發送接收到的數據
                }
               

                //每30s心跳一次
                if( W5500_Send_Delay_Counter%3000==0)
                {
                        
                        SYS=1;//指示燈熄滅,待收到心跳包后服務器正常會亮起
                        
      Heart_Bag();        
    }
                if( W5500_Send_Delay_Counter%3500==0)//30s每次發送
                {
                        //傳感器包 0溫度 1濕度,兩次發送至少間隔5s
     Feel_bag(0);
    }
                else if( W5500_Send_Delay_Counter%4000==0)//35s每次發送
                {
                        //傳感器包 0溫度 1濕度,兩次發送至少間隔5s
     Feel_bag(1);
    }
               
                //每半個租期自動獲取一次IP
               
                if(TimerS_Counter==DHCP_Time/2)
                {
                 TimerS_Counter=0;
     DHCP();
    }
               
        

               
               
               
        }
         
        
}
         
         



作者: lmy    時間: 2016-8-19 18:53
好人啊





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久草免费在线观看 | 国产精品欧美精品 | 日韩成人在线免费观看 | 亚洲天堂偷拍 | 国产精品自拍一区 | av一二三| 日韩高清一区二区 | 中文字幕在线观看一区二区三区 | 日本一级大毛片a一 | 在线观看小视频 | 欧美在线 | 日韩激情一区二区 | 国产一区二区在线观看视频 | 国产视频一区在线 | 欧美性生交xxxxx久久久 | 91狠狠综合 | 国产一区二区福利 | 手机成人在线视频 | 中文字幕一区二区在线播放 | 欧美日韩精品 | 在线观看小视频 | 99视频在线观看免费 | 精品一区二区三区免费 | 日韩国产一区二区三区 | 日韩中文字幕一区 | av免费在线观看网站 | 精品国产一区二区三区久久久蜜月 | 福利网站在线观看 | 免费一区 | 国产又粗又猛又黄又爽无遮挡 | 三a毛片| 亚洲福利一区 | 亚洲天堂男人天堂 | 岛国精品在线播放 | 国产超碰在线 | 黄色录像一级片 | 91视频精选 | 中文字幕在线观看亚洲 | 欧美黄色片在线观看 | 91麻豆精品国产91久久久久久 | 超碰97免费 |