42 #ifndef __STM324xG_EVAL_IOE_H 43 #define __STM324xG_EVAL_IOE_H 78 uint16_t TouchDetected;
87 #ifndef __STM324xG_EVAL_H 109 IOE1_NOT_OPERATIONAL,
165 #define _delay_ Delay 168 #define _delay_ delay 178 #define IOE_I2C_CLK RCC_APB1Periph_I2C1 179 #define IOE_I2C_SCL_PIN GPIO_Pin_6 180 #define IOE_I2C_SCL_GPIO_PORT GPIOB 181 #define IOE_I2C_SCL_GPIO_CLK RCC_AHB1Periph_GPIOB 182 #define IOE_I2C_SCL_SOURCE GPIO_PinSource6 183 #define IOE_I2C_SCL_AF GPIO_AF_I2C1 184 #define IOE_I2C_SDA_PIN GPIO_Pin_9 185 #define IOE_I2C_SDA_GPIO_PORT GPIOB 186 #define IOE_I2C_SDA_GPIO_CLK RCC_AHB1Periph_GPIOB 187 #define IOE_I2C_SDA_SOURCE GPIO_PinSource9 188 #define IOE_I2C_SDA_AF GPIO_AF_I2C1 189 #define IOE_I2C_DR ((uint32_t)0x40005410) 196 #define I2C_SPEED 100000 202 #define IOE_DMA_CLK RCC_AHB1Periph_DMA1 203 #define IOE_DMA_CHANNEL DMA_Channel_1 205 #ifndef IOE_DMA_TX_STREAM 206 #define IOE_DMA_TX_STREAM DMA1_Stream6 209 #ifndef IOE_DMA_TX_TCFLAG 210 #define IOE_DMA_TX_TCFLAG DMA_FLAG_TCIF6 213 #ifndef IOE_DMA_RX_STREAM 214 #define IOE_DMA_RX_STREAM DMA1_Stream0 217 #ifndef IOE_DMA_RX_TCFLAG 218 #define IOE_DMA_RX_TCFLAG DMA_FLAG_TCIF0 224 #define IOE_IT_PIN GPIO_Pin_2 225 #define IOE_IT_GPIO_PORT GPIOI 226 #define IOE_IT_GPIO_CLK RCC_AHB1Periph_GPIOI 227 #define IOE_IT_EXTI_PORT_SOURCE EXTI_PortSourceGPIOI 228 #define IOE_IT_EXTI_PIN_SOURCE EXTI_PinSource2 229 #define IOE_IT_EXTI_LINE EXTI_Line2 230 #define IOE_IT_EXTI_IRQn EXTI2_IRQn 235 #define AUDIO_RESET_PIN IO_Pin_2 236 #define MII_INT_PIN IO_Pin_0 237 #define VBAT_DIV_PIN IO_Pin_0 238 #define MEMS_INT1_PIN IO_Pin_3 239 #define MEMS_INT2_PIN IO_Pin_2 244 #define IO1_IN_ALL_PINS (uint32_t)(MEMS_INT1_PIN | MEMS_INT2_PIN) 245 #define IO2_IN_ALL_PINS (uint32_t)(JOY_IO_PINS) 246 #define IO1_OUT_ALL_PINS (uint32_t)(VBAT_DIV_PIN) 247 #define IO2_OUT_ALL_PINS (uint32_t)(AUDIO_RESET_PIN | MII_INT_PIN) 252 #define IOE_1_ADDR 0x82 253 #define IOE_2_ADDR 0x88 254 #define STMPE811_ID 0x0811 263 #define IOE_ADC_FCT 0x01 264 #define IOE_TS_FCT 0x02 265 #define IOE_IO_FCT 0x04 266 #define IOE_TEMPSENS_FCT 0x08 271 #define IOE_ITSRC_TSC 0x01 272 #define IOE_ITSRC_INMEMS 0x02 273 #define IOE_ITSRC_JOYSTICK 0x04 274 #define IOE_ITSRC_TEMPSENS 0x08 279 #define IOE_GIT_GPIO 0x80 280 #define IOE_GIT_ADC 0x40 281 #define IOE_GIT_TEMP 0x20 282 #define IOE_GIT_FE 0x10 283 #define IOE_GIT_FF 0x08 284 #define IOE_GIT_FOV 0x04 285 #define IOE_GIT_FTH 0x02 286 #define IOE_GIT_TOUCH 0x01 295 #define IOE_REG_CHP_ID 0x00 296 #define IOE_REG_ID_VER 0x02 301 #define IOE_REG_SYS_CTRL1 0x03 302 #define IOE_REG_SYS_CTRL2 0x04 303 #define IOE_REG_SPI_CFG 0x08 308 #define IOE_REG_INT_CTRL 0x09 309 #define IOE_REG_INT_EN 0x0A 310 #define IOE_REG_INT_STA 0x0B 311 #define IOE_REG_GPIO_INT_EN 0x0C 312 #define IOE_REG_GPIO_INT_STA 0x0D 317 #define IOE_REG_GPIO_SET_PIN 0x10 318 #define IOE_REG_GPIO_CLR_PIN 0x11 319 #define IOE_REG_GPIO_MP_STA 0x12 320 #define IOE_REG_GPIO_DIR 0x13 321 #define IOE_REG_GPIO_ED 0x14 322 #define IOE_REG_GPIO_RE 0x15 323 #define IOE_REG_GPIO_FE 0x16 324 #define IOE_REG_GPIO_AF 0x17 329 #define IOE_REG_ADC_INT_EN 0x0E 330 #define IOE_REG_ADC_INT_STA 0x0F 331 #define IOE_REG_ADC_CTRL1 0x20 332 #define IOE_REG_ADC_CTRL2 0x21 333 #define IOE_REG_ADC_CAPT 0x22 334 #define IOE_REG_ADC_DATA_CH0 0x30 335 #define IOE_REG_ADC_DATA_CH1 0x32 336 #define IOE_REG_ADC_DATA_CH2 0x34 337 #define IOE_REG_ADC_DATA_CH3 0x36 338 #define IOE_REG_ADC_DATA_CH4 0x38 339 #define IOE_REG_ADC_DATA_CH5 0x3A 340 #define IOE_REG_ADC_DATA_CH6 0x3B 341 #define IOE_REG_ADC_DATA_CH7 0x3C 346 #define IOE_REG_TSC_CTRL 0x40 347 #define IOE_REG_TSC_CFG 0x41 348 #define IOE_REG_WDM_TR_X 0x42 349 #define IOE_REG_WDM_TR_Y 0x44 350 #define IOE_REG_WDM_BL_X 0x46 351 #define IOE_REG_WDM_BL_Y 0x48 352 #define IOE_REG_FIFO_TH 0x4A 353 #define IOE_REG_FIFO_STA 0x4B 354 #define IOE_REG_FIFO_SIZE 0x4C 355 #define IOE_REG_TSC_DATA_X 0x4D 356 #define IOE_REG_TSC_DATA_Y 0x4F 357 #define IOE_REG_TSC_DATA_Z 0x51 358 #define IOE_REG_TSC_DATA_XYZ 0x52 359 #define IOE_REG_TSC_FRACT_XYZ 0x56 360 #define IOE_REG_TSC_DATA 0x57 361 #define IOE_REG_TSC_I_DRIVE 0x58 362 #define IOE_REG_TSC_SHIELD 0x59 367 #define IOE_REG_TEMP_CTRL 0x60 368 #define IOE_REG_TEMP_DATA 0x61 369 #define IOE_REG_TEMP_TH 0x62 378 #define TOUCH_YD IO_Pin_1 379 #define TOUCH_XD IO_Pin_2 380 #define TOUCH_YU IO_Pin_3 381 #define TOUCH_XU IO_Pin_4 382 #define TOUCH_IO_ALL (uint32_t)(IO_Pin_1 | IO_Pin_2 | IO_Pin_3 | IO_Pin_4) 387 #define JOY_IO_SEL IO_Pin_7 388 #define JOY_IO_DOWN IO_Pin_6 389 #define JOY_IO_LEFT IO_Pin_5 390 #define JOY_IO_RIGHT IO_Pin_4 391 #define JOY_IO_UP IO_Pin_3 392 #define JOY_IO_NONE JOY_IO_PINS 393 #define JOY_IO_PINS (uint32_t)(IO_Pin_3 | IO_Pin_4 | IO_Pin_5 | IO_Pin_6 | IO_Pin_7) 398 #define IO_Pin_0 0x01 399 #define IO_Pin_1 0x02 400 #define IO_Pin_2 0x04 401 #define IO_Pin_3 0x08 402 #define IO_Pin_4 0x10 403 #define IO_Pin_5 0x20 404 #define IO_Pin_6 0x40 405 #define IO_Pin_7 0x80 406 #define IO_Pin_ALL 0xFF 411 #define Direction_IN 0x00 412 #define Direction_OUT 0x01 417 #define Polarity_Low 0x00 418 #define Polarity_High 0x04 419 #define Type_Level 0x00 420 #define Type_Edge 0x02 434 #define IOE_JOY_IT (uint8_t)(IO_IT_3 | IO_IT_4 | IO_IT_5 | IO_IT_6 | IO_IT_7) 435 #define IOE_TS_IT (uint8_t)(IO_IT_0 | IO_IT_1 | IO_IT_2) 436 #define IOE_INMEMS_IT (uint8_t)(IO_IT_2 | IO_IT_3) 441 #define EDGE_FALLING 0x01 442 #define EDGE_RISING 0x02 447 #define IOE_GIT_EN 0x01 483 #ifdef USE_TIMEOUT_USER_CALLBACK 486 #define IOE_TimeoutUserCallback() IOE_TIMEOUT 522 uint8_t
IOE_FnctCmd(uint8_t DeviceAddr, uint8_t Fct, FunctionalState NewState);
523 uint8_t
IOE_IOPinConfig(uint8_t DeviceAddr, uint8_t IO_Pin, uint8_t Direction);
524 uint8_t
IOE_GITCmd(uint8_t DeviceAddr, FunctionalState NewState);
525 uint8_t
IOE_GITConfig(uint8_t DeviceAddr, uint8_t Global_IT, FunctionalState NewState);
526 uint8_t
IOE_IOITConfig(uint8_t DeviceAddr, uint8_t IO_IT, FunctionalState NewState);
533 uint8_t
IOE_IOAFConfig(uint8_t DeviceAddr, uint8_t IO_Pin, FunctionalState NewState);
JOYState_TypeDef
Joystick State definitions.
Definition: stm324xg_eval_ioe.h:88
uint8_t I2C_ReadDeviceRegister(uint8_t DeviceAddr, uint8_t RegisterAddr)
Reads a register of the device through I2C.
Definition: stm324xg_eval_ioe.c:1149
uint16_t IOE_ReadID(uint8_t DeviceAddr)
Reads the selected device's ID.
Definition: stm324xg_eval_ioe.c:646
uint8_t IOE_TempSens_Config(void)
Configures and enables the Temperature sensor module.
Definition: stm324xg_eval_ioe.c:902
IOE_BitValue_TypeDef
IO bit values.
Definition: stm324xg_eval_ioe.h:116
uint8_t IOE_ITConfig(uint32_t IOE_ITSRC_Source)
Configures The selected interrupts on the IO Expanders.
Definition: stm324xg_eval_ioe.c:218
uint8_t IOE_FnctCmd(uint8_t DeviceAddr, uint8_t Fct, FunctionalState NewState)
Configures the selected IO Expander functionalities.
Definition: stm324xg_eval_ioe.c:671
uint8_t IOE_GITCmd(uint8_t DeviceAddr, FunctionalState NewState)
Enables or disables the Global interrupt.
Definition: stm324xg_eval_ioe.c:734
uint16_t I2C_ReadDataBuffer(uint8_t DeviceAddr, uint32_t RegisterAddr)
Reads a buffer of 2 bytes from the device registers.
Definition: stm324xg_eval_ioe.c:1247
uint8_t IOE_IOEdgeConfig(uint8_t DeviceAddr, uint8_t IO_Pin, uint8_t Edge)
Configures the Edge for which a transition is detectable for the the selected pin.
Definition: stm324xg_eval_ioe.c:965
uint8_t IOE_ReadIOPin(uint32_t IO_Pin)
Returns the status of the selected input IO pin.
Definition: stm324xg_eval_ioe.c:341
This file contains definitions for STM324xG_EVAL's Leds, push-buttons and COM ports hardware resource...
uint8_t IOE_IOITConfig(uint8_t DeviceAddr, uint8_t IO_IT, FunctionalState NewState)
Configures the selected pins to generate an interrupt or not.
Definition: stm324xg_eval_ioe.c:808
JOYState_TypeDef IOE_JoyStickGetState(void)
Returns the current Joystick status.
Definition: stm324xg_eval_ioe.c:383
uint8_t IOE_Reset(uint8_t DeviceAddr)
Resets the IO Expander by Software (SYS_CTRL1, RESET bit).
Definition: stm324xg_eval_ioe.c:625
uint8_t IOE_ClearIOITPending(uint8_t DeviceAddr, uint8_t IO_IT)
Clears the selected IO interrupt pending bit(s).
Definition: stm324xg_eval_ioe.c:573
uint8_t I2C_WriteDeviceRegister(uint8_t DeviceAddr, uint8_t RegisterAddr, uint8_t RegisterValue)
Writes a value in a register of the device through I2C.
Definition: stm324xg_eval_ioe.c:1048
uint8_t IOE_IOAFConfig(uint8_t DeviceAddr, uint8_t IO_Pin, FunctionalState NewState)
Configures the selected pin to be in Alternate function or not.
Definition: stm324xg_eval_ioe.c:930
uint8_t IOE_Config(void)
Configuration and initialization functions.
Definition: stm324xg_eval_ioe.c:136
IOE_DMADirection_TypeDef
IOE DMA Direction.
Definition: stm324xg_eval_ioe.h:125
uint32_t IOE_TempSens_GetData(void)
Temperature Sensor functions.
Definition: stm324xg_eval_ioe.c:465
uint8_t IOE_GITConfig(uint8_t DeviceAddr, uint8_t Global_IT, FunctionalState NewState)
Configures the selected source to generate or not a global interrupt.
Definition: stm324xg_eval_ioe.c:774
IOE_Status_TypDef
IO_Expander Error codes.
Definition: stm324xg_eval_ioe.h:103
uint8_t IOE_ITOutConfig(uint8_t Polarity, uint8_t Type)
Configures the Interrupt line active state and format (level/edge)
Definition: stm324xg_eval_ioe.c:1008
Touch Screen Information structure.
Definition: stm324xg_eval_ioe.h:76
FlagStatus IOE_GetIOITStatus(uint8_t DeviceAddr, uint8_t IO_IT)
Checks the status of the selected IO interrupt pending bit.
Definition: stm324xg_eval_ioe.c:548
TS_STATE * IOE_TS_GetState(void)
Touch Screen controller functions.
Definition: stm324xg_eval_ioe.c:425
uint8_t IOE_TS_Config(void)
Low Layer functions.
Definition: stm324xg_eval_ioe.c:837
uint8_t IOE_ClearGITPending(uint8_t DeviceAddr, uint8_t IO_IT)
Clears the selected Global interrupt pending bit(s)
Definition: stm324xg_eval_ioe.c:531
uint8_t IOE_IsOperational(uint8_t DeviceAddr)
IO-Expander Control functions.
Definition: stm324xg_eval_ioe.c:598
uint8_t IOE_WriteIOPin(uint8_t IO_Pin, IOE_BitValue_TypeDef BitVal)
IO pins control functions.
Definition: stm324xg_eval_ioe.c:298
FlagStatus IOE_GetGITStatus(uint8_t DeviceAddr, uint8_t Global_IT)
Interrupts Mangement functions.
Definition: stm324xg_eval_ioe.c:498
uint8_t IOE_IOPinConfig(uint8_t DeviceAddr, uint8_t IO_Pin, uint8_t Direction)
Configures the selected pin direction (to be an input or an output)
Definition: stm324xg_eval_ioe.c:704
#define IOE_TimeoutUserCallback()
Timeout user callback function.
Definition: stm324xg_eval_ioe.h:486