main函数功能

1. System_Init()

功能描述

系统初始化函数,负责初始化所有硬件外设和系统模块。

参数说明

无参数

返回值

无返回值

功能详解

  • NVIC中断分组:设置NVIC中断分组2,2位抢占优先级,2位响应优先级
  • 串口初始化:初始化串口1,波特率9600,用于调试和机智云通信
  • 延时初始化:初始化延时函数,提供ms级延时
  • LED初始化:初始化板载LED和硬件接口
  • DHT11初始化:初始化DHT11温湿度传感器
  • 蜂鸣器初始化:初始化蜂鸣器
  • OLED初始化:初始化OLED显示屏
  • 按键初始化:初始化按键,配置外部中断
  • ADC初始化:初始化ADC模数转换
  • RTC初始化:初始化实时时钟
  • 人体红外初始化:初始化人体红外传感器
  • 串口2初始化:初始化串口2,用于语音识别模块
  • 机智云初始化:初始化机智云平台
  • 超声波初始化:初始化超声波测距模块
  • BMP280初始化:初始化BMP280气压传感器
  • 传感器数据初始化:初始化传感器数据结构体
  • 阈值设置:设置默认阈值参数

2. main()

功能描述

主函数,程序的入口点,负责系统主循环和整体控制。

参数说明

无参数

返回值

int类型,程序返回值

功能详解

  • 系统初始化:调用System_Init()初始化所有硬件
  • 设备初始化:从统一设备列表初始化各模式设备
  • 主循环:无限循环处理系统任务
  • 数据上传:调用userHandle()处理数据上传到机智云
  • 云端数据处理:调用gizwitsHandle()处理云平台后台数据
  • 按键获取:获取按键值(1-4)
  • 语音处理:处理语音模式逻辑
  • 菜单切换:处理菜单模式切换
  • 传感器读取:读取传感器数据
  • 模式处理:根据当前模式调用相应的处理函数

3. ProcessCurrentMode()

功能描述

处理当前模式,根据S_Mode的值调用对应模式的处理函数和显示函数。

参数说明

无参数

返回值

无返回值

功能详解

  • 自动模式:调用ZhiDongMode()和ZhiDong_Display()
  • 手动模式:调用ShouDongMode()和ShouDong_Display()
  • 阈值设置:调用YuZhiSet()和YuZhiSet_Display()
  • 时间设置:调用TimeSet()和TimeSet_Display()
  • 语音模式:调用YuYingMode()和YuYingMode_Display()
  • 定时模式:调用DingShiMode()和DingShiMoShi_Display()
  • 远程模式:调用YuanCheng_Display()
  • 用户模式:调用YongHuMode()和YongHu_Display()

4. ReadSensorData()

功能描述

读取传感器数据,包括温湿度、土壤湿度、超声波距离、气压和人体感应数据。

参数说明

无参数

返回值

无返回值

功能详解

  • 温湿度读取:调用DHT11_Read_Data()读取温度和湿度
  • 土壤湿度读取:调用TS_GetData()读取土壤湿度(ADC通道0)
  • 超声波读取:调用HCSR04_GetValue()读取超声波测距值
  • 气压读取:调用BMP280GetData()读取BMP280气压数据
  • 气压保存:保存气压值到Pre变量
  • 人体感应读取:调用BODY_HW_GetData()读取人体红外感应状态

5. YongHu_Display()

功能描述

用户模式显示函数,显示当前设备状态,包括时间和前3个设备的状态。

参数说明

无参数

返回值

无返回值

功能详解

  • 清屏处理:检查清屏标志,必要时清屏
  • 时间显示:调用TimeRead(4)读取并显示时间
  • 模式标题:显示"手动"模式标题
  • 设备显示:显示前3个设备的名称和状态
  • 状态显示:显示每个设备的ON/OFF状态

6. YongHuMode()

功能描述

用户模式处理函数,同时支持手动控制和远程/语音模式的设备控制。

参数说明

无参数

返回值

无返回值

功能详解

  • 手动控制:
    • 按键2切换设备
    • 按键3开启设备
    • 按键4关闭设备
  • 远程控制:
    • 根据机智云平台远程状态同步控制设备
    • 检查远程状态标志
    • 同步开启设备状态
  • 语音控制:
    • 根据语音命令状态控制设备
    • 检查语音状态标志
    • 同步开启设备状态

7. YuanCheng_Display()

功能描述

远程模式显示函数,根据设备数量自动选择单栏或双栏显示布局。

