按键控制led

//单片机头文件
#include "stm32f10x.h"

//网络协议层
#include "onenet.h"

//网络设备
#include "esp8266.h"

//硬件驱动
#include "delay.h"
#include "led.h"
#include "beep.h"
#include "key.h"
#include "usart.h"

//C库
#include <string.h>

void Hardware_Init(void)
{
    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);    //中断控制器分组设置

    Delay_Init();                                    //systick初始化
    
    Usart1_Init(115200);                            //串口1,打印信息用
    
    Usart2_Init(115200);                            //串口2,驱动ESP8266用
    
    Led_Init();                                        //LED初始化
    
    Beep_Init();                                    //蜂鸣器初始化
    
    Key_Init();                                        //按键初始化
      
    UsartPrintf(USART_DEBUG, " Hardware init OK\r\n");
    
}


int main(void)
{
    
    unsigned short timeCount = 0;    //发送间隔变量
    
    unsigned char *dataPtr = NULL;
    
    Hardware_Init();                //初始化外围硬件
    
    ESP8266_Init();                    //初始化ESP8266
    
    while(OneNet_DevLink())            //接入OneNET
        DelayXms(500);
    
    Beep_Set(BEEP_ON);                //鸣叫提示接入成功
    DelayXms(250);
    Beep_Set(BEEP_OFF);
    
    while(1)
    {
        
        switch(Keyboard())
        {
            case KEY0DOWN:
                
                if(led_status.Led4Sta == LED_OFF)
                    Led4_Set(LED_ON);
                else
                    Led4_Set(LED_OFF);
                
            break;
            
            case KEY1DOWN:
                
                if(led_status.Led5Sta == LED_OFF)
                    Led5_Set(LED_ON);
                else
                    Led5_Set(LED_OFF);
                
            break;
            
            case KEY2DOWN:
                
                if(led_status.Led6Sta == LED_OFF)
                    Led6_Set(LED_ON);
                else
                    Led6_Set(LED_OFF);
                
            break;
            
            case KEY3DOWN:
                
                if(led_status.Led7Sta == LED_OFF)
                    Led7_Set(LED_ON);
                else
                    Led7_Set(LED_OFF);
                
            break;
            
            default:
            break;
        }
        
        if(++timeCount >= 500)                                    //发送间隔5s
        {
            UsartPrintf(USART_DEBUG, "OneNet_SendData\r\n");
            OneNet_SendData();                                    //发送数据
            
            timeCount = 0;
            ESP8266_Clear();
        }
        
        dataPtr = ESP8266_GetIPD(0);
        if(dataPtr != NULL)
            OneNet_RevPro(dataPtr);
        
        DelayXms(10);
    
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值