sx1278组网-子设备

本文档是嵌入式系统中的主函数`main.c`,主要负责初始化各种外设如ADC、DHT11温湿度传感器、LED、UART、继电器等,并进行数据读取与显示。程序还包括了风媒电子的LOGO显示和温湿度、光照强度数据显示。同时,根据设备参数控制继电器状态,并周期性更新显示。
摘要由CSDN通过智能技术生成

mainc.c

/******************************************************************
 * 文件:main.c
 * 功能:主函数入口
 * 日期:2018-02-16
 * 作者:zx
 * 版本:Ver.1.0 | 最初版本
 * 官博:http://fengmeitech.club
 * Copyright (C) 2017 zx. All rights reserved.
*******************************************************************/

#include "DELAY/Delay.h"
#include "ADC/ADC.h"
#include "DHT11/DHT11.h"
#include "LED/LED.h"
#include "UART/uart.h"
#include "RELAY/Relay.h"
#include "IIC/IIC.h"
#include "OLED/OLED.h"
#include "SPIx/SPIx.h"
#include "SX1278/SX1278.h"
#include "NodeBus.h"

DeviceBlock DeviceBlock_Structure;
unsigned char Ackbuffer1[9];
int main(void)
{
	u8 i = 0,j = 0;
	u16 cache;

	/*初始化各外设*/ 
    initSysTick();  
	initADC();
	initUART();
    initDHT11();
	initLED();
	initRelay();
	initIIC();
	
    initOLED();

    initSPIx(SPI2);
    initSX1278();

	formatScreen(0x00);
    for(i=0;i<=128;i+=2)  //风媒电子LOGO从左向右动态显示
    {
	    showImage(0,0,i,8,FM_LOGO_ENUM);
    }
	formatScreen(0x00);

    showCNString(32,0,"风媒电子",FONT_16_CN);
	showString(0,2,"Hum :",FONT_16_EN);
	showString(0,4,"Temp:",FONT_16_EN);
    showString(0,6,"Lux :",FONT_16_EN);

    while (1)
    {
		if(++j==10)
		{
			j = 0;
		 	cache = readDHT11();  //获取温湿度
		 } 
		
		 DeviceBlock_Structure.Temperature = cache&0x00FF;
		 DeviceBlock_Structure.Humidity = cache>>8;
         DeviceBlock_Structure.Lux = getConvValueAve(10,1000);	  
		 
		 processMasterAsk(&DeviceBlock_Structure);//处理指令任务
		 
         /*根据设备块参数设置继电器状态*/
		 if(DeviceBlock_Structure.Coils&0x01)
		 {
			 setRelay(RELAY1,RELAY_CLOSE);
		 }else  
		 {
			 setRelay(RELAY1,RELAY_OPEN);
		 }
		 
		 if(DeviceBlock_Structure.Coils&0x02)
		 {
			 setRelay(RELAY2,RELAY_CLOSE);
		 }else 
		 {
			 setRelay(RELAY2,RELAY_OPEN);
		 }

         /*显示传感器数据*/
         showNumber(40,2,DeviceBlock_Structure.Humidity,DEC,3,FONT_16_EN);
         showNumber(40,4,DeviceBlock_Structure.Temperature,DEC,3,FONT_16_EN);
         showNumber(40,6,DeviceBlock_Structure.Lux,DEC,4,FONT_16_EN);           

		 toggleLED();
         Delay_ms(100);		
    }
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值