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.
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 16:26:53 by
