STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f769i_discovery.c
Go to the documentation of this file.
1 
41 /* Includes ------------------------------------------------------------------*/
42 #include "stm32f769i_discovery.h"
43 
69 #define __STM32F769I_DISCOVERY_BSP_VERSION_MAIN (0x01)
70 #define __STM32F769I_DISCOVERY_BSP_VERSION_SUB1 (0x00)
71 #define __STM32F769I_DISCOVERY_BSP_VERSION_SUB2 (0x00)
72 #define __STM32F769I_DISCOVERY_BSP_VERSION_RC (0x00)
73 #define __STM32F769I_DISCOVERY_BSP_VERSION ((__STM32F769I_DISCOVERY_BSP_VERSION_MAIN << 24)\
74  |(__STM32F769I_DISCOVERY_BSP_VERSION_SUB1 << 16)\
75  |(__STM32F769I_DISCOVERY_BSP_VERSION_SUB2 << 8 )\
76  |(__STM32F769I_DISCOVERY_BSP_VERSION_RC))
77 
91 uint32_t GPIO_PIN[LEDn] = {LED1_PIN,
92  LED2_PIN};
93 
96 
98 
99 const uint16_t BUTTON_PIN[BUTTONn] = {WAKEUP_BUTTON_PIN };
100 
102 
103 
104 static I2C_HandleTypeDef hI2cAudioHandler = {0};
105 static I2C_HandleTypeDef hI2cExtHandler = {0};
106 
114 static void I2Cx_MspInit(I2C_HandleTypeDef *i2c_handler);
115 static void I2Cx_Init(I2C_HandleTypeDef *i2c_handler);
116 
117 static HAL_StatusTypeDef I2Cx_ReadMultiple(I2C_HandleTypeDef *i2c_handler, uint8_t Addr, uint16_t Reg, uint16_t MemAddSize, uint8_t *Buffer, uint16_t Length);
118 static HAL_StatusTypeDef I2Cx_WriteMultiple(I2C_HandleTypeDef *i2c_handler, uint8_t Addr, uint16_t Reg, uint16_t MemAddSize, uint8_t *Buffer, uint16_t Length);
119 static HAL_StatusTypeDef I2Cx_IsDeviceReady(I2C_HandleTypeDef *i2c_handler, uint16_t DevAddress, uint32_t Trials);
120 static void I2Cx_Error(I2C_HandleTypeDef *i2c_handler, uint8_t Addr);
121 
122 /* AUDIO IO functions */
123 void AUDIO_IO_Init(void);
124 void AUDIO_IO_DeInit(void);
125 void AUDIO_IO_Write(uint8_t Addr, uint16_t Reg, uint16_t Value);
126 uint16_t AUDIO_IO_Read(uint8_t Addr, uint16_t Reg);
127 void AUDIO_IO_Delay(uint32_t Delay);
128 
129 
130 /* I2C EEPROM IO function */
131 void EEPROM_IO_Init(void);
132 HAL_StatusTypeDef EEPROM_IO_WriteData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize);
133 HAL_StatusTypeDef EEPROM_IO_ReadData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize);
134 HAL_StatusTypeDef EEPROM_IO_IsDeviceReady(uint16_t DevAddress, uint32_t Trials);
135 
136 /* TouchScreen (TS) IO functions */
137 void TS_IO_Init(void);
138 void TS_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value);
139 uint8_t TS_IO_Read(uint8_t Addr, uint8_t Reg);
140 uint16_t TS_IO_ReadMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length);
141 void TS_IO_WriteMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length);
142 void TS_IO_Delay(uint32_t Delay);
143 
144 /* LCD Display IO functions */
145 void OTM8009A_IO_Delay(uint32_t Delay);
158 uint32_t BSP_GetVersion(void)
159 {
161 }
162 
172 {
173  GPIO_InitTypeDef gpio_init_structure;
174 
176  /* Configure the GPIO_LED pin */
177  gpio_init_structure.Pin = GPIO_PIN[Led];
178  gpio_init_structure.Mode = GPIO_MODE_OUTPUT_PP;
179  gpio_init_structure.Pull = GPIO_PULLUP;
180  gpio_init_structure.Speed = GPIO_SPEED_HIGH;
181 
182  HAL_GPIO_Init(GPIO_PORT[Led], &gpio_init_structure);
183 
184 }
185 
186 
197 {
198  GPIO_InitTypeDef gpio_init_structure;
199 
200  /* DeInit the GPIO_LED pin */
201  gpio_init_structure.Pin = GPIO_PIN[Led];
202 
203  /* Turn off LED */
204  HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_RESET);
205  HAL_GPIO_DeInit(GPIO_PORT[Led], gpio_init_structure.Pin);
206 }
207 
217 {
218  HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_SET);
219 }
220 
230 {
231  HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_RESET);
232 }
233 
243 {
244  HAL_GPIO_TogglePin(GPIO_PORT[Led], GPIO_PIN[Led]);
245 }
246 
261 {
262  GPIO_InitTypeDef gpio_init_structure;
263 
264  /* Enable the BUTTON clock */
266 
267  if(Button_Mode == BUTTON_MODE_GPIO)
268  {
269  /* Configure Button pin as input */
270  gpio_init_structure.Pin = BUTTON_PIN[Button];
271  gpio_init_structure.Mode = GPIO_MODE_INPUT;
272  gpio_init_structure.Pull = GPIO_NOPULL;
273  gpio_init_structure.Speed = GPIO_SPEED_FAST;
274  HAL_GPIO_Init(BUTTON_PORT[Button], &gpio_init_structure);
275  }
276 
277  if(Button_Mode == BUTTON_MODE_EXTI)
278  {
279  /* Configure Button pin as input with External interrupt */
280  gpio_init_structure.Pin = BUTTON_PIN[Button];
281  gpio_init_structure.Pull = GPIO_NOPULL;
282  gpio_init_structure.Speed = GPIO_SPEED_FAST;
283 
284  gpio_init_structure.Mode = GPIO_MODE_IT_RISING;
285 
286  HAL_GPIO_Init(BUTTON_PORT[Button], &gpio_init_structure);
287 
288  /* Enable and set Button EXTI Interrupt to the lowest priority */
289  HAL_NVIC_SetPriority((IRQn_Type)(BUTTON_IRQn[Button]), 0x0F, 0x00);
291  }
292 }
293 
304 {
305  GPIO_InitTypeDef gpio_init_structure;
306 
307  gpio_init_structure.Pin = BUTTON_PIN[Button];
309  HAL_GPIO_DeInit(BUTTON_PORT[Button], gpio_init_structure.Pin);
310 }
311 
312 
322 {
323  return HAL_GPIO_ReadPin(BUTTON_PORT[Button], BUTTON_PIN[Button]);
324 }
325 
335 /*******************************************************************************
336  BUS OPERATIONS
337 *******************************************************************************/
338 
339 /******************************* I2C Routines *********************************/
345 static void I2Cx_MspInit(I2C_HandleTypeDef *i2c_handler)
346 {
347  GPIO_InitTypeDef gpio_init_structure;
348 
349  if (i2c_handler == (I2C_HandleTypeDef*)(&hI2cAudioHandler))
350  {
351  /*** Configure the GPIOs ***/
352  /* Enable GPIO clock */
355  /* Configure I2C Tx as alternate function */
356  gpio_init_structure.Pin = DISCOVERY_AUDIO_I2Cx_SCL_PIN;
357  gpio_init_structure.Mode = GPIO_MODE_AF_OD;
358  gpio_init_structure.Pull = GPIO_NOPULL;
359  gpio_init_structure.Speed = GPIO_SPEED_FAST;
360  gpio_init_structure.Alternate = DISCOVERY_AUDIO_I2Cx_SCL_AF;
361  HAL_GPIO_Init(DISCOVERY_AUDIO_I2Cx_SCL_GPIO_PORT, &gpio_init_structure);
362 
363  /* Configure I2C Rx as alternate function */
364  gpio_init_structure.Pin = DISCOVERY_AUDIO_I2Cx_SDA_PIN;
365  gpio_init_structure.Alternate = DISCOVERY_AUDIO_I2Cx_SDA_AF;
366  HAL_GPIO_Init(DISCOVERY_AUDIO_I2Cx_SDA_GPIO_PORT, &gpio_init_structure);
367 
368  /*** Configure the I2C peripheral ***/
369  /* Enable I2C clock */
371 
372  /* Force the I2C peripheral clock reset */
374 
375  /* Release the I2C peripheral clock reset */
377 
378  /* Enable and set I2C1 Interrupt to a lower priority */
381 
382  /* Enable and set I2C1 Interrupt to a lower priority */
385 
386  }
387  else
388  {
389  /*** Configure the GPIOs ***/
390  /* Enable GPIO clock */
392 
393  /* Configure I2C Tx as alternate function */
394  gpio_init_structure.Pin = DISCOVERY_EXT_I2Cx_SCL_PIN;
395  gpio_init_structure.Mode = GPIO_MODE_AF_OD;
396  gpio_init_structure.Pull = GPIO_NOPULL;
397  gpio_init_structure.Speed = GPIO_SPEED_FAST;
398  gpio_init_structure.Alternate = DISCOVERY_EXT_I2Cx_SCL_SDA_AF;
400 
401  /* Configure I2C Rx as alternate function */
402  gpio_init_structure.Pin = DISCOVERY_EXT_I2Cx_SDA_PIN;
404 
405  /*** Configure the I2C peripheral ***/
406  /* Enable I2C clock */
408 
409  /* Force the I2C peripheral clock reset */
411 
412  /* Release the I2C peripheral clock reset */
414 
415  /* Enable and set I2C1 Interrupt to a lower priority */
418 
419  /* Enable and set I2C1 Interrupt to a lower priority */
422  }
423 }
424 
430 static void I2Cx_Init(I2C_HandleTypeDef *i2c_handler)
431 {
432  if(HAL_I2C_GetState(i2c_handler) == HAL_I2C_STATE_RESET)
433  {
434  if (i2c_handler == (I2C_HandleTypeDef*)(&hI2cAudioHandler))
435  {
436  /* Audio and LCD I2C configuration */
437  i2c_handler->Instance = DISCOVERY_AUDIO_I2Cx;
438  }
439  else
440  {
441  /* External, camera and Arduino connector I2C configuration */
442  i2c_handler->Instance = DISCOVERY_EXT_I2Cx;
443  }
444  i2c_handler->Init.Timing = DISCOVERY_I2Cx_TIMING;
445  i2c_handler->Init.OwnAddress1 = 0;
448  i2c_handler->Init.OwnAddress2 = 0;
451 
452  /* Init the I2C */
453  I2Cx_MspInit(i2c_handler);
454  HAL_I2C_Init(i2c_handler);
455  }
456 }
457 
468 static HAL_StatusTypeDef I2Cx_ReadMultiple(I2C_HandleTypeDef *i2c_handler, uint8_t Addr, uint16_t Reg, uint16_t MemAddress, uint8_t *Buffer, uint16_t Length)
469 {
470  HAL_StatusTypeDef status = HAL_OK;
471 
472  status = HAL_I2C_Mem_Read(i2c_handler, Addr, (uint16_t)Reg, MemAddress, Buffer, Length, 1000);
473 
474  /* Check the communication status */
475  if(status != HAL_OK)
476  {
477  /* I2C error occured */
478  I2Cx_Error(i2c_handler, Addr);
479  }
480  return status;
481 }
482 
483 
494 static HAL_StatusTypeDef I2Cx_WriteMultiple(I2C_HandleTypeDef *i2c_handler, uint8_t Addr, uint16_t Reg, uint16_t MemAddress, uint8_t *Buffer, uint16_t Length)
495 {
496  HAL_StatusTypeDef status = HAL_OK;
497 
498  status = HAL_I2C_Mem_Write(i2c_handler, Addr, (uint16_t)Reg, MemAddress, Buffer, Length, 1000);
499 
500  /* Check the communication status */
501  if(status != HAL_OK)
502  {
503  /* Re-Initiaize the I2C Bus */
504  I2Cx_Error(i2c_handler, Addr);
505  }
506  return status;
507 }
508 
517 static HAL_StatusTypeDef I2Cx_IsDeviceReady(I2C_HandleTypeDef *i2c_handler, uint16_t DevAddress, uint32_t Trials)
518 {
519  return (HAL_I2C_IsDeviceReady(i2c_handler, DevAddress, Trials, 1000));
520 }
521 
528 static void I2Cx_Error(I2C_HandleTypeDef *i2c_handler, uint8_t Addr)
529 {
530  /* De-initialize the I2C communication bus */
531  HAL_I2C_DeInit(i2c_handler);
532 
533  /* Re-Initialize the I2C communication bus */
534  I2Cx_Init(i2c_handler);
535 }
536 
541 /*******************************************************************************
542  LINK OPERATIONS
543 *******************************************************************************/
544 
545 /********************************* LINK AUDIO *********************************/
546 
550 void AUDIO_IO_Init(void)
551 {
552  I2Cx_Init(&hI2cAudioHandler);
553 }
554 
558 void AUDIO_IO_DeInit(void)
559 {
560 
561 }
562 
570 void AUDIO_IO_Write(uint8_t Addr, uint16_t Reg, uint16_t Value)
571 {
572  uint16_t tmp = Value;
573 
574  Value = ((uint16_t)(tmp >> 8) & 0x00FF);
575 
576  Value |= ((uint16_t)(tmp << 8)& 0xFF00);
577 
578  I2Cx_WriteMultiple(&hI2cAudioHandler, Addr, Reg, I2C_MEMADD_SIZE_16BIT,(uint8_t*)&Value, 2);
579 }
580 
587 uint16_t AUDIO_IO_Read(uint8_t Addr, uint16_t Reg)
588 {
589  uint16_t read_value = 0, tmp = 0;
590 
591  I2Cx_ReadMultiple(&hI2cAudioHandler, Addr, Reg, I2C_MEMADD_SIZE_16BIT, (uint8_t*)&read_value, 2);
592 
593  tmp = ((uint16_t)(read_value >> 8) & 0x00FF);
594 
595  tmp |= ((uint16_t)(read_value << 8)& 0xFF00);
596 
597  read_value = tmp;
598 
599  return read_value;
600 }
601 
606 void AUDIO_IO_Delay(uint32_t Delay)
607 {
608  HAL_Delay(Delay);
609 }
610 
611 /******************************** LINK I2C EEPROM *****************************/
612 
616 void EEPROM_IO_Init(void)
617 {
618  I2Cx_Init(&hI2cExtHandler);
619 }
620 
629 HAL_StatusTypeDef EEPROM_IO_WriteData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize)
630 {
631  return (I2Cx_WriteMultiple(&hI2cExtHandler, DevAddress, MemAddress, I2C_MEMADD_SIZE_16BIT, pBuffer, BufferSize));
632 }
633 
642 HAL_StatusTypeDef EEPROM_IO_ReadData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize)
643 {
644  return (I2Cx_ReadMultiple(&hI2cExtHandler, DevAddress, MemAddress, I2C_MEMADD_SIZE_16BIT, pBuffer, BufferSize));
645 }
646 
654 HAL_StatusTypeDef EEPROM_IO_IsDeviceReady(uint16_t DevAddress, uint32_t Trials)
655 {
656  return (I2Cx_IsDeviceReady(&hI2cExtHandler, DevAddress, Trials));
657 }
658 
659 /******************************** LINK TS (TouchScreen) ***********************/
660 
665 void TS_IO_Init(void)
666 {
667  I2Cx_Init(&hI2cAudioHandler);
668 }
669 
677 void TS_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value)
678 {
679  I2Cx_WriteMultiple(&hI2cAudioHandler, Addr, (uint16_t)Reg, I2C_MEMADD_SIZE_8BIT,(uint8_t*)&Value, 1);
680 }
681 
688 uint8_t TS_IO_Read(uint8_t Addr, uint8_t Reg)
689 {
690  uint8_t read_value = 0;
691 
692  I2Cx_ReadMultiple(&hI2cAudioHandler, Addr, Reg, I2C_MEMADD_SIZE_8BIT, (uint8_t*)&read_value, 1);
693 
694  return read_value;
695 }
696 
706 uint16_t TS_IO_ReadMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length)
707 {
708  return I2Cx_ReadMultiple(&hI2cAudioHandler, Addr, (uint16_t)Reg, I2C_MEMADD_SIZE_8BIT, Buffer, Length);
709 }
710 
720 void TS_IO_WriteMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length)
721 {
722  I2Cx_WriteMultiple(&hI2cAudioHandler, Addr, (uint16_t)Reg, I2C_MEMADD_SIZE_8BIT, Buffer, Length);
723 }
724 
730 void TS_IO_Delay(uint32_t Delay)
731 {
732  HAL_Delay(Delay);
733 }
734 
735 /**************************** LINK OTM8009A (Display driver) ******************/
740 void OTM8009A_IO_Delay(uint32_t Delay)
741 {
742  HAL_Delay(Delay);
743 }
744 
761 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
#define I2C_MEMADD_SIZE_16BIT
void EEPROM_IO_Init(void)
Initializes peripherals used by the I2C EEPROM driver.
#define DISCOVERY_AUDIO_I2Cx_SDA_PIN
#define GPIO_MODE_AF_OD
#define DISCOVERY_AUDIO_I2Cx_SDA_AF
#define GPIO_NOPULL
void BSP_LED_Init(Led_TypeDef Led)
Configures LED GPIO.
void AUDIO_IO_DeInit(void)
DeInitializes Audio low level.
#define DISCOVERY_EXT_I2Cx_FORCE_RESET()
void HAL_Delay(__IO uint32_t Delay)
This function provides accurate delay (in milliseconds) based on variable incremented.
uint32_t BSP_GetVersion(void)
This method returns the STM32F769I Discovery BSP Driver revision.
uint32_t BSP_PB_GetState(Button_TypeDef Button)
Returns the selected button state.
HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
#define LED2_GPIO_PORT
#define DISCOVERY_EXT_I2Cx_SCL_SDA_AF
#define DISCOVERY_EXT_I2Cx_SCL_PIN
Definition for I2C1 Pins.
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
#define LED2_PIN
#define __STM32F769I_DISCOVERY_BSP_VERSION
This file contains definitions for STM32F769I-Discovery LEDs, push-buttons hardware resources...
#define I2C_GENERALCALL_DISABLE
GPIO_TypeDef * BUTTON_PORT[BUTTONn]
#define I2C_NOSTRETCH_DISABLE
void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode)
Configures button GPIO and EXTI Line.
HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
#define DISCOVERY_EXT_I2Cx_ER_IRQn
#define DISCOVERY_EXT_I2Cx_EV_IRQn
Definition of I2C interrupt requests.
#define LED1_PIN
HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout)
#define GPIO_MODE_INPUT
uint32_t GPIO_PIN[LEDn]
ButtonMode_TypeDef
ButtonMode_TypeDef STM32F769I_Discovery board Buttons Modes definitions.
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
#define GPIO_PULLUP
const uint16_t BUTTON_PIN[BUTTONn]
const uint16_t BUTTON_IRQn[BUTTONn]
#define DISCOVERY_EXT_I2Cx_RELEASE_RESET()
void TS_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value)
Writes a single data.
void BSP_LED_DeInit(Led_TypeDef Led)
DeInit LEDs.
void BSP_LED_Toggle(Led_TypeDef Led)
Toggles the selected LED.
void TS_IO_Init(void)
Initializes Touchscreen low level.
General Purpose I/O.
Definition: stm32f745xx.h:596
#define DISCOVERY_AUDIO_I2Cx_SCL_AF
#define DISCOVERY_AUDIO_I2Cx_SDA_GPIO_CLK_ENABLE()
#define DISCOVERY_AUDIO_I2Cx
User can use this section to tailor I2C4/I2C4 instance used and associated resources (audio codec)...
uint8_t TS_IO_Read(uint8_t Addr, uint8_t Reg)
Reads a single data.
#define WAKEUP_BUTTON_EXTI_IRQn
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
#define DISCOVERY_AUDIO_I2Cx_SDA_GPIO_PORT
void BSP_PB_DeInit(Button_TypeDef Button)
Push Button DeInit.
IRQn_Type
STM32F7xx Interrupt Number Definition, according to the selected device in Library_configuration_sect...
Definition: stm32f745xx.h:67
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
HAL_StatusTypeDef EEPROM_IO_IsDeviceReady(uint16_t DevAddress, uint32_t Trials)
Checks if target device is ready for communication.
HAL_StatusTypeDef EEPROM_IO_ReadData(uint16_t DevAddress, uint16_t MemAddress, uint8_t *pBuffer, uint32_t BufferSize)
Read data from I2C EEPROM driver in using DMA channel.
Led_TypeDef
Led_TypeDef STM32F769I_Discovery board leds definitions.
#define BUTTON_GPIO_CLK_ENABLE()
#define WAKEUP_BUTTON_PIN
Wakeup push-button.
void AUDIO_IO_Write(uint8_t Addr, uint16_t Reg, uint16_t Value)
Writes a single data.
#define GPIO_MODE_IT_RISING
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
#define LEDx_GPIO_CLK_ENABLE()
HAL_StatusTypeDef EEPROM_IO_WriteData(uint16_t DevAddress, uint16_t MemAddress, uint8_t *pBuffer, uint32_t BufferSize)
Write data to I2C EEPROM driver in using DMA channel.
void BSP_LED_On(Led_TypeDef Led)
Turns selected LED On.
#define DISCOVERY_AUDIO_I2Cx_SCL_GPIO_CLK_ENABLE()
#define I2C_MEMADD_SIZE_8BIT
#define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()
#define DISCOVERY_AUDIO_I2Cx_SCL_PIN
Definition for I2C4 Pins.
#define DISCOVERY_AUDIO_I2Cx_RELEASE_RESET()
HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
GPIO Init structure definition.
Button_TypeDef
Button_TypeDef STM32F769I_Discovery board Buttons definitions.
GPIO_TypeDef * GPIO_PORT[LEDn]
uint32_t GeneralCallMode
#define WAKEUP_BUTTON_GPIO_PORT
#define DISCOVERY_EXT_I2Cx
User can use this section to tailor I2C1/I2C1 instance used and associated resources. Definition for I2C1 clock resources.
uint32_t DualAddressMode
void TS_IO_Delay(uint32_t Delay)
Delay function used in TouchScreen low level driver.
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
#define LEDn
#define DISCOVERY_EXT_I2Cx_CLK_ENABLE()
#define DISCOVERY_EXT_I2Cx_SDA_PIN
void BSP_LED_Off(Led_TypeDef Led)
Turns selected LED Off.
#define DISCOVERY_AUDIO_I2Cx_ER_IRQn
void AUDIO_IO_Init(void)
Initializes Audio low level.
HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
#define I2C_ADDRESSINGMODE_7BIT
void TS_IO_WriteMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length)
Writes multiple data with I2C communication channel from MCU to TouchScreen.
#define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_PORT
#define LED1_GPIO_PORT
#define DISCOVERY_AUDIO_I2Cx_CLK_ENABLE()
#define DISCOVERY_AUDIO_I2Cx_EV_IRQn
Definition of I2C4 interrupt requests.
#define I2C_DUALADDRESS_DISABLE
uint16_t TS_IO_ReadMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length)
Reads multiple data with I2C communication channel from TouchScreen.
void OTM8009A_IO_Delay(uint32_t Delay)
OTM8009A delay.
HAL_StatusTypeDef
HAL Status structures definition.
void HAL_NVIC_DisableIRQ(IRQn_Type IRQn)
#define DISCOVERY_AUDIO_I2Cx_SCL_GPIO_PORT
#define DISCOVERY_I2Cx_TIMING
#define GPIO_MODE_OUTPUT_PP
#define BUTTONn
I2C_InitTypeDef Init
uint16_t AUDIO_IO_Read(uint8_t Addr, uint16_t Reg)
Reads a single data.
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
void AUDIO_IO_Delay(uint32_t Delay)
AUDIO Codec delay.
#define DISCOVERY_AUDIO_I2Cx_FORCE_RESET()
HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c)