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