参数说明

无参数

返回值

无返回值

功能详解

  • 清屏处理:检查清屏标志,必要时清屏
  • 时间显示:调用TimeRead(4)读取并显示时间
  • 模式标题:显示"远程"模式标题
  • 布局选择:根据设备数量选择单栏或双栏显示
  • 设备显示:显示所有远程设备的名称和状态
  • 状态显示:显示每个设备的ON/OFF状态

8. ShouDongMode()

功能描述

手动模式控制函数,通过按键2切换设备,按键3开启,按键4关闭。

参数说明

无参数

返回值

无返回值

功能详解

  • 按键2:切换选中设备(自动循环设备列表)
  • 按键3:开启当前选中设备
  • 按键4:关闭当前选中设备
  • 清屏标志:切换设备时设置清屏标志

9. ShouDong_Display()

功能描述

手动模式显示函数,分页显示设备列表,当前选中设备高亮显示。

参数说明

无参数

返回值

无返回值

功能详解

  • 清屏处理:检查清屏标志,必要时清屏
  • 时间显示:调用TimeRead(4)读取并显示时间
  • 模式标题:显示"手动"模式标题
  • 分页显示:每页显示3个设备
  • 选中指示:当前选中设备用">>"标记
  • 设备显示:显示设备名称和状态
  • 状态显示:显示每个设备的ON/OFF状态

10. ZhiDongMode()

功能描述

自动模式处理函数,根据传感器数据自动控制设备。

参数说明

无参数

返回值

无返回值

功能详解

  • 传感器检测:检测温度、湿度、气压、土壤湿度、人体感应、超声波距离
  • 阈值判断:判断传感器数据是否超过阈值
  • 蜂鸣器控制:超过阈值时开启蜂鸣器报警
  • 阈值调整:支持按键调整阈值参数
  • 按键2:切换阈值参数
  • 按键3:增加阈值
  • 按键4:减少阈值

11. YuYingMode()

功能描述

语音模式处理函数,处理语音识别模块的命令。

参数说明

无参数

返回值

无返回值

功能详解

  • 命令接收:检查串口2接收标志
  • 命令解析:解析语音命令字符串
  • 检测开启:"JianCe_ON"命令进入自动检测模式
  • 检测关闭:"JianCe_OFF"命令退出自动检测模式
  • 标志清除:清除接收标志

12. DingShiMode()

功能描述

定时模式处理函数,设置定时任务并检查执行。

参数说明

无参数

返回值

无返回值

功能详解

  • 任务检查:调用CheckTimerTasks()检查定时任务执行
  • 任务切换:按键2切换定时任务或时间字段
  • 时间增加:按键3增加当前字段的值
  • 时间减少:按键4减少当前字段的值
  • 字段循环:小时、分钟、秒循环切换

13. TimeSet()

功能描述

时间设置处理函数,设置系统实时时钟。

参数说明

无参数

返回值

无返回值

功能详解

  • 字段切换:按键2切换时间字段(年/月/日/时/分/秒)
  • 时间增加:按键3增加当前字段的值
  • 时间减少:按键4减少当前字段的值
  • 时间保存:设置完成后保存到RTC
  • 范围限制:年、月、日、时、分、秒都有有效范围

14. YuZhiSet()

功能描述

阈值设置处理函数,设置各种传感器数据的报警阈值。

参数说明

无参数

返回值

无返回值

功能详解

  • 参数切换:按键2切换阈值参数
  • 阈值增加:按键3增加当前选中的阈值参数值
  • 阈值减少:按键4减少当前选中的阈值参数值
  • 步进调整:支持调整步进值
  • 参数显示:显示所有阈值参数及其当前值

函数总结

函数名称 功能分类 主要功能
System_Init() 系统初始化 初始化所有硬件外设
main() 主函数 系统主循环控制
ProcessCurrentMode() 模式处理 处理当前工作模式
ReadSensorData() 传感器 读取传感器数据
YongHu_Display() 显示 用户模式显示
YongHuMode() 模式处理 用户模式处理
YuanCheng_Display() 显示 远程模式显示
ShouDongMode() 模式处理 手动模式处理
ShouDong_Display() 显示 手动模式显示
ZhiDongMode() 模式处理 自动模式处理
YuYingMode() 模式处理 语音模式处理
DingShiMode() 模式处理 定时模式处理
TimeSet() 模式处理 时间设置处理
YuZhiSet() 模式处理 阈值设置处理
返回首页