/* * Copyright (c) 2020 Nanjing Xiaoxiongpai Intelligent Technology Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "elevator.h" #include "cmsis_os2.h" #include "iot_errno.h" #include "iot_gpio.h" #include "iot_gpio_ex.h" #include "iot_i2c.h" #include #include #include #include #define WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA 6 #define WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL 6 #define WIFI_IOT_IO_FUNC_GPIO_7_GPIO 0 #define WIFI_IOT_I2C_IDX_1 1 #define LED1 12 #define LED2 7 #define LED3 14 #define LED4 10 #define LED5 13 // #define LED6 14 // #define LED7 7 // #define LED8 8 // #define LED9 1 // #define LED10 0 #define OUT_GPIO 2 /*************************************************************** * 函数名称: BoardInit * 说 明: GPIO初始化 * 参 数: 无 * 返 回 值: 无 ***************************************************************/ void BoardInit(void) { IoTGpioInit(LED1); IoTGpioSetFunc(LED1, IOT_GPIO_FUNC_GPIO_12_GPIO); IoTGpioSetDir(LED1, IOT_GPIO_DIR_OUT); //设置为输出模式 IoTGpioInit(LED2); IoTGpioSetFunc(LED2, IOT_GPIO_FUNC_GPIO_7_GPIO); IoTGpioSetDir(LED2, IOT_GPIO_DIR_OUT); //设置为输出模式 IoTGpioInit(LED3); IoTGpioSetFunc(LED3, IOT_GPIO_FUNC_GPIO_14_GPIO); IoTGpioSetDir(LED3, IOT_GPIO_DIR_OUT); //设置为输出模式 IoTGpioInit(LED4); IoTGpioSetFunc(LED4, IOT_GPIO_FUNC_GPIO_10_GPIO); IoTGpioSetDir(LED4, IOT_GPIO_DIR_OUT); //设置为输出模式 IoTGpioInit(LED5); IoTGpioSetFunc(LED5, IOT_GPIO_FUNC_GPIO_13_GPIO); IoTGpioSetDir(LED5, IOT_GPIO_DIR_OUT); //设置为输出模式 // IoTGpioInit(LED6); // IoTGpioSetFunc(LED6, IOT_GPIO_FUNC_GPIO_14_GPIO); // IoTGpioSetDir(LED6, IOT_GPIO_DIR_OUT); //设置为输出模式 // IoTGpioInit(LED7); // IoTGpioSetFunc(LED7, IOT_GPIO_FUNC_GPIO_7_GPIO); // IoTGpioSetDir(LED7, IOT_GPIO_DIR_OUT); //设置为输出模式 // IoTGpioInit(LED8); // IoTGpioSetFunc(LED8, IOT_GPIO_FUNC_GPIO_8_GPIO); // IoTGpioSetDir(LED8, IOT_GPIO_DIR_OUT); //设置为输出模式 // IoTGpioInit(LED9); // IoTGpioSetFunc(LED9, IOT_GPIO_FUNC_GPIO_1_GPIO); // IoTGpioSetDir(LED9, IOT_GPIO_DIR_OUT); //设置为输出模式 // IoTGpioInit(LED10); // IoTGpioSetFunc(LED10, IOT_GPIO_FUNC_GPIO_0_GPIO); // IoTGpioSetDir(LED10, IOT_GPIO_DIR_OUT); //设置为输出模式 IoTGpioInit(OUT_GPIO); IoTGpioSetFunc(OUT_GPIO, IOT_GPIO_FUNC_GPIO_2_GPIO); IoTGpioSetDir(OUT_GPIO, IOT_GPIO_DIR_IN); // 设置为输入模式 } /*************************************************************** * 函数名称: ElevatorReadData * 说 明: 读取数据 * 参 数: 无 * 返 回 值: 无 ***************************************************************/ uint8_t ElevatorReadData(void) { IotGpioValue temp = {0}; IoTGpioGetInputVal(OUT_GPIO,&temp); return temp; } /*************************************************************** * 函数名称: FanStatusSet * 说 明: 风扇状态设置 * 参 数: status,ENUM枚举的数据 * OFF,关风扇 * ON,开风扇 * 返 回 值: 无 ***************************************************************/ void FanStatusSet(SwitchStatus status) { if (status == ON) { IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 1); IoTGpioSetOutputVal(LED3, 1); IoTGpioSetOutputVal(LED4, 1); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 1); // IoTGpioSetOutputVal(LED8, 1); // IoTGpioSetOutputVal(LED9, 1); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 0); IoTGpioSetOutputVal(LED3, 1); IoTGpioSetOutputVal(LED4, 1); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 1); // IoTGpioSetOutputVal(LED8, 1); // IoTGpioSetOutputVal(LED9, 0); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 0); IoTGpioSetOutputVal(LED3, 0); IoTGpioSetOutputVal(LED4, 1); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 1); // IoTGpioSetOutputVal(LED8, 0); // IoTGpioSetOutputVal(LED9, 0); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 0); IoTGpioSetOutputVal(LED3, 0); IoTGpioSetOutputVal(LED4, 0); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 0); // IoTGpioSetOutputVal(LED8, 0); // IoTGpioSetOutputVal(LED9, 0); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 0); IoTGpioSetOutputVal(LED3, 0); IoTGpioSetOutputVal(LED4, 0); IoTGpioSetOutputVal(LED5, 0); // IoTGpioSetOutputVal(LED6, 0); // IoTGpioSetOutputVal(LED7, 0); // IoTGpioSetOutputVal(LED8, 0); // IoTGpioSetOutputVal(LED9, 0); // IoTGpioSetOutputVal(LED10, 0); } if (status == OFF) { IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 0); IoTGpioSetOutputVal(LED3, 0); IoTGpioSetOutputVal(LED4, 0); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 0); // IoTGpioSetOutputVal(LED8, 0); // IoTGpioSetOutputVal(LED9, 0); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 0); IoTGpioSetOutputVal(LED3, 0); IoTGpioSetOutputVal(LED4, 1); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 1); // IoTGpioSetOutputVal(LED8, 0); // IoTGpioSetOutputVal(LED9, 0); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 0); IoTGpioSetOutputVal(LED3, 1); IoTGpioSetOutputVal(LED4, 1); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 1); // IoTGpioSetOutputVal(LED8, 1); // IoTGpioSetOutputVal(LED9, 0); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 0); IoTGpioSetOutputVal(LED2, 1); IoTGpioSetOutputVal(LED3, 1); IoTGpioSetOutputVal(LED4, 1); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 1); // IoTGpioSetOutputVal(LED8, 1); // IoTGpioSetOutputVal(LED9, 1); // IoTGpioSetOutputVal(LED10, 0); osDelay(20); IoTGpioSetOutputVal(LED1, 1); IoTGpioSetOutputVal(LED2, 1); IoTGpioSetOutputVal(LED3, 1); IoTGpioSetOutputVal(LED4, 1); IoTGpioSetOutputVal(LED5, 1); // IoTGpioSetOutputVal(LED6, 1); // IoTGpioSetOutputVal(LED7, 1); // IoTGpioSetOutputVal(LED8, 1); // IoTGpioSetOutputVal(LED9, 1); // IoTGpioSetOutputVal(LED10, 1); } }