Contains the BSP driver for the DISCO_F413ZH board.
Dependents: DISCO_F413ZH-LCD-demo DISCO_F413ZH-touch-screen-demo DISCO_F413ZH-SD-demo DISCO_F413ZH-PSRAM-demo ... more
io.h
00001 /** 00002 ****************************************************************************** 00003 * @file io.h 00004 * @author MCD Application Team 00005 * @version V4.0.1 00006 * @date 21-July-2015 00007 * @brief This file contains all the functions prototypes for the IO driver. 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Define to prevent recursive inclusion -------------------------------------*/ 00039 #ifndef __IO_H 00040 #define __IO_H 00041 00042 #ifdef __cplusplus 00043 extern "C" { 00044 #endif 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include <stdint.h> 00048 00049 /** @addtogroup BSP 00050 * @{ 00051 */ 00052 00053 /** @addtogroup Components 00054 * @{ 00055 */ 00056 00057 /** @addtogroup IO 00058 * @{ 00059 */ 00060 00061 /** @defgroup IO_Exported_Types 00062 * @{ 00063 */ 00064 00065 /** 00066 * @brief IO Bit SET and Bit RESET enumeration 00067 */ 00068 typedef enum 00069 { 00070 IO_PIN_RESET = 0, 00071 IO_PIN_SET 00072 }IO_PinState; 00073 00074 typedef enum 00075 { 00076 IO_MODE_INPUT = 0, /* input floating */ 00077 IO_MODE_OUTPUT, /* output Push Pull */ 00078 IO_MODE_IT_RISING_EDGE, /* float input - irq detect on rising edge */ 00079 IO_MODE_IT_FALLING_EDGE, /* float input - irq detect on falling edge */ 00080 IO_MODE_IT_LOW_LEVEL, /* float input - irq detect on low level */ 00081 IO_MODE_IT_HIGH_LEVEL, /* float input - irq detect on high level */ 00082 /* following modes only available on MFX*/ 00083 IO_MODE_ANALOG, /* analog mode */ 00084 IO_MODE_OFF, /* when pin isn't used*/ 00085 IO_MODE_INPUT_PU, /* input with internal pull up resistor */ 00086 IO_MODE_INPUT_PD, /* input with internal pull down resistor */ 00087 IO_MODE_OUTPUT_OD, /* Open Drain output without internal resistor */ 00088 IO_MODE_OUTPUT_OD_PU, /* Open Drain output with internal pullup resistor */ 00089 IO_MODE_OUTPUT_OD_PD, /* Open Drain output with internal pulldown resistor */ 00090 IO_MODE_OUTPUT_PP, /* PushPull output without internal resistor */ 00091 IO_MODE_OUTPUT_PP_PU, /* PushPull output with internal pullup resistor */ 00092 IO_MODE_OUTPUT_PP_PD, /* PushPull output with internal pulldown resistor */ 00093 IO_MODE_IT_RISING_EDGE_PU, /* push up resistor input - irq on rising edge */ 00094 IO_MODE_IT_RISING_EDGE_PD, /* push dw resistor input - irq on rising edge */ 00095 IO_MODE_IT_FALLING_EDGE_PU, /* push up resistor input - irq on falling edge */ 00096 IO_MODE_IT_FALLING_EDGE_PD, /* push dw resistor input - irq on falling edge */ 00097 IO_MODE_IT_LOW_LEVEL_PU, /* push up resistor input - irq detect on low level */ 00098 IO_MODE_IT_LOW_LEVEL_PD, /* push dw resistor input - irq detect on low level */ 00099 IO_MODE_IT_HIGH_LEVEL_PU, /* push up resistor input - irq detect on high level */ 00100 IO_MODE_IT_HIGH_LEVEL_PD, /* push dw resistor input - irq detect on high level */ 00101 00102 }IO_ModeTypedef; 00103 00104 /** @defgroup IO_Driver_structure IO Driver structure 00105 * @{ 00106 */ 00107 typedef struct 00108 { 00109 void (*Init)(uint16_t); 00110 uint16_t (*ReadID)(uint16_t); 00111 void (*Reset)(uint16_t); 00112 00113 void (*Start)(uint16_t, uint32_t); 00114 uint8_t (*Config)(uint16_t, uint32_t, IO_ModeTypedef); 00115 void (*WritePin)(uint16_t, uint32_t, uint8_t); 00116 uint32_t (*ReadPin)(uint16_t, uint32_t); 00117 00118 void (*EnableIT)(uint16_t); 00119 void (*DisableIT)(uint16_t); 00120 uint32_t (*ITStatus)(uint16_t, uint32_t); 00121 void (*ClearIT)(uint16_t, uint32_t); 00122 00123 }IO_DrvTypeDef; 00124 /** 00125 * @} 00126 */ 00127 00128 /** 00129 * @} 00130 */ 00131 00132 /** 00133 * @} 00134 */ 00135 00136 /** 00137 * @} 00138 */ 00139 00140 /** 00141 * @} 00142 */ 00143 00144 #ifdef __cplusplus 00145 } 00146 #endif 00147 00148 #endif /* __IO_H */ 00149 00150 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 13:54:37 by 1.7.2