/* Copyright Statement: * * This software/firmware and related documentation ("AutoChips Software") are * protected under relevant copyright laws. The information contained herein is * confidential and proprietary to AutoChips Inc. and/or its licensors. Without * the prior written permission of AutoChips inc. and/or its licensors, any * reproduction, modification, use or disclosure of AutoChips Software, and * information contained herein, in whole or in part, shall be strictly * prohibited. * * AutoChips Inc. (C) 2018. All rights reserved. * * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("AUTOCHIPS SOFTWARE") * RECEIVED FROM AUTOCHIPS AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER * ON AN "AS-IS" BASIS ONLY. AUTOCHIPS EXPRESSLY DISCLAIMS ANY AND ALL * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR * NONINFRINGEMENT. NEITHER DOES AUTOCHIPS PROVIDE ANY WARRANTY WHATSOEVER WITH * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, * INCORPORATED IN, OR SUPPLIED WITH THE AUTOCHIPS SOFTWARE, AND RECEIVER AGREES * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN AUTOCHIPS * SOFTWARE. AUTOCHIPS SHALL ALSO NOT BE RESPONSIBLE FOR ANY AUTOCHIPS SOFTWARE * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND AUTOCHIPS'S * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE AUTOCHIPS SOFTWARE * RELEASED HEREUNDER WILL BE, AT AUTOCHIPS'S OPTION, TO REVISE OR REPLACE THE * AUTOCHIPS SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE * CHARGE PAID BY RECEIVER TO AUTOCHIPS FOR SUCH AUTOCHIPS SOFTWARE AT ISSUE. */ /*******************************/ #ifndef __GPIO_H__ #define __GPIO_H__ #ifdef __cplusplus extern "C" { #endif /*****************************/ #include "ac780x_gpio.h" /*******************************/ /* define key gpio */ #define RS485CTRL_PORT (GPIOB) #define RS485CTRL_PIN (GPIO_PIN3) #define RS485_TX_EN do{GPIO_SetPinLevel(RS485CTRL_PORT, RS485CTRL_PIN, GPIO_LEVEL_HIGH);}while(0) #define RS485_RX_EN do{GPIO_SetPinLevel(RS485CTRL_PORT, RS485CTRL_PIN, GPIO_LEVEL_LOW);}while(0) //LDO 使能脚 设备启动拉高 #define LDOEn_PORT (GPIOC) #define LDOEn_PIN (GPIO_PIN2) #define LDOEn_EN do{GPIO_SetPinLevel(LDOEn_PORT, LDOEn_PIN, GPIO_LEVEL_HIGH);}while(0) #define LDOEn_DISABLE do{GPIO_SetPinLevel(LDOEn_PORT, LDOEn_PIN, GPIO_LEVEL_LOW);}while(0) #define GREENLED_PORT (GPIOB) #define GREENLED_PIN (GPIO_PIN7) #define REDLED_PORT (GPIOB) #define REDLED_PIN (GPIO_PIN8) /*RUNLED动作定义.*/ #define GREENLED_ON do{GPIO_SetPinLevel(GREENLED_PORT, GREENLED_PIN, GPIO_LEVEL_HIGH);}while(0) #define GREENLED_OFF do{GPIO_SetPinLevel(GREENLED_PORT, GREENLED_PIN, GPIO_LEVEL_LOW);}while(0) #define REDLED_ON do{GPIO_SetPinLevel(REDLED_PORT, REDLED_PIN, GPIO_LEVEL_HIGH);}while(0) #define REDLED_OFF do{GPIO_SetPinLevel(REDLED_PORT, REDLED_PIN, GPIO_LEVEL_LOW);}while(0) #define GREENLED_TOGGLE do{if(GPIO_GetPinLevel(GREENLED_PORT, GREENLED_PIN)){GREENLED_OFF;}else{GREENLED_ON;}}while(0) #define REDLED_TOGGLE do{if(GPIO_GetPinLevel(REDLED_PORT, REDLED_PIN)){REDLED_OFF;}else{REDLED_ON;}}while(0) #define REDGREEN_TOGGLE do{if(GPIO_GetPinLevel(REDLED_PORT, REDLED_PIN)){REDLED_OFF;GREENLED_ON;}else{GREENLED_OFF;REDLED_ON;}}while(0) /* DC24 power supply detect gpio */ #define POWER_DETECT_PORT (GPIOA) #define POWER_DETECT_PIN (GPIO_PIN11) /* open cover detect gpio */ #define COVER_DETECT_PORT (GPIOC) #define COVER_DETECT_PIN (GPIO_PIN6) /* W25Q64 chip_select */ #define W25Q64_CS_Low do{GPIO_SetPinLevel(GPIOC, GPIO_PIN1, GPIO_LEVEL_LOW);}while(0) #define W25Q64_CS_High do{GPIO_SetPinLevel(GPIOC, GPIO_PIN1, GPIO_LEVEL_HIGH);}while(0) /* DS1302 En_select */ #define DS1302_ENABLE do{GPIO_SetPinLevel(GPIOB, GPIO_PIN6, GPIO_LEVEL_HIGH);}while(0) #define DS1302_DISABLE do{GPIO_SetPinLevel(GPIOB, GPIO_PIN6, GPIO_LEVEL_LOW);}while(0) //IButton one wire #define IBTX_PORT (GPIOB) #define IBTX_PIN (GPIO_PIN13) #define IBRX_PORT (GPIOA) #define IBRX_PIN (GPIO_PIN1) #define IBTX_WIRE_HIGH GPIO_SetPinLevel(IBTX_PORT, IBTX_PIN, GPIO_LEVEL_LOW) #define IBTX_WIRE_LOW GPIO_SetPinLevel(IBTX_PORT, IBTX_PIN, GPIO_LEVEL_HIGH) #define IBRX_WIRE_BIT GPIO_GetPinLevel(IBRX_PORT,IBRX_PIN) #define IB_GREEN_PORT (GPIOB) #define IB_GREEN_PIN (GPIO_PIN12) #define IB_RED_PORT (GPIOB) #define IB_RED_PIN (GPIO_PIN11) /*IBLED动作定义.*/ #define IB_GREEN_ON do{GPIO_SetPinLevel(IB_GREEN_PORT, IB_GREEN_PIN, GPIO_LEVEL_HIGH);}while(0) #define IB_GREEN_OFF do{GPIO_SetPinLevel(IB_GREEN_PORT, IB_GREEN_PIN, GPIO_LEVEL_LOW);}while(0) #define IB_RED_ON do{GPIO_SetPinLevel(IB_RED_PORT, IB_RED_PIN, GPIO_LEVEL_HIGH);}while(0) #define IB_RED_OFF do{GPIO_SetPinLevel(IB_RED_PORT, IB_RED_PIN, GPIO_LEVEL_LOW);}while(0) #define IB_GREEN_TOGGLE do{if(GPIO_GetPinLevel(IB_GREEN_PORT, IB_GREEN_PIN)){IB_GREEN_OFF;}else{IB_GREEN_ON;}}while(0) #define IB_RED_TOGGLE do{if(GPIO_GetPinLevel(IB_RED_PORT, IB_RED_PIN)){IB_RED_OFF;}else{IB_RED_ON;}}while(0) #define ENC_CS_L do{GPIO_SetPinLevel(GPIOA, GPIO_PIN8, GPIO_LEVEL_LOW);}while(0) #define ENC_CS_H do{GPIO_SetPinLevel(GPIOA, GPIO_PIN8, GPIO_LEVEL_HIGH);}while(0) /********************************/ /*******************************/ /******************************/ /******************************/ /***************************/ void Gpio_Init(void); uint8_t Gpio_IsDC24(void); //是否为外部电源供电 uint8_t Gpio_IsOpenCover(void); //是否上盖打开 #ifdef __cplusplus } #endif #endif /* __GPIO_H__ */ /*********************************/