Bladeren bron

deleted Useless code

haitao 6 maanden geleden
bovenliggende
commit
7b3ed4eef2
67 gewijzigde bestanden met toevoegingen van 0 en 28629 verwijderingen
  1. 0 503
      app/Drivers/BSP/Adafruit_Shield/Release_Notes.html
  2. 0 1067
      app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_lcd.c
  3. 0 195
      app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_lcd.h
  4. 0 1037
      app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_sd.c
  5. 0 247
      app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_sd.h
  6. 0 759
      app/Drivers/BSP/Components/Common/Release_Notes.html
  7. 0 143
      app/Drivers/BSP/Components/Common/accelero.h
  8. 0 122
      app/Drivers/BSP/Components/Common/audio.h
  9. 0 141
      app/Drivers/BSP/Components/Common/camera.h
  10. 0 115
      app/Drivers/BSP/Components/Common/epd.h
  11. 0 145
      app/Drivers/BSP/Components/Common/gyro.h
  12. 0 168
      app/Drivers/BSP/Components/Common/idd.h
  13. 0 150
      app/Drivers/BSP/Components/Common/io.h
  14. 0 114
      app/Drivers/BSP/Components/Common/lcd.h
  15. 0 125
      app/Drivers/BSP/Components/Common/magneto.h
  16. 0 107
      app/Drivers/BSP/Components/Common/ts.h
  17. 0 118
      app/Drivers/BSP/Components/Common/tsensor.h
  18. 0 659
      app/Drivers/BSP/Components/cs43l22/Release_Notes.html
  19. 0 494
      app/Drivers/BSP/Components/cs43l22/cs43l22.c
  20. 0 228
      app/Drivers/BSP/Components/cs43l22/cs43l22.h
  21. 0 499
      app/Drivers/BSP/Components/ili9320/Release_Notes.html
  22. 0 534
      app/Drivers/BSP/Components/ili9320/ili9320.c
  23. 0 256
      app/Drivers/BSP/Components/ili9320/ili9320.h
  24. 0 756
      app/Drivers/BSP/Components/ili9325/Release_Notes.html
  25. 0 518
      app/Drivers/BSP/Components/ili9325/ili9325.c
  26. 0 256
      app/Drivers/BSP/Components/ili9325/ili9325.h
  27. 0 417
      app/Drivers/BSP/Components/ili9341/Release_Notes.html
  28. 0 346
      app/Drivers/BSP/Components/ili9341/ili9341.c
  29. 0 249
      app/Drivers/BSP/Components/ili9341/ili9341.h
  30. 0 426
      app/Drivers/BSP/Components/ov2640/Release_Notes.html
  31. 0 1351
      app/Drivers/BSP/Components/ov2640/ov2640.c
  32. 0 226
      app/Drivers/BSP/Components/ov2640/ov2640.h
  33. 0 307
      app/Drivers/BSP/Components/st7735/Release_Notes.html
  34. 0 471
      app/Drivers/BSP/Components/st7735/st7735.c
  35. 0 214
      app/Drivers/BSP/Components/st7735/st7735.h
  36. 0 378
      app/Drivers/BSP/Components/stmpe811/Release_Notes.html
  37. 0 977
      app/Drivers/BSP/Components/stmpe811/stmpe811.c
  38. 0 291
      app/Drivers/BSP/Components/stmpe811/stmpe811.h
  39. 0 1862
      app/Drivers/BSP/STM322xG_EVAL/Release_Notes.html
  40. BIN
      app/Drivers/BSP/STM322xG_EVAL/STM322xG_EVAL_BSP_User_Manual.chm
  41. 0 1163
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval.c
  42. 0 366
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval.h
  43. 0 677
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_audio.c
  44. 0 177
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_audio.h
  45. 0 481
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_camera.c
  46. 0 140
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_camera.h
  47. 0 407
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_eeprom.c
  48. 0 126
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_eeprom.h
  49. 0 233
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_io.c
  50. 0 124
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_io.h
  51. 0 1020
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_lcd.c
  52. 0 200
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_lcd.h
  53. 0 517
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sd.c
  54. 0 162
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sd.h
  55. 0 325
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sram.c
  56. 0 124
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sram.h
  57. 0 236
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_ts.c
  58. 0 125
      app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_ts.h
  59. 0 168
      app/Drivers/BSP/STM32F2xx_Nucleo_144/Release_Notes.html
  60. BIN
      app/Drivers/BSP/STM32F2xx_Nucleo_144/STM32F2xx_Nucleo_144_BSP_User_Manual.chm
  61. 0 881
      app/Drivers/BSP/STM32F2xx_Nucleo_144/stm32f2xx_nucleo_144.c
  62. 0 345
      app/Drivers/BSP/STM32F2xx_Nucleo_144/stm32f2xx_nucleo_144.h
  63. 0 1961
      app/Drivers/STM32F2xx_HAL_Driver/Release_Notes.html
  64. BIN
      app/Drivers/STM32F2xx_HAL_Driver/STM32F215xx_User_Manual.chm
  65. BIN
      app/Drivers/STM32F2xx_HAL_Driver/STM32F217xx_User_Manual.chm
  66. 0 1700
      app/Drivers/STM32F2xx_HAL_Driver/_htmresc/mini-st.css
  67. BIN
      app/Drivers/STM32F2xx_HAL_Driver/_htmresc/st_logo.png

File diff suppressed because it is too large
+ 0 - 503
app/Drivers/BSP/Adafruit_Shield/Release_Notes.html


File diff suppressed because it is too large
+ 0 - 1067
app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_lcd.c


+ 0 - 195
app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_lcd.h

@@ -1,195 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm32_adafruit_lcd.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm32_adafruit_lcd.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32_ADAFRUIT_LCD_H
-#define __STM32_ADAFRUIT_LCD_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Components/st7735/st7735.h"
-#include "../../../Utilities/Fonts/fonts.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM32_ADAFRUIT
-  * @{
-  */
- 
-/** @addtogroup STM32_ADAFRUIT_LCD
-  * @{
-  */ 
-
-
-/** @defgroup STM32_ADAFRUIT_LCD_Exported_Types
-  * @{
-  */
-   
-/** 
-  * @brief  Draw Properties structures definition
-  */ 
-typedef struct 
-{ 
-  uint32_t TextColor;
-  uint32_t BackColor;
-  sFONT    *pFont; 
-
-}LCD_DrawPropTypeDef;
-
-/** 
-  * @brief  Point structures definition
-  */ 
-typedef struct 
-{
-  int16_t X;
-  int16_t Y;
-
-}Point, * pPoint;
-
-/** 
-  * @brief  Line mode structures definition
-  */ 
-typedef enum
-{
-  CENTER_MODE             = 0x01,    /*!< Center mode */
-  RIGHT_MODE              = 0x02,    /*!< Right mode  */
-  LEFT_MODE               = 0x03     /*!< Left mode   */
-
-}Line_ModeTypdef;
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32_ADAFRUIT_LCD_Exported_Constants
-  * @{
-  */
-  
-#define __IO    volatile  
-
-/** 
-  * @brief  LCD status structure definition  
-  */     
-#define LCD_OK         0x00
-#define LCD_ERROR      0x01
-#define LCD_TIMEOUT    0x02
-
-/** 
-  * @brief  LCD color  
-  */
-#define LCD_COLOR_BLACK         0x0000
-#define LCD_COLOR_GREY          0xF7DE          
-#define LCD_COLOR_BLUE          0x001F
-#define LCD_COLOR_RED           0xF800
-#define LCD_COLOR_GREEN         0x07E0
-#define LCD_COLOR_CYAN          0x07FF
-#define LCD_COLOR_MAGENTA       0xF81F
-#define LCD_COLOR_YELLOW        0xFFE0
-#define LCD_COLOR_WHITE         0xFFFF
-
-/** 
-  * @brief LCD default font 
-  */ 
-#define LCD_DEFAULT_FONT         Font8
-
-/**
-  * @}
-  */
-
-/** @defgroup STM32_ADAFRUIT_LCD_Exported_Functions
-  * @{
-  */   
-uint8_t  BSP_LCD_Init(void);
-uint32_t BSP_LCD_GetXSize(void);
-uint32_t BSP_LCD_GetYSize(void);
- 
-uint16_t BSP_LCD_GetTextColor(void);
-uint16_t BSP_LCD_GetBackColor(void);
-void     BSP_LCD_SetTextColor(__IO uint16_t Color);
-void     BSP_LCD_SetBackColor(__IO uint16_t Color);
-void     BSP_LCD_SetFont(sFONT *fonts);
-sFONT    *BSP_LCD_GetFont(void);
-
-void     BSP_LCD_Clear(uint16_t Color);
-void     BSP_LCD_ClearStringLine(uint16_t Line);
-void     BSP_LCD_DisplayStringAtLine(uint16_t Line, uint8_t *ptr);
-void     BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, uint8_t *Text, Line_ModeTypdef Mode);
-void     BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii);
-
-void     BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGB_Code);
-void     BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     BSP_LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
-void     BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
-void     BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
-void     BSP_LCD_DrawPolygon(pPoint Points, uint16_t PointCount);
-void     BSP_LCD_DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
-void     BSP_LCD_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pBmp);
-void     BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
-void     BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
-void     BSP_LCD_FillPolygon(pPoint Points, uint16_t PointCount);
-void     BSP_LCD_FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
-
-void     BSP_LCD_DisplayOff(void);
-void     BSP_LCD_DisplayOn(void);
-
-/**
-  * @}
-  */
-  
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM32_ADAFRUIT_LCD_H */
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 1037
app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_sd.c


+ 0 - 247
app/Drivers/BSP/Adafruit_Shield/stm32_adafruit_sd.h

@@ -1,247 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm32_adafruit_sd.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm32_adafruit_sd.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32_ADAFRUIT_SD_H
-#define __STM32_ADAFRUIT_SD_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */ 
-#define __IO    volatile   
-   
-/** @addtogroup STM32_ADAFRUIT
-  * @{
-  */
-    
-/** @defgroup STM32_ADAFRUIT_SD
-  * @{
-  */    
-
-/** @defgroup STM32_ADAFRUIT_SD_Exported_Types
-  * @{
-  */
-   
-/** 
-  * @brief  SD status structure definition  
-  */     
-enum {    
-      BSP_SD_OK = 0x00,      
-      MSD_OK = 0x00,
-      BSP_SD_ERROR = 0x01,
-      BSP_SD_TIMEOUT
-};
-   
-typedef struct              
-{
-  uint8_t  Reserved1:2;               /* Reserved */
-  uint16_t DeviceSize:12;             /* Device Size */
-  uint8_t  MaxRdCurrentVDDMin:3;      /* Max. read current @ VDD min */
-  uint8_t  MaxRdCurrentVDDMax:3;      /* Max. read current @ VDD max */
-  uint8_t  MaxWrCurrentVDDMin:3;      /* Max. write current @ VDD min */
-  uint8_t  MaxWrCurrentVDDMax:3;      /* Max. write current @ VDD max */
-  uint8_t  DeviceSizeMul:3;           /* Device size multiplier */
-} struct_v1;
-
-
-typedef struct              
-{
-  uint8_t  Reserved1:6;               /* Reserved */
-  uint32_t DeviceSize:22;             /* Device Size */
-  uint8_t  Reserved2:1;               /* Reserved */
-} struct_v2;
-
-/** 
-  * @brief  Card Specific Data: CSD Register
-  */ 
-typedef struct
-{
-  /* Header part */
-  uint8_t  CSDStruct:2;            /* CSD structure */
-  uint8_t  Reserved1:6;            /* Reserved */
-  uint8_t  TAAC:8;                 /* Data read access-time 1 */
-  uint8_t  NSAC:8;                 /* Data read access-time 2 in CLK cycles */
-  uint8_t  MaxBusClkFrec:8;        /* Max. bus clock frequency */
-  uint16_t CardComdClasses:12;      /* Card command classes */
-  uint8_t  RdBlockLen:4;           /* Max. read data block length */
-  uint8_t  PartBlockRead:1;        /* Partial blocks for read allowed */
-  uint8_t  WrBlockMisalign:1;      /* Write block misalignment */
-  uint8_t  RdBlockMisalign:1;      /* Read block misalignment */
-  uint8_t  DSRImpl:1;              /* DSR implemented */
-  
-  /* v1 or v2 struct */
-  union csd_version {
-    struct_v1 v1;
-    struct_v2 v2;
-  } version;
-  
-  uint8_t  EraseSingleBlockEnable:1;  /* Erase single block enable */
-  uint8_t  EraseSectorSize:7;         /* Erase group size multiplier */
-  uint8_t  WrProtectGrSize:7;         /* Write protect group size */
-  uint8_t  WrProtectGrEnable:1;       /* Write protect group enable */
-  uint8_t  Reserved2:2;               /* Reserved */
-  uint8_t  WrSpeedFact:3;             /* Write speed factor */
-  uint8_t  MaxWrBlockLen:4;           /* Max. write data block length */
-  uint8_t  WriteBlockPartial:1;       /* Partial blocks for write allowed */
-  uint8_t  Reserved3:5;               /* Reserved */
-  uint8_t  FileFormatGrouop:1;        /* File format group */
-  uint8_t  CopyFlag:1;                /* Copy flag (OTP) */
-  uint8_t  PermWrProtect:1;           /* Permanent write protection */
-  uint8_t  TempWrProtect:1;           /* Temporary write protection */
-  uint8_t  FileFormat:2;              /* File Format */
-  uint8_t  Reserved4:2;               /* Reserved */
-  uint8_t  crc:7;                     /* Reserved */
-  uint8_t  Reserved5:1;               /* always 1*/
-  
-} SD_CSD;
-
-/** 
-  * @brief  Card Identification Data: CID Register   
-  */
-typedef struct
-{
-  __IO uint8_t  ManufacturerID;       /* ManufacturerID */
-  __IO uint16_t OEM_AppliID;          /* OEM/Application ID */
-  __IO uint32_t ProdName1;            /* Product Name part1 */
-  __IO uint8_t  ProdName2;            /* Product Name part2*/
-  __IO uint8_t  ProdRev;              /* Product Revision */
-  __IO uint32_t ProdSN;               /* Product Serial Number */
-  __IO uint8_t  Reserved1;            /* Reserved1 */
-  __IO uint16_t ManufactDate;         /* Manufacturing Date */
-  __IO uint8_t  CID_CRC;              /* CID CRC */
-  __IO uint8_t  Reserved2;            /* always 1 */
-} SD_CID;
-
-/** 
-  * @brief SD Card information 
-  */
-typedef struct
-{
-  SD_CSD Csd;
-  SD_CID Cid;
-  uint32_t CardCapacity;              /*!< Card Capacity */
-  uint32_t CardBlockSize;             /*!< Card Block Size */
-  uint32_t LogBlockNbr;               /*!< Specifies the Card logical Capacity in blocks   */
-  uint32_t LogBlockSize;              /*!< Specifies logical block size in bytes           */
-} SD_CardInfo;
-
-/**
-  * @}
-  */
-  
-/** @defgroup STM32_ADAFRUIT_SPI_SD_Exported_Constants
-  * @{
-  */ 
-  
-/**
-  * @brief  Block Size
-  */
-#define SD_BLOCK_SIZE    0x200
-
-/**
-  * @brief  SD detection on its memory slot
-  */
-#define SD_PRESENT               ((uint8_t)0x01)
-#define SD_NOT_PRESENT           ((uint8_t)0x00)
-
-#define SD_DATATIMEOUT           ((uint32_t)100000000)
-
-/** 
-  * @brief SD Card information structure 
-  */   
-#define BSP_SD_CardInfo SD_CardInfo
-
-/**
-  * @}
-  */
-  
-/** @defgroup STM32_ADAFRUIT_SD_Exported_Macro
-  * @{
-  */ 
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32_ADAFRUIT_SD_Exported_Functions
-  * @{
-  */   
-uint8_t BSP_SD_Init(void);
-uint8_t BSP_SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t Timeout);
-uint8_t BSP_SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32_t Timeout);
-uint8_t BSP_SD_Erase(uint32_t StartAddr, uint32_t EndAddr);
-uint8_t BSP_SD_GetCardState(void);
-uint8_t BSP_SD_GetCardInfo(SD_CardInfo *pCardInfo);
-   
-/* Link functions for SD Card peripheral*/
-void    SD_IO_Init(void);
-void    SD_IO_CSState(uint8_t state);
-void    SD_IO_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength);
-uint8_t SD_IO_WriteByte(uint8_t Data);
-
-/* Link function for HAL delay */
-void HAL_Delay(__IO uint32_t Delay);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM32_ADAFRUIT_SD_H */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 759
app/Drivers/BSP/Components/Common/Release_Notes.html


+ 0 - 143
app/Drivers/BSP/Components/Common/accelero.h

@@ -1,143 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    accelero.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This header file contains the functions prototypes for the Accelerometer driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __ACCELERO_H
-#define __ACCELERO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup ACCELERO
-  * @{
-  */
-
-/** @defgroup ACCELERO_Exported_Types
-  * @{
-  */ 
-
-/** @defgroup ACCELERO_Driver_structure  Accelerometer Driver structure
-  * @{
-  */
-typedef struct
-{  
-  void      (*Init)(uint16_t);
-  void      (*DeInit)(void); 
-  uint8_t   (*ReadID)(void);
-  void      (*Reset)(void);
-  void      (*LowPower)(void);
-  void      (*ConfigIT)(void);
-  void      (*EnableIT)(uint8_t);
-  void      (*DisableIT)(uint8_t);
-  uint8_t   (*ITStatus)(uint16_t);
-  void      (*ClearIT)(void);
-  void      (*FilterConfig)(uint8_t);
-  void      (*FilterCmd)(uint8_t);
-  void      (*GetXYZ)(int16_t *);
-}ACCELERO_DrvTypeDef;
-/**
-  * @}
-  */
-
-/** @defgroup ACCELERO_Configuration_structure  Accelerometer Configuration structure
-  * @{
-  */
-
-/* ACCELERO struct */
-typedef struct
-{
-  uint8_t Power_Mode;                         /* Power-down/Normal Mode */
-  uint8_t AccOutput_DataRate;                 /* OUT data rate */
-  uint8_t Axes_Enable;                        /* Axes enable */
-  uint8_t High_Resolution;                    /* High Resolution enabling/disabling */
-  uint8_t BlockData_Update;                   /* Block Data Update */
-  uint8_t Endianness;                         /* Endian Data selection */
-  uint8_t AccFull_Scale;                      /* Full Scale selection */
-  uint8_t Communication_Mode;
-}ACCELERO_InitTypeDef;
-
-/* ACCELERO High Pass Filter struct */
-typedef struct
-{
-  uint8_t HighPassFilter_Mode_Selection;      /* Internal filter mode */
-  uint8_t HighPassFilter_CutOff_Frequency;    /* High pass filter cut-off frequency */
-  uint8_t HighPassFilter_AOI1;                /* HPF_enabling/disabling for AOI function on interrupt 1 */
-  uint8_t HighPassFilter_AOI2;                /* HPF_enabling/disabling for AOI function on interrupt 2 */
-  uint8_t HighPassFilter_Data_Sel;
-  uint8_t HighPassFilter_Stat;
-}ACCELERO_FilterConfigTypeDef;
-
-/**
-  * @}
-  */
-
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ACCELERO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 122
app/Drivers/BSP/Components/Common/audio.h

@@ -1,122 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    audio.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This header file contains the common defines and functions prototypes
-  *          for the Audio driver.  
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __AUDIO_H
-#define __AUDIO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup AUDIO
-  * @{
-  */
-
-/** @defgroup AUDIO_Exported_Constants
-  * @{
-  */
-
-/* Codec audio Standards */
-#define CODEC_STANDARD                0x04
-#define I2S_STANDARD                  I2S_STANDARD_PHILIPS
-
-/**
-  * @}
-  */
-
-/** @defgroup AUDIO_Exported_Types
-  * @{
-  */
-
-/** @defgroup AUDIO_Driver_structure  Audio Driver structure
-  * @{
-  */
-typedef struct
-{
-  uint32_t  (*Init)(uint16_t, uint16_t, uint8_t, uint32_t);
-  void      (*DeInit)(void);
-  uint32_t  (*ReadID)(uint16_t);
-  uint32_t  (*Play)(uint16_t, uint16_t*, uint16_t);
-  uint32_t  (*Pause)(uint16_t);
-  uint32_t  (*Resume)(uint16_t);
-  uint32_t  (*Stop)(uint16_t, uint32_t);
-  uint32_t  (*SetFrequency)(uint16_t, uint32_t);
-  uint32_t  (*SetVolume)(uint16_t, uint8_t);
-  uint32_t  (*SetMute)(uint16_t, uint32_t);
-  uint32_t  (*SetOutputMode)(uint16_t, uint8_t);
-  uint32_t  (*Reset)(uint16_t);
-}AUDIO_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __AUDIO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 141
app/Drivers/BSP/Components/Common/camera.h

@@ -1,141 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    camera.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This header file contains the common defines and functions prototypes
-  *          for the camera driver.   
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __CAMERA_H
-#define __CAMERA_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup CAMERA
-  * @{
-  */
-
-
-/** @defgroup CAMERA_Exported_Types
-  * @{
-  */ 
-
-/** @defgroup CAMERA_Driver_structure  Camera Driver structure
-  * @{
-  */
-typedef struct
-{
-  void     (*Init)(uint16_t, uint32_t);
-  uint16_t (*ReadID)(uint16_t);  
-  void     (*Config)(uint16_t, uint32_t, uint32_t, uint32_t);
-}CAMERA_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/** @defgroup CAMERA_Exported_Constants
-  * @{
-  */
-#define CAMERA_R160x120                 0x00   /* QQVGA Resolution                     */
-#define CAMERA_R320x240                 0x01   /* QVGA Resolution                      */
-#define CAMERA_R480x272                 0x02   /* 480x272 Resolution                   */
-#define CAMERA_R640x480                 0x03   /* VGA Resolution                       */  
-
-#define CAMERA_CONTRAST_BRIGHTNESS      0x00   /* Camera contrast brightness features  */
-#define CAMERA_BLACK_WHITE              0x01   /* Camera black white feature           */
-#define CAMERA_COLOR_EFFECT             0x03   /* Camera color effect feature          */
-
-#define CAMERA_BRIGHTNESS_LEVEL0        0x00   /* Brightness level -2         */
-#define CAMERA_BRIGHTNESS_LEVEL1        0x01   /* Brightness level -1         */
-#define CAMERA_BRIGHTNESS_LEVEL2        0x02   /* Brightness level 0          */
-#define CAMERA_BRIGHTNESS_LEVEL3        0x03   /* Brightness level +1         */
-#define CAMERA_BRIGHTNESS_LEVEL4        0x04   /* Brightness level +2         */
-
-#define CAMERA_CONTRAST_LEVEL0          0x05   /* Contrast level -2           */
-#define CAMERA_CONTRAST_LEVEL1          0x06   /* Contrast level -1           */
-#define CAMERA_CONTRAST_LEVEL2          0x07   /* Contrast level  0           */
-#define CAMERA_CONTRAST_LEVEL3          0x08   /* Contrast level +1           */
-#define CAMERA_CONTRAST_LEVEL4          0x09   /* Contrast level +2           */    
-    
-#define CAMERA_BLACK_WHITE_BW           0x00   /* Black and white effect      */
-#define CAMERA_BLACK_WHITE_NEGATIVE     0x01   /* Negative effect             */
-#define CAMERA_BLACK_WHITE_BW_NEGATIVE  0x02   /* BW and Negative effect      */
-#define CAMERA_BLACK_WHITE_NORMAL       0x03   /* Normal effect               */
-                                        
-#define CAMERA_COLOR_EFFECT_NONE        0x00   /* No effects                  */
-#define CAMERA_COLOR_EFFECT_BLUE        0x01   /* Blue effect                 */
-#define CAMERA_COLOR_EFFECT_GREEN       0x02   /* Green effect                */
-#define CAMERA_COLOR_EFFECT_RED         0x03   /* Red effect                  */
-#define CAMERA_COLOR_EFFECT_ANTIQUE     0x04   /* Antique effect              */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CAMERA_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 115
app/Drivers/BSP/Components/Common/epd.h

@@ -1,115 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    epd.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This file contains all the functions prototypes for the 
-  *          EPD (E Paper Display) driver.   
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __EPD_H
-#define __EPD_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-  
-/** @addtogroup Common
-  * @{
-  */
-
-/** @addtogroup EPD
-  * @{
-  */
-
-/** @defgroup EPD_Exported_Types
-  * @{
-  */
-
-/** @defgroup EPD_Driver_structure  E Paper Display Driver structure
-  * @{
-  */
-typedef struct
-{
-  void     (*Init)(void);
-  void     (*WritePixel)(uint8_t);
-
-  /* Optimized operation */
-  void     (*SetDisplayWindow)(uint16_t, uint16_t, uint16_t, uint16_t);
-  void     (*RefreshDisplay)(void);
-  void     (*CloseChargePump)(void);
-
-  uint16_t (*GetEpdPixelWidth)(void);
-  uint16_t (*GetEpdPixelHeight)(void);
-  void     (*DrawImage)(uint16_t, uint16_t, uint16_t, uint16_t, uint8_t*);
-}
-EPD_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* EPD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 145
app/Drivers/BSP/Components/Common/gyro.h

@@ -1,145 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    gyro.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This header file contains the functions prototypes for the gyroscope driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-  
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __GYRO_H
-#define __GYRO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup GYRO
-  * @{
-  */
-
-/** @defgroup GYRO_Exported_Types
-  * @{
-  */
-
-/** @defgroup GYRO_Driver_structure  Gyroscope Driver structure
-  * @{
-  */
-typedef struct
-{  
-  void       (*Init)(uint16_t);
-  void       (*DeInit)(void); 
-  uint8_t    (*ReadID)(void);
-  void       (*Reset)(void);
-  void       (*LowPower)(uint16_t);   
-  void       (*ConfigIT)(uint16_t); 
-  void       (*EnableIT)(uint8_t);
-  void       (*DisableIT)(uint8_t);  
-  uint8_t    (*ITStatus)(uint16_t, uint16_t);   
-  void       (*ClearIT)(uint16_t, uint16_t); 
-  void       (*FilterConfig)(uint8_t);  
-  void       (*FilterCmd)(uint8_t);  
-  void       (*GetXYZ)(float *);
-}GYRO_DrvTypeDef;
-/**
-  * @}
-  */
-
-/** @defgroup GYRO_Config_structure  Gyroscope Configuration structure
-  * @{
-  */
-
-typedef struct
-{
-  uint8_t Power_Mode;                         /* Power-down/Sleep/Normal Mode */
-  uint8_t Output_DataRate;                    /* OUT data rate */
-  uint8_t Axes_Enable;                        /* Axes enable */
-  uint8_t Band_Width;                         /* Bandwidth selection */
-  uint8_t BlockData_Update;                   /* Block Data Update */
-  uint8_t Endianness;                         /* Endian Data selection */
-  uint8_t Full_Scale;                         /* Full Scale selection */
-}GYRO_InitTypeDef;
-
-/* GYRO High Pass Filter struct */
-typedef struct
-{
-  uint8_t HighPassFilter_Mode_Selection;      /* Internal filter mode */
-  uint8_t HighPassFilter_CutOff_Frequency;    /* High pass filter cut-off frequency */
-}GYRO_FilterConfigTypeDef;
-
-/*GYRO Interrupt struct */
-typedef struct
-{
-  uint8_t Latch_Request;                      /* Latch interrupt request into CLICK_SRC register */
-  uint8_t Interrupt_Axes;                     /* X, Y, Z Axes Interrupts */ 
-  uint8_t Interrupt_ActiveEdge;               /* Interrupt Active edge */
-}GYRO_InterruptConfigTypeDef;  
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __GYRO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 168
app/Drivers/BSP/Components/Common/idd.h

@@ -1,168 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    idd.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This file contains all the functions prototypes for the IDD driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __IDD_H
-#define __IDD_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup IDD
-  * @{
-  */
-
-/** @defgroup IDD_Exported_Types IDD Exported Types
-  * @{
-  */
-
-/** @defgroup IDD_Config_structure  IDD Configuration structure
-  * @{
-  */
-typedef struct
-{
-  uint16_t AmpliGain;       /*!< Specifies ampli gain value
-                                 */
-  uint16_t VddMin;          /*!< Specifies minimum MCU VDD can reach to protect MCU from reset
-                                  */
-  uint16_t Shunt0Value;     /*!< Specifies value of Shunt 0 if existing
-                                 */
-  uint16_t Shunt1Value;     /*!< Specifies value of Shunt 1 if existing
-                                 */
-  uint16_t Shunt2Value;     /*!< Specifies value of Shunt 2 if existing
-                                 */
-  uint16_t Shunt3Value;     /*!< Specifies value of Shunt 3 if existing
-                                 */
-  uint16_t Shunt4Value;     /*!< Specifies value of Shunt 4 if existing
-                                  */
-  uint16_t Shunt0StabDelay; /*!< Specifies delay of Shunt 0 stabilization if existing
-                                  */
-  uint16_t Shunt1StabDelay; /*!< Specifies delay of Shunt 1 stabilization if existing
-                                  */
-  uint16_t Shunt2StabDelay; /*!< Specifies delay of Shunt 2 stabilization if existing
-                                  */
-  uint16_t Shunt3StabDelay; /*!< Specifies delay of Shunt 3 stabilization if existing
-                                  */
-  uint16_t Shunt4StabDelay; /*!< Specifies delay of Shunt 4 stabilization if existing
-                                  */
-  uint8_t ShuntNbOnBoard;   /*!< Specifies number of shunts that are present on board
-                                 This parameter can be a value of @ref IDD_shunt_number */
-  uint8_t ShuntNbUsed;      /*!< Specifies number of shunts used for measurement
-                                 This parameter can be a value of @ref IDD_shunt_number */
-  uint8_t VrefMeasurement;  /*!< Specifies if Vref is automatically measured before each Idd measurement
-                                 This parameter can be a value of @ref IDD_Vref_Measurement */
-  uint8_t Calibration;      /*!< Specifies if calibration is done before each Idd measurement
-                                  */
-  uint8_t PreDelayUnit;     /*!< Specifies Pre delay unit 
-                                 This parameter can be a value of @ref IDD_PreDelay */
-  uint8_t PreDelayValue;    /*!< Specifies Pre delay value in selected unit
-                                  */
-  uint8_t MeasureNb;        /*!< Specifies number of Measure to be performed 
-                                 This parameter can be a value between 1 and 256 */
-  uint8_t DeltaDelayUnit;   /*!< Specifies Delta delay unit
-                                  This parameter can be a value of @ref IDD_DeltaDelay */
-  uint8_t DeltaDelayValue;  /*!< Specifies Delta delay between 2 measures
-                                  value can be between 1 and 128 */
-}IDD_ConfigTypeDef;
-/**
-  * @}
-  */
-
-/** @defgroup IDD_Driver_structure  IDD Driver structure
-  * @{
-  */
-typedef struct
-{
-  void       (*Init)(uint16_t);
-  void       (*DeInit)(uint16_t);
-  uint16_t   (*ReadID)(uint16_t);
-  void       (*Reset)(uint16_t);
-  void       (*LowPower)(uint16_t);
-  void       (*WakeUp)(uint16_t);
-  void       (*Start)(uint16_t);
-  void       (*Config)(uint16_t,IDD_ConfigTypeDef);
-  void       (*GetValue)(uint16_t, uint32_t *);
-  void       (*EnableIT)(uint16_t);
-  void       (*ClearIT)(uint16_t);
-  uint8_t    (*GetITStatus)(uint16_t);
-  void       (*DisableIT)(uint16_t);
-  void       (*ErrorEnableIT)(uint16_t);
-  void       (*ErrorClearIT)(uint16_t);
-  uint8_t    (*ErrorGetITStatus)(uint16_t);
-  void       (*ErrorDisableIT)(uint16_t);
-  uint8_t    (*ErrorGetSrc)(uint16_t);
-  uint8_t    (*ErrorGetCode)(uint16_t);
-}IDD_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __IDD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 150
app/Drivers/BSP/Components/Common/io.h

@@ -1,150 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    io.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This file contains all the functions prototypes for the IO driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __IO_H
-#define __IO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup IO
-  * @{
-  */
-
-/** @defgroup IO_Exported_Types
-  * @{
-  */
-
-/**
-  * @brief  IO Bit SET and Bit RESET enumeration
-  */
-typedef enum
-{
-  IO_PIN_RESET = 0,
-  IO_PIN_SET
-}IO_PinState;
-
-typedef enum
-{
-   IO_MODE_INPUT = 0,   /* input floating */
-   IO_MODE_OUTPUT,      /* output Push Pull */
-   IO_MODE_IT_RISING_EDGE,   /* float input - irq detect on rising edge */
-   IO_MODE_IT_FALLING_EDGE,  /* float input - irq detect on falling edge */
-   IO_MODE_IT_LOW_LEVEL,     /* float input - irq detect on low level */
-   IO_MODE_IT_HIGH_LEVEL,    /* float input - irq detect on high level */
-   /* following modes only available on MFX*/
-   IO_MODE_ANALOG,           /* analog mode */
-   IO_MODE_OFF,              /* when pin isn't used*/
-   IO_MODE_INPUT_PU,         /* input with internal pull up resistor */
-   IO_MODE_INPUT_PD,         /* input with internal pull down resistor */
-   IO_MODE_OUTPUT_OD,          /* Open Drain output without internal resistor */
-   IO_MODE_OUTPUT_OD_PU,       /* Open Drain output with  internal pullup resistor */
-   IO_MODE_OUTPUT_OD_PD,       /* Open Drain output with  internal pulldown resistor */
-   IO_MODE_OUTPUT_PP,          /* PushPull output without internal resistor */
-   IO_MODE_OUTPUT_PP_PU,       /* PushPull output with  internal pullup resistor */
-   IO_MODE_OUTPUT_PP_PD,       /* PushPull output with  internal pulldown resistor */
-   IO_MODE_IT_RISING_EDGE_PU,   /* push up resistor input - irq on rising edge  */
-   IO_MODE_IT_RISING_EDGE_PD,   /* push dw resistor input - irq on rising edge  */
-   IO_MODE_IT_FALLING_EDGE_PU,  /* push up resistor input - irq on falling edge */
-   IO_MODE_IT_FALLING_EDGE_PD,  /* push dw resistor input - irq on falling edge */
-   IO_MODE_IT_LOW_LEVEL_PU,     /* push up resistor input - irq detect on low level */
-   IO_MODE_IT_LOW_LEVEL_PD,     /* push dw resistor input - irq detect on low level */
-   IO_MODE_IT_HIGH_LEVEL_PU,    /* push up resistor input - irq detect on high level */
-   IO_MODE_IT_HIGH_LEVEL_PD,    /* push dw resistor input - irq detect on high level */
-
-}IO_ModeTypedef;
-
-/** @defgroup IO_Driver_structure  IO Driver structure
-  * @{
-  */
-typedef struct
-{  
-  void       (*Init)(uint16_t);
-  uint16_t   (*ReadID)(uint16_t);
-  void       (*Reset)(uint16_t);
-  
-  void       (*Start)(uint16_t, uint32_t);
-  uint8_t    (*Config)(uint16_t, uint32_t, IO_ModeTypedef);
-  void       (*WritePin)(uint16_t, uint32_t, uint8_t);
-  uint32_t   (*ReadPin)(uint16_t, uint32_t);
-  
-  void       (*EnableIT)(uint16_t);
-  void       (*DisableIT)(uint16_t);
-  uint32_t    (*ITStatus)(uint16_t, uint32_t);
-  void       (*ClearIT)(uint16_t, uint32_t);
-    
-}IO_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __IO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 114
app/Drivers/BSP/Components/Common/lcd.h

@@ -1,114 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    lcd.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This file contains all the functions prototypes for the LCD driver.   
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __LCD_H
-#define __LCD_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-   
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-
-/** @addtogroup LCD
-  * @{
-  */
- 
-/** @defgroup LCD_Exported_Types
-  * @{
-  */
-
-/** @defgroup LCD_Driver_structure  LCD Driver structure
-  * @{
-  */
-typedef struct
-{
-  void     (*Init)(void);
-  uint16_t (*ReadID)(void);
-  void     (*DisplayOn)(void);
-  void     (*DisplayOff)(void);
-  void     (*SetCursor)(uint16_t, uint16_t);
-  void     (*WritePixel)(uint16_t, uint16_t, uint16_t);
-  uint16_t (*ReadPixel)(uint16_t, uint16_t);
-  
-   /* Optimized operation */
-  void     (*SetDisplayWindow)(uint16_t, uint16_t, uint16_t, uint16_t);
-  void     (*DrawHLine)(uint16_t, uint16_t, uint16_t, uint16_t);
-  void     (*DrawVLine)(uint16_t, uint16_t, uint16_t, uint16_t);
-  
-  uint16_t (*GetLcdPixelWidth)(void);
-  uint16_t (*GetLcdPixelHeight)(void);
-  void     (*DrawBitmap)(uint16_t, uint16_t, uint8_t*);
-  void     (*DrawRGBImage)(uint16_t, uint16_t, uint16_t, uint16_t, uint8_t*);
-}LCD_DrvTypeDef;    
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __LCD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 125
app/Drivers/BSP/Components/Common/magneto.h

@@ -1,125 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    magneto.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This header file contains the functions prototypes for the MAGNETO driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __MAGNETO_H
-#define __MAGNETO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup MAGNETO
-  * @{
-  */
-
-/** @defgroup MAGNETO_Exported_Types
-  * @{
-  */ 
-
-/** @defgroup MAGNETO_Config_structure  Magnetometer Configuration structure
-  * @{
-  */
-typedef struct
-{
-  uint8_t Register1;
-  uint8_t Register2;
-  uint8_t Register3;
-  uint8_t Register4;
-  uint8_t Register5;
-}MAGNETO_InitTypeDef;
-/**
-  * @}
-  */
-
-/** @defgroup MAGNETO_Driver_structure  Magnetometer Driver structure
-  * @{
-  */
-typedef struct
-{  
-  void      (*Init)(MAGNETO_InitTypeDef);
-  void      (*DeInit)(void); 
-  uint8_t   (*ReadID)(void);
-  void      (*Reset)(void);
-  void      (*LowPower)(void);
-  void      (*ConfigIT)(void);
-  void      (*EnableIT)(uint8_t);
-  void      (*DisableIT)(uint8_t);
-  uint8_t   (*ITStatus)(uint16_t);
-  void      (*ClearIT)(void);
-  void      (*FilterConfig)(uint8_t);
-  void      (*FilterCmd)(uint8_t);
-  void      (*GetXYZ)(int16_t *);
-}MAGNETO_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __MAGNETO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 107
app/Drivers/BSP/Components/Common/ts.h

@@ -1,107 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ts.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This file contains all the functions prototypes for the Touch Screen driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __TS_H
-#define __TS_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h> 
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup TS
-  * @{
-  */
-
-/** @defgroup TS_Exported_Types
-  * @{
-  */
-
-/** @defgroup TS_Driver_structure  Touch Sensor Driver structure
-  * @{
-  */
-typedef struct
-{  
-  void       (*Init)(uint16_t);
-  uint16_t   (*ReadID)(uint16_t);
-  void       (*Reset)(uint16_t);
-  void       (*Start)(uint16_t);
-  uint8_t    (*DetectTouch)(uint16_t);
-  void       (*GetXY)(uint16_t, uint16_t*, uint16_t*);
-  void       (*EnableIT)(uint16_t);
-  void       (*ClearIT)(uint16_t);
-  uint8_t    (*GetITStatus)(uint16_t);
-  void       (*DisableIT)(uint16_t);
-}TS_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 118
app/Drivers/BSP/Components/Common/tsensor.h

@@ -1,118 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    tsensor.h
-  * @author  MCD Application Team
-  * @version V4.0.1
-  * @date    21-July-2015
-  * @brief   This header file contains the functions prototypes for the
-  *          Temperature Sensor driver. 
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __TSENSOR_H
-#define __TSENSOR_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include <stdint.h>
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @addtogroup TSENSOR
-  * @{
-  */
-
-/** @defgroup TSENSOR_Exported_Types
-  * @{
-  */ 
-
-/** @defgroup TSENSOR_Config_structure  Temperature Sensor Configuration structure
-  * @{
-  */
-typedef struct
-{
-  uint8_t AlertMode;            /* Alert Mode Temperature out of range*/
-  uint8_t ConversionMode;       /* Continuous/One Shot Mode */
-  uint8_t ConversionResolution; /* Temperature Resolution */
-  uint8_t ConversionRate;       /* Number of measure per second */
-  uint8_t TemperatureLimitHigh; /* High Temperature Limit Range */
-  uint8_t TemperatureLimitLow;  /* Low Temperature Limit Range */
-}TSENSOR_InitTypeDef;
-/**
-  * @}
-  */
-
-/** @defgroup TSENSOR_Driver_structure  Temperature Sensor Driver structure
-  * @{
-  */
-typedef struct
-{  
-  void       (*Init)(uint16_t, TSENSOR_InitTypeDef *);
-  uint8_t    (*IsReady)(uint16_t, uint32_t);
-  uint8_t    (*ReadStatus)(uint16_t);
-  uint16_t   (*ReadTemp)(uint16_t); 
-}TSENSOR_DrvTypeDef;
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TSENSOR_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 659
app/Drivers/BSP/Components/cs43l22/Release_Notes.html


+ 0 - 494
app/Drivers/BSP/Components/cs43l22/cs43l22.c

@@ -1,494 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    cs43l22.c
-  * @author  MCD Application Team
-  * @version V2.0.2
-  * @date    06-October-2015
-  * @brief   This file provides the CS43L22 Audio Codec driver.   
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Includes ------------------------------------------------------------------*/
-#include "cs43l22.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-  
-/** @addtogroup Components
-  * @{
-  */ 
-
-/** @addtogroup CS43L22
-  * @brief     This file provides a set of functions needed to drive the 
-  *            CS43L22 audio codec.
-  * @{
-  */
-
-/** @defgroup CS43L22_Private_Types
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup CS43L22_Private_Defines
-  * @{
-  */
-#define VOLUME_CONVERT(Volume)    (((Volume) > 100)? 100:((uint8_t)(((Volume) * 255) / 100)))  
-/* Uncomment this line to enable verifying data sent to codec after each write 
-   operation (for debug purpose) */
-#if !defined (VERIFY_WRITTENDATA)  
-/* #define VERIFY_WRITTENDATA */
-#endif /* VERIFY_WRITTENDATA */
-/**
-  * @}
-  */ 
-
-/** @defgroup CS43L22_Private_Macros
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup CS43L22_Private_Variables
-  * @{
-  */
-
-/* Audio codec driver structure initialization */  
-AUDIO_DrvTypeDef cs43l22_drv = 
-{
-  cs43l22_Init,
-  cs43l22_DeInit,
-  cs43l22_ReadID,
-
-  cs43l22_Play,
-  cs43l22_Pause,
-  cs43l22_Resume,
-  cs43l22_Stop,  
-  
-  cs43l22_SetFrequency,  
-  cs43l22_SetVolume,
-  cs43l22_SetMute,  
-  cs43l22_SetOutputMode,
-  cs43l22_Reset,
-};
-
-static uint8_t Is_cs43l22_Stop = 1;
-
-volatile uint8_t OutputDev = 0;
-
-/**
-  * @}
-  */ 
-
-/** @defgroup CS43L22_Function_Prototypes
-  * @{
-  */
-static uint8_t CODEC_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value);
-/**
-  * @}
-  */ 
-
-/** @defgroup CS43L22_Private_Functions
-  * @{
-  */ 
-
-/**
-  * @brief Initializes the audio codec and the control interface.
-  * @param DeviceAddr: Device address on communication Bus.   
-  * @param OutputDevice: can be OUTPUT_DEVICE_SPEAKER, OUTPUT_DEVICE_HEADPHONE,
-  *                       OUTPUT_DEVICE_BOTH or OUTPUT_DEVICE_AUTO .
-  * @param Volume: Initial volume level (from 0 (Mute) to 100 (Max))
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_Init(uint16_t DeviceAddr, uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq)
-{
-  uint32_t counter = 0;
-  
-  /* Initialize the Control interface of the Audio Codec */
-  AUDIO_IO_Init();     
-    
-  /* Keep Codec powered OFF */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL1, 0x01);  
-  
-  /*Save Output device for mute ON/OFF procedure*/
-  switch (OutputDevice)
-  {
-  case OUTPUT_DEVICE_SPEAKER:
-    OutputDev = 0xFA;
-    break;
-    
-  case OUTPUT_DEVICE_HEADPHONE:
-    OutputDev = 0xAF;
-    break;
-    
-  case OUTPUT_DEVICE_BOTH:
-    OutputDev = 0xAA;
-    break;
-    
-  case OUTPUT_DEVICE_AUTO:
-    OutputDev = 0x05;
-    break;    
-    
-  default:
-    OutputDev = 0x05;
-    break;    
-  }
-  
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, OutputDev);
-  
-  /* Clock configuration: Auto detection */  
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_CLOCKING_CTL, 0x81);
-  
-  /* Set the Slave Mode and the audio Standard */  
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_INTERFACE_CTL1, CODEC_STANDARD);
-  
-  /* Set the Master volume */
-  counter += cs43l22_SetVolume(DeviceAddr, Volume);
-  
-  /* If the Speaker is enabled, set the Mono mode and volume attenuation level */
-  if(OutputDevice != OUTPUT_DEVICE_HEADPHONE)
-  {
-    /* Set the Speaker Mono mode */  
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_PLAYBACK_CTL2, 0x06);
-    
-    /* Set the Speaker attenuation level */  
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_SPEAKER_A_VOL, 0x00);
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_SPEAKER_B_VOL, 0x00);
-  }
-  
-  /* Additional configuration for the CODEC. These configurations are done to reduce
-  the time needed for the Codec to power off. If these configurations are removed, 
-  then a long delay should be added between powering off the Codec and switching 
-  off the I2S peripheral MCLK clock (which is the operating clock for Codec).
-  If this delay is not inserted, then the codec will not shut down properly and
-  it results in high noise after shut down. */
-  
-  /* Disable the analog soft ramp */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_ANALOG_ZC_SR_SETT, 0x00);
-  /* Disable the digital soft ramp */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_MISC_CTL, 0x04);
-  /* Disable the limiter attack level */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_LIMIT_CTL1, 0x00);
-  /* Adjust Bass and Treble levels */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_TONE_CTL, 0x0F);
-  /* Adjust PCM volume level */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_PCMA_VOL, 0x0A);
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_PCMB_VOL, 0x0A);
-  
-  /* Return communication control value */
-  return counter;  
-}
-
-/**
-  * @brief  Deinitializes the audio codec.
-  * @param  None
-  * @retval  None
-  */
-void cs43l22_DeInit(void)
-{
-  /* Deinitialize Audio Codec interface */
-  AUDIO_IO_DeInit();
-}
-
-/**
-  * @brief  Get the CS43L22 ID.
-  * @param DeviceAddr: Device address on communication Bus.   
-  * @retval The CS43L22 ID 
-  */
-uint32_t cs43l22_ReadID(uint16_t DeviceAddr)
-{
-  uint8_t Value;
-  /* Initialize the Control interface of the Audio Codec */
-  AUDIO_IO_Init(); 
-  
-  Value = AUDIO_IO_Read(DeviceAddr, CS43L22_CHIPID_ADDR);
-  Value = (Value & CS43L22_ID_MASK);
-  
-  return((uint32_t) Value);
-}
-
-/**
-  * @brief Start the audio Codec play feature.
-  * @note For this codec no Play options are required.
-  * @param DeviceAddr: Device address on communication Bus.   
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_Play(uint16_t DeviceAddr, uint16_t* pBuffer, uint16_t Size)
-{
-  uint32_t counter = 0;
-  
-  if(Is_cs43l22_Stop == 1)
-  {
-    /* Enable the digital soft ramp */
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_MISC_CTL, 0x06);
-  
-    /* Enable Output device */  
-    counter += cs43l22_SetMute(DeviceAddr, AUDIO_MUTE_OFF);
-    
-    /* Power on the Codec */
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL1, 0x9E);  
-    Is_cs43l22_Stop = 0;
-  }
-  
-  /* Return communication control value */
-  return counter;  
-}
-
-/**
-  * @brief Pauses playing on the audio codec.
-  * @param DeviceAddr: Device address on communication Bus. 
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_Pause(uint16_t DeviceAddr)
-{  
-  uint32_t counter = 0;
- 
-  /* Pause the audio file playing */
-  /* Mute the output first */
-  counter += cs43l22_SetMute(DeviceAddr, AUDIO_MUTE_ON);
-  
-  /* Put the Codec in Power save mode */    
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL1, 0x01);
- 
-  return counter;
-}
-
-/**
-  * @brief Resumes playing on the audio codec.
-  * @param DeviceAddr: Device address on communication Bus. 
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_Resume(uint16_t DeviceAddr)
-{
-  uint32_t counter = 0;
-  volatile uint32_t index = 0x00;
-  /* Resumes the audio file playing */  
-  /* Unmute the output first */
-  counter += cs43l22_SetMute(DeviceAddr, AUDIO_MUTE_OFF);
-
-  for(index = 0x00; index < 0xFF; index++);
-  
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, OutputDev);
-
-  /* Exit the Power save mode */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL1, 0x9E); 
-  
-  return counter;
-}
-
-/**
-  * @brief Stops audio Codec playing. It powers down the codec.
-  * @param DeviceAddr: Device address on communication Bus. 
-  * @param CodecPdwnMode: selects the  power down mode.
-  *          - CODEC_PDWN_HW: Physically power down the codec. When resuming from this
-  *                           mode, the codec is set to default configuration 
-  *                           (user should re-Initialize the codec in order to 
-  *                            play again the audio stream).
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_Stop(uint16_t DeviceAddr, uint32_t CodecPdwnMode)
-{
-  uint32_t counter = 0;
-  
-  /* Mute the output first */
-  counter += cs43l22_SetMute(DeviceAddr, AUDIO_MUTE_ON);
-
-  /* Disable the digital soft ramp */
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_MISC_CTL, 0x04);
-  
-  /* Power down the DAC and the speaker (PMDAC and PMSPK bits)*/
-  counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL1, 0x9F);
-  
-  Is_cs43l22_Stop = 1;
-  return counter;    
-}
-
-/**
-  * @brief Sets higher or lower the codec volume level.
-  * @param DeviceAddr: Device address on communication Bus.   
-  * @param Volume: a byte value from 0 to 255 (refer to codec registers 
-  *         description for more details).
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_SetVolume(uint16_t DeviceAddr, uint8_t Volume)
-{
-  uint32_t counter = 0;
-  uint8_t convertedvol = VOLUME_CONVERT(Volume);
-
-  if(Volume > 0xE6)
-  {
-    /* Set the Master volume */
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_MASTER_A_VOL, convertedvol - 0xE7); 
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_MASTER_B_VOL, convertedvol - 0xE7);     
-  }
-  else
-  {
-    /* Set the Master volume */
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_MASTER_A_VOL, convertedvol + 0x19); 
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_MASTER_B_VOL, convertedvol + 0x19); 
-  }
-
-  return counter;
-}
-
-/**
-  * @brief Sets new frequency.
-  * @param DeviceAddr: Device address on communication Bus.   
-  * @param AudioFreq: Audio frequency used to play the audio stream.
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_SetFrequency(uint16_t DeviceAddr, uint32_t AudioFreq)
-{
-  return 0;
-}
-
-/**
-  * @brief Enables or disables the mute feature on the audio codec.
-  * @param DeviceAddr: Device address on communication Bus.   
-  * @param Cmd: AUDIO_MUTE_ON to enable the mute or AUDIO_MUTE_OFF to disable the
-  *             mute mode.
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_SetMute(uint16_t DeviceAddr, uint32_t Cmd)
-{
-  uint32_t counter = 0;
-  
-  /* Set the Mute mode */
-  if(Cmd == AUDIO_MUTE_ON)
-  {
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, 0xFF);
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_HEADPHONE_A_VOL, 0x01);
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_HEADPHONE_B_VOL, 0x01);
-  }
-  else /* AUDIO_MUTE_OFF Disable the Mute */
-  {
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_HEADPHONE_A_VOL, 0x00);
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_HEADPHONE_B_VOL, 0x00);
-    counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, OutputDev);
-  }
-  return counter;
-}
-
-/**
-  * @brief Switch dynamically (while audio file is played) the output target 
-  *         (speaker or headphone).
-  * @note This function modifies a global variable of the audio codec driver: OutputDev.
-  * @param DeviceAddr: Device address on communication Bus.
-  * @param Output: specifies the audio output target: OUTPUT_DEVICE_SPEAKER,
-  *         OUTPUT_DEVICE_HEADPHONE, OUTPUT_DEVICE_BOTH or OUTPUT_DEVICE_AUTO 
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_SetOutputMode(uint16_t DeviceAddr, uint8_t Output)
-{
-  uint32_t counter = 0; 
-  
-  switch (Output) 
-  {
-    case OUTPUT_DEVICE_SPEAKER:
-      counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, 0xFA); /* SPK always ON & HP always OFF */
-      OutputDev = 0xFA;
-      break;
-      
-    case OUTPUT_DEVICE_HEADPHONE:
-      counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, 0xAF); /* SPK always OFF & HP always ON */
-      OutputDev = 0xAF;
-      break;
-      
-    case OUTPUT_DEVICE_BOTH:
-      counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, 0xAA); /* SPK always ON & HP always ON */
-      OutputDev = 0xAA;
-      break;
-      
-    case OUTPUT_DEVICE_AUTO:
-      counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, 0x05); /* Detect the HP or the SPK automatically */
-      OutputDev = 0x05;
-      break;    
-      
-    default:
-      counter += CODEC_IO_Write(DeviceAddr, CS43L22_REG_POWER_CTL2, 0x05); /* Detect the HP or the SPK automatically */
-      OutputDev = 0x05;
-      break;
-  }  
-  return counter;
-}
-
-/**
-  * @brief Resets cs43l22 registers.
-  * @param DeviceAddr: Device address on communication Bus. 
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint32_t cs43l22_Reset(uint16_t DeviceAddr)
-{
-  return 0;
-}
-
-/**
-  * @brief  Writes/Read a single data.
-  * @param  Addr: I2C address
-  * @param  Reg: Reg address 
-  * @param  Value: Data to be written
-  * @retval None
-  */
-static uint8_t CODEC_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value)
-{
-  uint32_t result = 0;
-  
-  AUDIO_IO_Write(Addr, Reg, Value);
-  
-#ifdef VERIFY_WRITTENDATA
-  /* Verify that the data has been correctly written */  
-  result = (AUDIO_IO_Read(Addr, Reg) == Value)? 0:1;
-#endif /* VERIFY_WRITTENDATA */
-  
-  return result;
-}
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 228
app/Drivers/BSP/Components/cs43l22/cs43l22.h

@@ -1,228 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    cs43l22.h
-  * @author  MCD Application Team
-  * @version V2.0.2
-  * @date    06-October-2015
-  * @brief   This file contains all the functions prototypes for the cs43l22.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __CS43L22_H
-#define __CS43L22_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Common/audio.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Component
-  * @{
-  */ 
-  
-/** @addtogroup CS43L22
-  * @{
-  */
-
-/** @defgroup CS43L22_Exported_Types
-  * @{
-  */
-
-/**
-  * @}
-  */
-
-/** @defgroup CS43L22_Exported_Constants
-  * @{
-  */ 
-
-/******************************************************************************/
-/***************************  Codec User defines ******************************/
-/******************************************************************************/
-/* Codec output DEVICE */
-#define OUTPUT_DEVICE_SPEAKER         1
-#define OUTPUT_DEVICE_HEADPHONE       2
-#define OUTPUT_DEVICE_BOTH            3
-#define OUTPUT_DEVICE_AUTO            4
-
-/* Volume Levels values */
-#define DEFAULT_VOLMIN                0x00
-#define DEFAULT_VOLMAX                0xFF
-#define DEFAULT_VOLSTEP               0x04
-
-#define AUDIO_PAUSE                   0
-#define AUDIO_RESUME                  1
-
-/* Codec POWER DOWN modes */
-#define CODEC_PDWN_HW                 1
-#define CODEC_PDWN_SW                 2
-
-/* MUTE commands */
-#define AUDIO_MUTE_ON                 1
-#define AUDIO_MUTE_OFF                0
-
-/* AUDIO FREQUENCY */
-#define AUDIO_FREQUENCY_192K          ((uint32_t)192000)
-#define AUDIO_FREQUENCY_96K           ((uint32_t)96000)
-#define AUDIO_FREQUENCY_48K           ((uint32_t)48000)
-#define AUDIO_FREQUENCY_44K           ((uint32_t)44100)
-#define AUDIO_FREQUENCY_32K           ((uint32_t)32000)
-#define AUDIO_FREQUENCY_22K           ((uint32_t)22050)
-#define AUDIO_FREQUENCY_16K           ((uint32_t)16000)
-#define AUDIO_FREQUENCY_11K           ((uint32_t)11025)
-#define AUDIO_FREQUENCY_8K            ((uint32_t)8000)  
-
-/** CS43l22 Registers  ***/
-#define   CS43L22_REG_ID                  0x01
-#define   CS43L22_REG_POWER_CTL1          0x02
-#define   CS43L22_REG_POWER_CTL2          0x04
-#define   CS43L22_REG_CLOCKING_CTL        0x05
-#define   CS43L22_REG_INTERFACE_CTL1      0x06
-#define   CS43L22_REG_INTERFACE_CTL2      0x07
-#define   CS43L22_REG_PASSTHR_A_SELECT    0x08
-#define   CS43L22_REG_PASSTHR_B_SELECT    0x09
-#define   CS43L22_REG_ANALOG_ZC_SR_SETT   0x0A
-#define   CS43L22_REG_PASSTHR_GANG_CTL    0x0C
-#define   CS43L22_REG_PLAYBACK_CTL1       0x0D
-#define   CS43L22_REG_MISC_CTL            0x0E
-#define   CS43L22_REG_PLAYBACK_CTL2       0x0F
-#define   CS43L22_REG_PASSTHR_A_VOL       0x14
-#define   CS43L22_REG_PASSTHR_B_VOL       0x15
-#define   CS43L22_REG_PCMA_VOL            0x1A
-#define   CS43L22_REG_PCMB_VOL            0x1B
-#define   CS43L22_REG_BEEP_FREQ_ON_TIME   0x1C
-#define   CS43L22_REG_BEEP_VOL_OFF_TIME   0x1D
-#define   CS43L22_REG_BEEP_TONE_CFG       0x1E
-#define   CS43L22_REG_TONE_CTL            0x1F
-#define   CS43L22_REG_MASTER_A_VOL        0x20
-#define   CS43L22_REG_MASTER_B_VOL        0x21
-#define   CS43L22_REG_HEADPHONE_A_VOL     0x22
-#define   CS43L22_REG_HEADPHONE_B_VOL     0x23
-#define   CS43L22_REG_SPEAKER_A_VOL       0x24
-#define   CS43L22_REG_SPEAKER_B_VOL       0x25
-#define   CS43L22_REG_CH_MIXER_SWAP       0x26
-#define   CS43L22_REG_LIMIT_CTL1          0x27
-#define   CS43L22_REG_LIMIT_CTL2          0x28
-#define   CS43L22_REG_LIMIT_ATTACK_RATE   0x29
-#define   CS43L22_REG_OVF_CLK_STATUS      0x2E
-#define   CS43L22_REG_BATT_COMPENSATION   0x2F
-#define   CS43L22_REG_VP_BATTERY_LEVEL    0x30
-#define   CS43L22_REG_SPEAKER_STATUS      0x31
-#define   CS43L22_REG_TEMPMONITOR_CTL     0x32
-#define   CS43L22_REG_THERMAL_FOLDBACK    0x33
-#define   CS43L22_REG_CHARGE_PUMP_FREQ    0x34
-
-/******************************************************************************/
-/****************************** REGISTER MAPPING ******************************/
-/******************************************************************************/
-/** 
-  * @brief  CS43L22 ID  
-  */  
-#define  CS43L22_ID            0xE0
-#define  CS43L22_ID_MASK       0xF8
-/**
-  * @brief Chip ID Register: Chip I.D. and Revision Register
-  *  Read only register
-  *  Default value: 0x01
-  *  [7:3] CHIPID[4:0]: I.D. code for the CS43L22.
-  *        Default value: 11100b
-  *  [2:0] REVID[2:0]: CS43L22 revision level.
-  *        Default value: 
-  *        000 - Rev A0
-  *        001 - Rev A1
-  *        010 - Rev B0
-  *        011 - Rev B1
-  */
-#define CS43L22_CHIPID_ADDR    0x01
-
-/**
-  * @}
-  */ 
-
-/** @defgroup CS43L22_Exported_Macros
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-
-/** @defgroup CS43L22_Exported_Functions
-  * @{
-  */
-    
-/*------------------------------------------------------------------------------
-                           Audio Codec functions 
-------------------------------------------------------------------------------*/
-/* High Layer codec functions */
-uint32_t cs43l22_Init(uint16_t DeviceAddr, uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq);
-void     cs43l22_DeInit(void);
-uint32_t cs43l22_ReadID(uint16_t DeviceAddr);
-uint32_t cs43l22_Play(uint16_t DeviceAddr, uint16_t* pBuffer, uint16_t Size);
-uint32_t cs43l22_Pause(uint16_t DeviceAddr);
-uint32_t cs43l22_Resume(uint16_t DeviceAddr);
-uint32_t cs43l22_Stop(uint16_t DeviceAddr, uint32_t Cmd);
-uint32_t cs43l22_SetVolume(uint16_t DeviceAddr, uint8_t Volume);
-uint32_t cs43l22_SetFrequency(uint16_t DeviceAddr, uint32_t AudioFreq);
-uint32_t cs43l22_SetMute(uint16_t DeviceAddr, uint32_t Cmd);
-uint32_t cs43l22_SetOutputMode(uint16_t DeviceAddr, uint8_t Output);
-uint32_t cs43l22_Reset(uint16_t DeviceAddr);
-
-/* AUDIO IO functions */
-void      AUDIO_IO_Init(void);
-void      AUDIO_IO_DeInit(void);
-void      AUDIO_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value);
-uint8_t   AUDIO_IO_Read(uint8_t Addr, uint8_t Reg);
-
-/* Audio driver structure */
-extern AUDIO_DrvTypeDef   cs43l22_drv;
-
-#endif /* __CS43L22_H */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 499
app/Drivers/BSP/Components/ili9320/Release_Notes.html


+ 0 - 534
app/Drivers/BSP/Components/ili9320/ili9320.c

@@ -1,534 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ili9320.c
-  * @author  MCD Application Team
-  * @version V1.2.2
-  * @date    02-December-2014
-  * @brief   This file includes the LCD driver for ILI9320 LCD.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Includes ------------------------------------------------------------------*/
-#include "ili9320.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ili9320
-  * @brief     This file provides a set of functions needed to drive the 
-  *            ILI9320 LCD.
-  * @{
-  */
-
-/** @defgroup ILI9320_Private_TypesDefinitions
-  * @{
-  */ 
-
-/**
-  * @}
-  */ 
-
-/** @defgroup ILI9320_Private_Defines
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9320_Private_Macros
-  * @{
-  */
-     
-/**
-  * @}
-  */  
-
-/** @defgroup ILI9320_Private_Variables
-  * @{
-  */ 
-LCD_DrvTypeDef   ili9320_drv = 
-{
-  ili9320_Init,
-  ili9320_ReadID,
-  ili9320_DisplayOn,
-  ili9320_DisplayOff,
-  ili9320_SetCursor,
-  ili9320_WritePixel,
-  ili9320_ReadPixel,
-  ili9320_SetDisplayWindow,
-  ili9320_DrawHLine,
-  ili9320_DrawVLine,
-  ili9320_GetLcdPixelWidth,
-  ili9320_GetLcdPixelHeight,
-  ili9320_DrawBitmap,
-  ili9320_DrawRGBImage,  
-};
-
-static uint8_t Is_ili9320_Initialized = 0;
-static uint16_t ArrayRGB[320] = {0};
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9320_Private_FunctionPrototypes
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9320_Private_Functions
-  * @{
-  */   
-
-/**
-  * @brief  Initialise the ILI9320 LCD Component.
-  * @param  None
-  * @retval None
-  */
-void ili9320_Init(void)
-{  
-  if(Is_ili9320_Initialized == 0)
-  {
-    Is_ili9320_Initialized = 1;
-    /* Initialise ILI9320 low level bus layer --------------------------------*/
-    LCD_IO_Init();
-    
-    /* Start Initial Sequence ------------------------------------------------*/
-    ili9320_WriteReg(LCD_REG_229,0x8000); /* Set the internal vcore voltage */
-    ili9320_WriteReg(LCD_REG_0,  0x0001); /* Start internal OSC. */
-    ili9320_WriteReg(LCD_REG_1,  0x0100); /* set SS and SM bit */
-    ili9320_WriteReg(LCD_REG_2,  0x0700); /* set 1 line inversion */
-    ili9320_WriteReg(LCD_REG_3,  0x1030); /* set GRAM write direction and BGR=1. */
-    ili9320_WriteReg(LCD_REG_4,  0x0000); /* Resize register */
-    ili9320_WriteReg(LCD_REG_8,  0x0202); /* set the back porch and front porch */
-    ili9320_WriteReg(LCD_REG_9,  0x0000); /* set non-display area refresh cycle ISC[3:0] */
-    ili9320_WriteReg(LCD_REG_10, 0x0000); /* FMARK function */
-    ili9320_WriteReg(LCD_REG_12, 0x0000); /* RGB interface setting */
-    ili9320_WriteReg(LCD_REG_13, 0x0000); /* Frame marker Position */
-    ili9320_WriteReg(LCD_REG_15, 0x0000); /* RGB interface polarity */
-
-    /* Power On sequence -----------------------------------------------------*/
-    ili9320_WriteReg(LCD_REG_16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-    ili9320_WriteReg(LCD_REG_17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
-    ili9320_WriteReg(LCD_REG_18, 0x0000); /* VREG1OUT voltage */
-    ili9320_WriteReg(LCD_REG_19, 0x0000); /* VDV[4:0] for VCOM amplitude */
-
-    ili9320_WriteReg(LCD_REG_16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-    ili9320_WriteReg(LCD_REG_17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
-
-    ili9320_WriteReg(LCD_REG_18, 0x0139); /* VREG1OUT voltage */
-
-    ili9320_WriteReg(LCD_REG_19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
-    ili9320_WriteReg(LCD_REG_41, 0x0013); /* VCM[4:0] for VCOMH */
-
-    ili9320_WriteReg(LCD_REG_32, 0x0000); /* GRAM horizontal Address */
-    ili9320_WriteReg(LCD_REG_33, 0x0000); /* GRAM Vertical Address */
-
-    /* Adjust the Gamma Curve ------------------------------------------------*/
-    ili9320_WriteReg(LCD_REG_48, 0x0007);
-    ili9320_WriteReg(LCD_REG_49, 0x0007);
-    ili9320_WriteReg(LCD_REG_50, 0x0007);
-    ili9320_WriteReg(LCD_REG_53, 0x0007);
-    ili9320_WriteReg(LCD_REG_54, 0x0007);
-    ili9320_WriteReg(LCD_REG_55, 0x0700);
-    ili9320_WriteReg(LCD_REG_56, 0x0700);
-    ili9320_WriteReg(LCD_REG_57, 0x0700);
-    ili9320_WriteReg(LCD_REG_60, 0x0700);
-    ili9320_WriteReg(LCD_REG_61, 0x1F00);
-  
-    /* Set GRAM area ---------------------------------------------------------*/
-    ili9320_WriteReg(LCD_REG_80, 0x0000); /* Horizontal GRAM Start Address */
-    ili9320_WriteReg(LCD_REG_81, 0x00EF); /* Horizontal GRAM End Address */
-    ili9320_WriteReg(LCD_REG_82, 0x0000); /* Vertical GRAM Start Address */
-    ili9320_WriteReg(LCD_REG_83, 0x013F); /* Vertical GRAM End Address */
-    ili9320_WriteReg(LCD_REG_96,  0x2700); /* Gate Scan Line */
-    ili9320_WriteReg(LCD_REG_97,  0x0001); /* NDL,VLE, REV */
-    ili9320_WriteReg(LCD_REG_106, 0x0000); /* set scrolling line */
-
-    /* Partial Display Control -----------------------------------------------*/
-    ili9320_WriteReg(LCD_REG_128, 0x0000);
-    ili9320_WriteReg(LCD_REG_129, 0x0000);
-    ili9320_WriteReg(LCD_REG_130, 0x0000);
-    ili9320_WriteReg(LCD_REG_131, 0x0000);
-    ili9320_WriteReg(LCD_REG_132, 0x0000);
-    ili9320_WriteReg(LCD_REG_133, 0x0000);
-
-    /* Panel Control ---------------------------------------------------------*/
-    ili9320_WriteReg(LCD_REG_144, 0x0010);
-    ili9320_WriteReg(LCD_REG_146, 0x0000);
-    ili9320_WriteReg(LCD_REG_147, 0x0003);
-    ili9320_WriteReg(LCD_REG_149, 0x0110);
-    ili9320_WriteReg(LCD_REG_151, 0x0000);
-    ili9320_WriteReg(LCD_REG_152, 0x0000);
-
-    /* Set GRAM write direction and BGR = 1 */
-    /* I/D=01 (Horizontal : increment, Vertical : decrement) */
-    /* AM=1 (address is updated in vertical writing direction) */
-    ili9320_WriteReg(LCD_REG_3, 0x1018);
-
-    ili9320_WriteReg(LCD_REG_7, 0x0173); /* 262K color and display ON */    
-  }
-  
-  /* Set the Cursor */ 
-  ili9320_SetCursor(0, 0);
-    
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-}
-
-/**
-  * @brief  Enables the Display.
-  * @param  None
-  * @retval None
-  */
-void ili9320_DisplayOn(void)
-{
-  /* Power On sequence ---------------------------------------------------------*/
-  ili9320_WriteReg(LCD_REG_16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9320_WriteReg(LCD_REG_17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
-  ili9320_WriteReg(LCD_REG_18, 0x0000); /* VREG1OUT voltage */
-  ili9320_WriteReg(LCD_REG_19, 0x0000); /* VDV[4:0] for VCOM amplitude*/
-
-  ili9320_WriteReg(LCD_REG_16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9320_WriteReg(LCD_REG_17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
-
-  ili9320_WriteReg(LCD_REG_18, 0x0139); /* VREG1OUT voltage */
-
-  ili9320_WriteReg(LCD_REG_19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
-  ili9320_WriteReg(LCD_REG_41, 0x0013); /* VCM[4:0] for VCOMH */
- 
-  /* Display On */
-  ili9320_WriteReg(LCD_REG_7, 0x0173); /* 262K color and display ON */
-}
-
-/**
-  * @brief  Disables the Display.
-  * @param  None
-  * @retval None
-  */
-void ili9320_DisplayOff(void)
-{
-  /* Power Off sequence ---------------------------------------------------------*/
-  ili9320_WriteReg(LCD_REG_16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9320_WriteReg(LCD_REG_17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
-  ili9320_WriteReg(LCD_REG_18, 0x0000); /* VREG1OUT voltage */
-  ili9320_WriteReg(LCD_REG_19, 0x0000); /* VDV[4:0] for VCOM amplitude*/
-  
-  ili9320_WriteReg(LCD_REG_41, 0x0000); /* VCM[4:0] for VCOMH */
-  
-  /* Display Off */
-  ili9320_WriteReg(LCD_REG_7, 0x0); 
-}
-
-/**
-  * @brief  Get the LCD pixel Width.
-  * @param  None
-  * @retval The Lcd Pixel Width
-  */
-uint16_t ili9320_GetLcdPixelWidth(void)
-{
- return (uint16_t)320;
-}
-
-/**
-  * @brief  Get the LCD pixel Height.
-  * @param  None
-  * @retval The Lcd Pixel Height
-  */
-uint16_t ili9320_GetLcdPixelHeight(void)
-{
- return (uint16_t)240;
-}
-
-/**
-  * @brief  Get the ILI9320 ID.
-  * @param  None
-  * @retval The ILI9320 ID 
-  */
-uint16_t ili9320_ReadID(void)
-{
-  if(Is_ili9320_Initialized == 0)
-  {
-    ili9320_Init();  
-  }
-  return (ili9320_ReadReg(0x00));
-}
-
-/**
-  * @brief  Set Cursor position.
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @retval None
-  */
-void ili9320_SetCursor(uint16_t Xpos, uint16_t Ypos)
-{
-  ili9320_WriteReg(LCD_REG_32, Ypos);
-  ili9320_WriteReg(LCD_REG_33, (ILI9320_LCD_PIXEL_WIDTH - 1 - Xpos));      
-}
-
-/**
-  * @brief  Write pixel.   
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @param  RGBCode: the RGB pixel color
-  * @retval None
-  */
-void ili9320_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode)
-{
-  /* Set Cursor */
-  ili9320_SetCursor(Xpos, Ypos);
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-
-  /* Write 16-bit GRAM Reg */
-  LCD_IO_WriteMultipleData((uint8_t*)&RGBCode, 2);
-}
-
-/**
-  * @brief  Read pixel.
-  * @param  None
-  * @retval the RGB pixel color
-  */
-uint16_t ili9320_ReadPixel(uint16_t Xpos, uint16_t Ypos)
-{
-  /* Set Cursor */
-  ili9320_SetCursor(Xpos, Ypos);
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-  
-  /* Dummy read */
-  LCD_IO_ReadData(0x00);
-  
-  /* Read 16-bit Reg */
-  return (LCD_IO_ReadData(0x00));
-}
-
-/**
-  * @brief  Writes to the selected LCD register.
-  * @param  LCDReg:      address of the selected register.
-  * @param  LCDRegValue: value to write to the selected register.
-  * @retval None
-  */
-void ili9320_WriteReg(uint8_t LCDReg, uint16_t LCDRegValue)
-{
-  LCD_IO_WriteReg(LCDReg);
-  
-  /* Write 16-bit GRAM Reg */
-  LCD_IO_WriteMultipleData((uint8_t*)&LCDRegValue, 2);
-}
-
-/**
-  * @brief  Reads the selected LCD Register.
-  * @param  LCDReg: address of the selected register.
-  * @retval LCD Register Value.
-  */
-uint16_t ili9320_ReadReg(uint8_t LCDReg)
-{
-  /* Write 16-bit Index (then Read Reg) */
-  LCD_IO_WriteReg(LCDReg);
-  
-  /* Read 16-bit Reg */
-  return (LCD_IO_ReadData(0x00));
-}
-
-/**
-  * @brief  Sets a display window
-  * @param  Xpos:   specifies the X bottom left position.
-  * @param  Ypos:   specifies the Y bottom left position.
-  * @param  Height: display window height.
-  * @param  Width:  display window width.
-  * @retval None
-  */
-void ili9320_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
-{
-  /* Horizontal GRAM Start Address */
-  ili9320_WriteReg(LCD_REG_80, (Ypos));
-  /* Horizontal GRAM End Address */
-  ili9320_WriteReg(LCD_REG_81, (Ypos + Height - 1));
-  
-  /* Vertical GRAM Start Address */
-  ili9320_WriteReg(LCD_REG_82, ILI9320_LCD_PIXEL_WIDTH - Xpos - Width);
-  /* Vertical GRAM End Address */
-  ili9320_WriteReg(LCD_REG_83, ILI9320_LCD_PIXEL_WIDTH - Xpos - 1);  
-}
-
-/**
-  * @brief  Draw vertical line.
-  * @param  RGBCode: Specifies the RGB color   
-  * @param  Xpos:     specifies the X position.
-  * @param  Ypos:     specifies the Y position.
-  * @param  Length:   specifies the Line length.  
-  * @retval None
-  */
-void ili9320_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
-{
-  uint16_t counter = 0;
-  
-  /* Set Cursor */
-  ili9320_SetCursor(Xpos, Ypos); 
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-
-  /* Sent a complete line */
-  for(counter = 0; counter < Length; counter++)
-  {
-    ArrayRGB[counter] = RGBCode;
-  }  
-
-  LCD_IO_WriteMultipleData((uint8_t*)&ArrayRGB[0], Length * 2);
-}
-
-/**
-  * @brief  Draw vertical line.
-  * @param  RGBCode: Specifies the RGB color    
-  * @param  Xpos:     specifies the X position.
-  * @param  Ypos:     specifies the Y position.
-  * @param  Length:   specifies the Line length.  
-  * @retval None
-  */
-void ili9320_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
-{
-  uint16_t counter = 0;
-
-  /* set GRAM write direction and BGR = 1 */
-  /* I/D=00 (Horizontal : increment, Vertical : decrement) */
-  /* AM=1 (address is updated in vertical writing direction) */
-  ili9320_WriteReg(LCD_REG_3, 0x1010);
-  
-  /* Set Cursor */
-  ili9320_SetCursor(Xpos, Ypos);
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-
-  /* Fill a complete vertical line */
-  for(counter = 0; counter < Length; counter++)
-  {
-    ArrayRGB[counter] = RGBCode;
-  }
-  
-  LCD_IO_WriteMultipleData((uint8_t*)&ArrayRGB[0], Length * 2);
-  
-  /* set GRAM write direction and BGR = 1 */
-  /* I/D=00 (Horizontal : increment, Vertical : decrement) */
-  /* AM=1 (address is updated in vertical writing direction) */
-  ili9320_WriteReg(LCD_REG_3, 0x1018);  
-}
-
-/**
-  * @brief  Displays a bitmap picture..
-  * @param  BmpAddress: Bmp picture address.
-  * @param  Xpos:  Bmp X position in the LCD
-  * @param  Ypos:  Bmp Y position in the LCD    
-  * @retval None
-  */
-void ili9320_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp)
-{
-  uint32_t index = 0, size = 0;
-  /* Read bitmap size */
-  size = *(volatile uint16_t *) (pbmp + 2);
-  size |= (*(volatile uint16_t *) (pbmp + 4)) << 16;
-  /* Get bitmap data address offset */
-  index = *(volatile uint16_t *) (pbmp + 10);
-  index |= (*(volatile uint16_t *) (pbmp + 12)) << 16;
-  size = (size - index)/2;
-  pbmp += index;
-  /* Set GRAM write direction and BGR = 1 */
-  /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
-  /* AM=1 (address is updated in vertical writing direction) */
-  ili9320_WriteReg(LCD_REG_3, 0x1008);
-
-  /* Set Cursor */
-  ili9320_SetCursor(Xpos, Ypos);  
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
- 
-  LCD_IO_WriteMultipleData((uint8_t*)pbmp, size*2);
-
-  /* Set GRAM write direction and BGR = 1 */
-  /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
-  /* AM = 1 (address is updated in vertical writing direction) */
-  ili9320_WriteReg(LCD_REG_3, 0x1018);
-}
-
-/**
-  * @brief  Displays picture..
-  * @param  pdata: picture address.
-  * @param  Xpos:  Image X position in the LCD
-  * @param  Ypos:  Image Y position in the LCD
-  * @param  Xsize: Image X size in the LCD
-  * @param  Ysize: Image Y size in the LCD
-  * @retval None
-  */
-void ili9320_DrawRGBImage(uint16_t Xpos, uint16_t Ypos, uint16_t Xsize, uint16_t Ysize, uint8_t *pdata)
-{
-  uint32_t size = 0;
-
-  size = (Xsize * Ysize);
-
-  /* Set Cursor */
-  ili9320_SetCursor(Xpos, Ypos);  
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
- 
-  LCD_IO_WriteMultipleData((uint8_t*)pdata, size*2);
-}
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-  
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-  
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 256
app/Drivers/BSP/Components/ili9320/ili9320.h

@@ -1,256 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ili9320.h
-  * @author  MCD Application Team
-  * @version V1.2.2
-  * @date    02-December-2014
-  * @brief   This file contains all the functions prototypes for the ili9320.c
-  *          driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __ILI9320_H
-#define __ILI9320_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Common/lcd.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ili9320
-  * @{
-  */
-
-/** @defgroup ILI9320_Exported_Types
-  * @{
-  */
-   
-/**
-  * @}
-  */ 
-
-/** @defgroup ILI9320_Exported_Constants
-  * @{
-  */
-/** 
-  * @brief  ILI9320 ID  
-  */  
-#define  ILI9320_ID    0x9320
-   
-/** 
-  * @brief  ILI9320 Size  
-  */  
-#define  ILI9320_LCD_PIXEL_WIDTH    ((uint16_t)320)
-#define  ILI9320_LCD_PIXEL_HEIGHT   ((uint16_t)240)
-   
-/** 
-  * @brief  ILI9320 Registers  
-  */ 
-#define LCD_REG_0             0x00
-#define LCD_REG_1             0x01
-#define LCD_REG_2             0x02
-#define LCD_REG_3             0x03
-#define LCD_REG_4             0x04
-#define LCD_REG_5             0x05
-#define LCD_REG_6             0x06
-#define LCD_REG_7             0x07
-#define LCD_REG_8             0x08
-#define LCD_REG_9             0x09
-#define LCD_REG_10            0x0A
-#define LCD_REG_12            0x0C
-#define LCD_REG_13            0x0D
-#define LCD_REG_14            0x0E
-#define LCD_REG_15            0x0F
-#define LCD_REG_16            0x10
-#define LCD_REG_17            0x11
-#define LCD_REG_18            0x12
-#define LCD_REG_19            0x13
-#define LCD_REG_20            0x14
-#define LCD_REG_21            0x15
-#define LCD_REG_22            0x16
-#define LCD_REG_23            0x17
-#define LCD_REG_24            0x18
-#define LCD_REG_25            0x19
-#define LCD_REG_26            0x1A
-#define LCD_REG_27            0x1B
-#define LCD_REG_28            0x1C
-#define LCD_REG_29            0x1D
-#define LCD_REG_30            0x1E
-#define LCD_REG_31            0x1F
-#define LCD_REG_32            0x20
-#define LCD_REG_33            0x21
-#define LCD_REG_34            0x22
-#define LCD_REG_36            0x24
-#define LCD_REG_37            0x25
-#define LCD_REG_40            0x28
-#define LCD_REG_41            0x29
-#define LCD_REG_43            0x2B
-#define LCD_REG_45            0x2D
-#define LCD_REG_48            0x30
-#define LCD_REG_49            0x31
-#define LCD_REG_50            0x32
-#define LCD_REG_51            0x33
-#define LCD_REG_52            0x34
-#define LCD_REG_53            0x35
-#define LCD_REG_54            0x36
-#define LCD_REG_55            0x37
-#define LCD_REG_56            0x38
-#define LCD_REG_57            0x39
-#define LCD_REG_58            0x3A
-#define LCD_REG_59            0x3B
-#define LCD_REG_60            0x3C
-#define LCD_REG_61            0x3D
-#define LCD_REG_62            0x3E
-#define LCD_REG_63            0x3F
-#define LCD_REG_64            0x40
-#define LCD_REG_65            0x41
-#define LCD_REG_66            0x42
-#define LCD_REG_67            0x43
-#define LCD_REG_68            0x44
-#define LCD_REG_69            0x45
-#define LCD_REG_70            0x46
-#define LCD_REG_71            0x47
-#define LCD_REG_72            0x48
-#define LCD_REG_73            0x49
-#define LCD_REG_74            0x4A
-#define LCD_REG_75            0x4B
-#define LCD_REG_76            0x4C
-#define LCD_REG_77            0x4D
-#define LCD_REG_78            0x4E
-#define LCD_REG_79            0x4F
-#define LCD_REG_80            0x50
-#define LCD_REG_81            0x51
-#define LCD_REG_82            0x52
-#define LCD_REG_83            0x53
-#define LCD_REG_96            0x60
-#define LCD_REG_97            0x61
-#define LCD_REG_106           0x6A
-#define LCD_REG_118           0x76
-#define LCD_REG_128           0x80
-#define LCD_REG_129           0x81
-#define LCD_REG_130           0x82
-#define LCD_REG_131           0x83
-#define LCD_REG_132           0x84
-#define LCD_REG_133           0x85
-#define LCD_REG_134           0x86
-#define LCD_REG_135           0x87
-#define LCD_REG_136           0x88
-#define LCD_REG_137           0x89
-#define LCD_REG_139           0x8B
-#define LCD_REG_140           0x8C
-#define LCD_REG_141           0x8D
-#define LCD_REG_143           0x8F
-#define LCD_REG_144           0x90
-#define LCD_REG_145           0x91
-#define LCD_REG_146           0x92
-#define LCD_REG_147           0x93
-#define LCD_REG_148           0x94
-#define LCD_REG_149           0x95
-#define LCD_REG_150           0x96
-#define LCD_REG_151           0x97
-#define LCD_REG_152           0x98
-#define LCD_REG_153           0x99
-#define LCD_REG_154           0x9A
-#define LCD_REG_157           0x9D
-#define LCD_REG_192           0xC0
-#define LCD_REG_193           0xC1
-#define LCD_REG_229           0xE5
-/**
-  * @}
-  */
-  
-/** @defgroup ILI9320_Exported_Functions
-  * @{
-  */ 
-void     ili9320_Init(void);
-uint16_t ili9320_ReadID(void);
-void     ili9320_WriteReg(uint8_t LCDReg, uint16_t LCDRegValue);
-uint16_t ili9320_ReadReg(uint8_t LCDReg);
-
-void     ili9320_DisplayOn(void);
-void     ili9320_DisplayOff(void);
-void     ili9320_SetCursor(uint16_t Xpos, uint16_t Ypos);
-void     ili9320_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGB_Code);
-uint16_t ili9320_ReadPixel(uint16_t Xpos, uint16_t Ypos);
-
-void     ili9320_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     ili9320_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     ili9320_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp);
-void     ili9320_DrawRGBImage(uint16_t Xpos, uint16_t Ypos, uint16_t Xsize, uint16_t Ysize, uint8_t *pdata);
-
-void     ili9320_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
-
-
-uint16_t ili9320_GetLcdPixelWidth(void);
-uint16_t ili9320_GetLcdPixelHeight(void);
-
-/* LCD driver structure */
-extern LCD_DrvTypeDef   ili9320_drv;
-
-/* LCD IO functions */
-void     LCD_IO_Init(void);
-void     LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size);
-void     LCD_IO_WriteReg(uint8_t Reg);
-uint16_t LCD_IO_ReadData(uint16_t Reg);
-
-/**
-  * @}
-  */ 
-      
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ILI9320_H */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-  
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 756
app/Drivers/BSP/Components/ili9325/Release_Notes.html


+ 0 - 518
app/Drivers/BSP/Components/ili9325/ili9325.c

@@ -1,518 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ili9325.c
-  * @author  MCD Application Team
-  * @version V1.2.3
-  * @date    03-May-2016
-  * @brief   This file includes the LCD driver for ILI9325 LCD.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Includes ------------------------------------------------------------------*/
-#include "ili9325.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ili9325
-  * @brief     This file provides a set of functions needed to drive the 
-  *            ILI9325 LCD.
-  * @{
-  */
-
-/** @defgroup ILI9325_Private_TypesDefinitions
-  * @{
-  */ 
-
-/**
-  * @}
-  */ 
-
-/** @defgroup ILI9325_Private_Defines
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9325_Private_Macros
-  * @{
-  */
-     
-/**
-  * @}
-  */  
-
-/** @defgroup ILI9325_Private_Variables
-  * @{
-  */ 
-LCD_DrvTypeDef   ili9325_drv = 
-{
-  ili9325_Init,
-  ili9325_ReadID,
-  ili9325_DisplayOn,
-  ili9325_DisplayOff,
-  ili9325_SetCursor,
-  ili9325_WritePixel,
-  ili9325_ReadPixel,
-  ili9325_SetDisplayWindow,
-  ili9325_DrawHLine,
-  ili9325_DrawVLine,
-  ili9325_GetLcdPixelWidth,
-  ili9325_GetLcdPixelHeight,
-  ili9325_DrawBitmap,
-  ili9325_DrawRGBImage,  
-};
-
-static uint16_t ArrayRGB[320] = {0};
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9325_Private_FunctionPrototypes
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9325_Private_Functions
-  * @{
-  */   
-
-/**
-  * @brief  Initialize the ILI9325 LCD Component.
-  * @param  None
-  * @retval None
-  */
-void ili9325_Init(void)
-{  
-  /* Initialize ILI9325 low level bus layer ----------------------------------*/
-  LCD_IO_Init();
-  
-  /* Start Initial Sequence --------------------------------------------------*/
-  ili9325_WriteReg(LCD_REG_0, 0x0001); /* Start internal OSC. */
-  ili9325_WriteReg(LCD_REG_1, 0x0100); /* Set SS and SM bit */
-  ili9325_WriteReg(LCD_REG_2, 0x0700); /* Set 1 line inversion */
-  ili9325_WriteReg(LCD_REG_3, 0x1018); /* Set GRAM write direction and BGR=1. */
-  ili9325_WriteReg(LCD_REG_4, 0x0000); /* Resize register */
-  ili9325_WriteReg(LCD_REG_8, 0x0202); /* Set the back porch and front porch */
-  ili9325_WriteReg(LCD_REG_9, 0x0000); /* Set non-display area refresh cycle ISC[3:0] */
-  ili9325_WriteReg(LCD_REG_10, 0x0000); /* FMARK function */
-  ili9325_WriteReg(LCD_REG_12, 0x0000); /* RGB interface setting */
-  ili9325_WriteReg(LCD_REG_13, 0x0000); /* Frame marker Position */
-  ili9325_WriteReg(LCD_REG_15, 0x0000); /* RGB interface polarity */
-  
-  /* Power On sequence -------------------------------------------------------*/
-  ili9325_WriteReg(LCD_REG_16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9325_WriteReg(LCD_REG_17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
-  ili9325_WriteReg(LCD_REG_18, 0x0000); /* VREG1OUT voltage */
-  ili9325_WriteReg(LCD_REG_19, 0x0000); /* VDV[4:0] for VCOM amplitude */
-  
-  ili9325_WriteReg(LCD_REG_16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9325_WriteReg(LCD_REG_17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
-  
-  ili9325_WriteReg(LCD_REG_18, 0x0139); /* VREG1OUT voltage */
-  
-  ili9325_WriteReg(LCD_REG_19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
-  ili9325_WriteReg(LCD_REG_41, 0x0013); /* VCM[4:0] for VCOMH */
-  
-  ili9325_WriteReg(LCD_REG_32, 0x0000); /* GRAM horizontal Address */
-  ili9325_WriteReg(LCD_REG_33, 0x0000); /* GRAM Vertical Address */
-  
-  /* Adjust the Gamma Curve (ILI9325) ----------------------------------------*/
-  ili9325_WriteReg(LCD_REG_48, 0x0007);
-  ili9325_WriteReg(LCD_REG_49, 0x0302);
-  ili9325_WriteReg(LCD_REG_50, 0x0105);
-  ili9325_WriteReg(LCD_REG_53, 0x0206);
-  ili9325_WriteReg(LCD_REG_54, 0x0808);
-  ili9325_WriteReg(LCD_REG_55, 0x0206);
-  ili9325_WriteReg(LCD_REG_56, 0x0504);
-  ili9325_WriteReg(LCD_REG_57, 0x0007);
-  ili9325_WriteReg(LCD_REG_60, 0x0105);
-  ili9325_WriteReg(LCD_REG_61, 0x0808);
-  
-  /* Set GRAM area -----------------------------------------------------------*/
-  ili9325_WriteReg(LCD_REG_80, 0x0000); /* Horizontal GRAM Start Address */
-  ili9325_WriteReg(LCD_REG_81, 0x00EF); /* Horizontal GRAM End Address */
-  ili9325_WriteReg(LCD_REG_82, 0x0000); /* Vertical GRAM Start Address */
-  ili9325_WriteReg(LCD_REG_83, 0x013F); /* Vertical GRAM End Address */
-  
-  ili9325_WriteReg(LCD_REG_96,  0xA700); /* Gate Scan Line(GS=1, scan direction is G320~G1) */
-  ili9325_WriteReg(LCD_REG_97,  0x0001); /* NDL,VLE, REV */
-  ili9325_WriteReg(LCD_REG_106, 0x0000); /* set scrolling line */
-  
-  /* Partial Display Control -------------------------------------------------*/
-  ili9325_WriteReg(LCD_REG_128, 0x0000);
-  ili9325_WriteReg(LCD_REG_129, 0x0000);
-  ili9325_WriteReg(LCD_REG_130, 0x0000);
-  ili9325_WriteReg(LCD_REG_131, 0x0000);
-  ili9325_WriteReg(LCD_REG_132, 0x0000);
-  ili9325_WriteReg(LCD_REG_133, 0x0000);
-  
-  /* Panel Control -----------------------------------------------------------*/
-  ili9325_WriteReg(LCD_REG_144, 0x0010);
-  ili9325_WriteReg(LCD_REG_146, 0x0000);
-  ili9325_WriteReg(LCD_REG_147, 0x0003);
-  ili9325_WriteReg(LCD_REG_149, 0x0110);
-  ili9325_WriteReg(LCD_REG_151, 0x0000);
-  ili9325_WriteReg(LCD_REG_152, 0x0000);
-  
-  /* set GRAM write direction and BGR = 1 */
-  /* I/D=00 (Horizontal : increment, Vertical : decrement) */
-  /* AM=1 (address is updated in vertical writing direction) */
-  ili9325_WriteReg(LCD_REG_3, 0x1018);
-  
-  /* 262K color and display ON */ 
-  ili9325_WriteReg(LCD_REG_7, 0x0173);    
-  
-  /* Set the Cursor */ 
-  ili9325_SetCursor(0, 0);
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-}
-
-/**
-  * @brief  Enables the Display.
-  * @param  None
-  * @retval None
-  */
-void ili9325_DisplayOn(void)
-{
-  /* Power On sequence -------------------------------------------------------*/
-  ili9325_WriteReg(LCD_REG_16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9325_WriteReg(LCD_REG_17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
-  ili9325_WriteReg(LCD_REG_18, 0x0000); /* VREG1OUT voltage */
-  ili9325_WriteReg(LCD_REG_19, 0x0000); /* VDV[4:0] for VCOM amplitude*/
-
-  ili9325_WriteReg(LCD_REG_16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9325_WriteReg(LCD_REG_17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
-
-  ili9325_WriteReg(LCD_REG_18, 0x0139); /* VREG1OUT voltage */
-
-  ili9325_WriteReg(LCD_REG_19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
-  ili9325_WriteReg(LCD_REG_41, 0x0013); /* VCM[4:0] for VCOMH */
- 
-  /* Display On */
-  ili9325_WriteReg(LCD_REG_7, 0x0173); /* 262K color and display ON */
-}
-
-/**
-  * @brief  Disables the Display.
-  * @param  None
-  * @retval None
-  */
-void ili9325_DisplayOff(void)
-{
-  /* Power Off sequence ------------------------------------------------------*/
-  ili9325_WriteReg(LCD_REG_16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
-  ili9325_WriteReg(LCD_REG_17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
-  ili9325_WriteReg(LCD_REG_18, 0x0000); /* VREG1OUT voltage */
-  ili9325_WriteReg(LCD_REG_19, 0x0000); /* VDV[4:0] for VCOM amplitude*/
-  
-  ili9325_WriteReg(LCD_REG_41, 0x0000); /* VCM[4:0] for VCOMH */
-  
-  /* Display Off */
-  ili9325_WriteReg(LCD_REG_7, 0x0); 
-}
-
-/**
-  * @brief  Get the LCD pixel Width.
-  * @param  None
-  * @retval The Lcd Pixel Width
-  */
-uint16_t ili9325_GetLcdPixelWidth(void)
-{
- return (uint16_t)320;
-}
-
-/**
-  * @brief  Get the LCD pixel Height.
-  * @param  None
-  * @retval The Lcd Pixel Height
-  */
-uint16_t ili9325_GetLcdPixelHeight(void)
-{
- return (uint16_t)240;
-}
-
-/**
-  * @brief  Get the ILI9325 ID.
-  * @param  None
-  * @retval The ILI9325 ID 
-  */
-uint16_t ili9325_ReadID(void)
-{
-  LCD_IO_Init(); 
-  return (ili9325_ReadReg(0x00));
-}
-
-/**
-  * @brief  Set Cursor position.
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @retval None
-  */
-void ili9325_SetCursor(uint16_t Xpos, uint16_t Ypos)
-{
-  ili9325_WriteReg(LCD_REG_32, Ypos);
-  ili9325_WriteReg(LCD_REG_33, (ILI9325_LCD_PIXEL_WIDTH - 1 - Xpos));      
-}
-
-/**
-  * @brief  Write pixel.   
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @param  RGBCode: the RGB pixel color
-  * @retval None
-  */
-void ili9325_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode)
-{
-  /* Set Cursor */
-  ili9325_SetCursor(Xpos, Ypos);
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-
-  /* Write 16-bit GRAM Reg */
-  LCD_IO_WriteMultipleData((uint8_t*)&RGBCode, 2);
-}
-
-/**
-  * @brief  Read pixel.
-  * @param  None
-  * @retval The RGB pixel color
-  */
-uint16_t ili9325_ReadPixel(uint16_t Xpos, uint16_t Ypos)
-{
-  /* Set Cursor */
-  ili9325_SetCursor(Xpos, Ypos);
-  
-  /* Read 16-bit Reg */
-  return (LCD_IO_ReadData(LCD_REG_34));
-}
-
-/**
-  * @brief  Writes to the selected LCD register.
-  * @param  LCDReg: Address of the selected register.
-  * @param  LCDRegValue: Value to write to the selected register.
-  * @retval None
-  */
-void ili9325_WriteReg(uint8_t LCDReg, uint16_t LCDRegValue)
-{
-  LCD_IO_WriteReg(LCDReg);
-  
-  /* Write 16-bit GRAM Reg */
-  LCD_IO_WriteMultipleData((uint8_t*)&LCDRegValue, 2);
-}
-
-/**
-  * @brief  Reads the selected LCD Register.
-  * @param  LCDReg: address of the selected register.
-  * @retval LCD Register Value.
-  */
-uint16_t ili9325_ReadReg(uint8_t LCDReg)
-{ 
-  /* Read 16-bit Reg */
-  return (LCD_IO_ReadData(LCDReg));
-}
-
-/**
-  * @brief  Sets a display window
-  * @param  Xpos:   specifies the X bottom left position.
-  * @param  Ypos:   specifies the Y bottom left position.
-  * @param  Height: display window height.
-  * @param  Width:  display window width.
-  * @retval None
-  */
-void ili9325_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
-{
-  /* Horizontal GRAM Start Address */
-  ili9325_WriteReg(LCD_REG_80, (Ypos));
-  /* Horizontal GRAM End Address */
-  ili9325_WriteReg(LCD_REG_81, (Ypos + Height - 1));
-  
-  /* Vertical GRAM Start Address */
-  ili9325_WriteReg(LCD_REG_82, ILI9325_LCD_PIXEL_WIDTH - Xpos - Width);
-  /* Vertical GRAM End Address */
-  ili9325_WriteReg(LCD_REG_83, ILI9325_LCD_PIXEL_WIDTH - Xpos - 1);  
-}
-
-/**
-  * @brief  Draw vertical line.
-  * @param  RGBCode: Specifies the RGB color   
-  * @param  Xpos:     specifies the X position.
-  * @param  Ypos:     specifies the Y position.
-  * @param  Length:   specifies the Line length.  
-  * @retval None
-  */
-void ili9325_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
-{
-  uint16_t counter = 0;
-  
-  /* Set Cursor */
-  ili9325_SetCursor(Xpos, Ypos); 
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-
-  /* Sent a complete line */
-  for(counter = 0; counter < Length; counter++)
-  {
-    ArrayRGB[counter] = RGBCode;
-  }  
-
-  LCD_IO_WriteMultipleData((uint8_t*)&ArrayRGB[0], Length * 2);
-}
-
-/**
-  * @brief  Draw vertical line.
-  * @param  RGBCode: Specifies the RGB color    
-  * @param  Xpos:     specifies the X position.
-  * @param  Ypos:     specifies the Y position.
-  * @param  Length:   specifies the Line length.  
-  * @retval None
-  */
-void ili9325_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
-{
-  uint16_t counter = 0;
-
-  /* set GRAM write direction and BGR = 1 */
-  /* I/D=00 (Horizontal : increment, Vertical : decrement) */
-  /* AM=1 (address is updated in vertical writing direction) */
-  ili9325_WriteReg(LCD_REG_3, 0x1010);
-  
-  /* Set Cursor */
-  ili9325_SetCursor(Xpos, Ypos);
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
-
-  /* Fill a complete vertical line */
-  for(counter = 0; counter < Length; counter++)
-  {
-    ArrayRGB[counter] = RGBCode;
-  }
-  
-  /* Write 16-bit GRAM Reg */
-  LCD_IO_WriteMultipleData((uint8_t*)&ArrayRGB[0], Length * 2);
-  
-  /* set GRAM write direction and BGR = 1 */
-  /* I/D=00 (Horizontal : increment, Vertical : decrement) */
-  /* AM=1 (address is updated in vertical writing direction) */
-  ili9325_WriteReg(LCD_REG_3, 0x1018);  
-}
-
-/**
-  * @brief  Displays a bitmap picture.
-  * @param  BmpAddress: Bmp picture address.
-  * @param  Xpos: Bmp X position in the LCD
-  * @param  Ypos: Bmp Y position in the LCD    
-  * @retval None
-  */
-void ili9325_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp)
-{
-  uint32_t index = 0, size = 0;
-  /* Read bitmap size */
-  size = *(volatile uint16_t *) (pbmp + 2);
-  size |= (*(volatile uint16_t *) (pbmp + 4)) << 16;
-  /* Get bitmap data address offset */
-  index = *(volatile uint16_t *) (pbmp + 10);
-  index |= (*(volatile uint16_t *) (pbmp + 12)) << 16;
-  size = (size - index)/2;
-  pbmp += index;
-  /* Set GRAM write direction and BGR = 1 */
-  /* I/D=00 (Horizontal : decrement, Vertical : decrement) */
-  /* AM=1 (address is updated in vertical writing direction) */
-  ili9325_WriteReg(LCD_REG_3, 0x1008);
-
-  /* Set Cursor */
-  ili9325_SetCursor(Xpos, Ypos);  
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
- 
-  LCD_IO_WriteMultipleData((uint8_t*)pbmp, size*2);
- 
-  /* Set GRAM write direction and BGR = 1 */
-  /* I/D = 01 (Horizontal : increment, Vertical : decrement) */
-  /* AM = 1 (address is updated in vertical writing direction) */
-  ili9325_WriteReg(LCD_REG_3, 0x1018);
-}
-
-/**
-  * @brief  Displays picture.
-  * @param  pdata: picture address.
-  * @param  Xpos: Image X position in the LCD
-  * @param  Ypos: Image Y position in the LCD
-  * @param  Xsize: Image X size in the LCD
-  * @param  Ysize: Image Y size in the LCD
-  * @retval None
-  */
-void ili9325_DrawRGBImage(uint16_t Xpos, uint16_t Ypos, uint16_t Xsize, uint16_t Ysize, uint8_t *pdata)
-{
-  uint32_t size = 0;
-
-  size = (Xsize * Ysize);
-
-  /* Set Cursor */
-  ili9325_SetCursor(Xpos, Ypos);  
-  
-  /* Prepare to write GRAM */
-  LCD_IO_WriteReg(LCD_REG_34);
- 
-  LCD_IO_WriteMultipleData((uint8_t*)pdata, size*2);
-}
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-  
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-  
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 256
app/Drivers/BSP/Components/ili9325/ili9325.h

@@ -1,256 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ili9325.h
-  * @author  MCD Application Team
-  * @version V1.2.3
-  * @date    04-May-2016
-  * @brief   This file contains all the functions prototypes for the ili9325.c
-  *          driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __ILI9325_H
-#define __ILI9325_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Common/lcd.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ili9325
-  * @{
-  */
-
-/** @defgroup ILI9325_Exported_Types
-  * @{
-  */
-   
-/**
-  * @}
-  */ 
-
-/** @defgroup ILI9325_Exported_Constants
-  * @{
-  */
-/** 
-  * @brief  ILI9325 ID  
-  */  
-#define  ILI9325_ID    0x9325
-   
-/** 
-  * @brief  ILI9325 Size  
-  */  
-#define  ILI9325_LCD_PIXEL_WIDTH    ((uint16_t)320)
-#define  ILI9325_LCD_PIXEL_HEIGHT   ((uint16_t)240)
-   
-/** 
-  * @brief  ILI9325 Registers  
-  */ 
-#define LCD_REG_0             0x00
-#define LCD_REG_1             0x01
-#define LCD_REG_2             0x02
-#define LCD_REG_3             0x03
-#define LCD_REG_4             0x04
-#define LCD_REG_5             0x05
-#define LCD_REG_6             0x06
-#define LCD_REG_7             0x07
-#define LCD_REG_8             0x08
-#define LCD_REG_9             0x09
-#define LCD_REG_10            0x0A
-#define LCD_REG_12            0x0C
-#define LCD_REG_13            0x0D
-#define LCD_REG_14            0x0E
-#define LCD_REG_15            0x0F
-#define LCD_REG_16            0x10
-#define LCD_REG_17            0x11
-#define LCD_REG_18            0x12
-#define LCD_REG_19            0x13
-#define LCD_REG_20            0x14
-#define LCD_REG_21            0x15
-#define LCD_REG_22            0x16
-#define LCD_REG_23            0x17
-#define LCD_REG_24            0x18
-#define LCD_REG_25            0x19
-#define LCD_REG_26            0x1A
-#define LCD_REG_27            0x1B
-#define LCD_REG_28            0x1C
-#define LCD_REG_29            0x1D
-#define LCD_REG_30            0x1E
-#define LCD_REG_31            0x1F
-#define LCD_REG_32            0x20
-#define LCD_REG_33            0x21
-#define LCD_REG_34            0x22
-#define LCD_REG_36            0x24
-#define LCD_REG_37            0x25
-#define LCD_REG_40            0x28
-#define LCD_REG_41            0x29
-#define LCD_REG_43            0x2B
-#define LCD_REG_45            0x2D
-#define LCD_REG_48            0x30
-#define LCD_REG_49            0x31
-#define LCD_REG_50            0x32
-#define LCD_REG_51            0x33
-#define LCD_REG_52            0x34
-#define LCD_REG_53            0x35
-#define LCD_REG_54            0x36
-#define LCD_REG_55            0x37
-#define LCD_REG_56            0x38
-#define LCD_REG_57            0x39
-#define LCD_REG_58            0x3A
-#define LCD_REG_59            0x3B
-#define LCD_REG_60            0x3C
-#define LCD_REG_61            0x3D
-#define LCD_REG_62            0x3E
-#define LCD_REG_63            0x3F
-#define LCD_REG_64            0x40
-#define LCD_REG_65            0x41
-#define LCD_REG_66            0x42
-#define LCD_REG_67            0x43
-#define LCD_REG_68            0x44
-#define LCD_REG_69            0x45
-#define LCD_REG_70            0x46
-#define LCD_REG_71            0x47
-#define LCD_REG_72            0x48
-#define LCD_REG_73            0x49
-#define LCD_REG_74            0x4A
-#define LCD_REG_75            0x4B
-#define LCD_REG_76            0x4C
-#define LCD_REG_77            0x4D
-#define LCD_REG_78            0x4E
-#define LCD_REG_79            0x4F
-#define LCD_REG_80            0x50
-#define LCD_REG_81            0x51
-#define LCD_REG_82            0x52
-#define LCD_REG_83            0x53
-#define LCD_REG_96            0x60
-#define LCD_REG_97            0x61
-#define LCD_REG_106           0x6A
-#define LCD_REG_118           0x76
-#define LCD_REG_128           0x80
-#define LCD_REG_129           0x81
-#define LCD_REG_130           0x82
-#define LCD_REG_131           0x83
-#define LCD_REG_132           0x84
-#define LCD_REG_133           0x85
-#define LCD_REG_134           0x86
-#define LCD_REG_135           0x87
-#define LCD_REG_136           0x88
-#define LCD_REG_137           0x89
-#define LCD_REG_139           0x8B
-#define LCD_REG_140           0x8C
-#define LCD_REG_141           0x8D
-#define LCD_REG_143           0x8F
-#define LCD_REG_144           0x90
-#define LCD_REG_145           0x91
-#define LCD_REG_146           0x92
-#define LCD_REG_147           0x93
-#define LCD_REG_148           0x94
-#define LCD_REG_149           0x95
-#define LCD_REG_150           0x96
-#define LCD_REG_151           0x97
-#define LCD_REG_152           0x98
-#define LCD_REG_153           0x99
-#define LCD_REG_154           0x9A
-#define LCD_REG_157           0x9D
-#define LCD_REG_192           0xC0
-#define LCD_REG_193           0xC1
-#define LCD_REG_229           0xE5
-/**
-  * @}
-  */
-  
-/** @defgroup ILI9325_Exported_Functions
-  * @{
-  */ 
-void     ili9325_Init(void);
-uint16_t ili9325_ReadID(void);
-void     ili9325_WriteReg(uint8_t LCDReg, uint16_t LCDRegValue);
-uint16_t ili9325_ReadReg(uint8_t LCDReg);
-
-void     ili9325_DisplayOn(void);
-void     ili9325_DisplayOff(void);
-void     ili9325_SetCursor(uint16_t Xpos, uint16_t Ypos);
-void     ili9325_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode);
-uint16_t ili9325_ReadPixel(uint16_t Xpos, uint16_t Ypos);
-
-void     ili9325_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     ili9325_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     ili9325_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp);
-void     ili9325_DrawRGBImage(uint16_t Xpos, uint16_t Ypos, uint16_t Xsize, uint16_t Ysize, uint8_t *pdata);
-
-void     ili9325_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
-
-
-uint16_t ili9325_GetLcdPixelWidth(void);
-uint16_t ili9325_GetLcdPixelHeight(void);
-
-/* LCD driver structure */
-extern LCD_DrvTypeDef   ili9325_drv;
-
-/* LCD IO functions */
-void     LCD_IO_Init(void);
-void     LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size);
-void     LCD_IO_WriteReg(uint8_t Reg);
-uint16_t LCD_IO_ReadData(uint16_t Reg);
-
-/**
-  * @}
-  */ 
-      
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ILI9325_H */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-  
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 417
app/Drivers/BSP/Components/ili9341/Release_Notes.html


+ 0 - 346
app/Drivers/BSP/Components/ili9341/ili9341.c

@@ -1,346 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ili9341.c
-  * @author  MCD Application Team
-  * @version V1.0.2
-  * @date    02-December-2014
-  * @brief   This file includes the LCD driver for ILI9341 LCD.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Includes ------------------------------------------------------------------*/
-#include "ili9341.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ILI9341
-  * @brief This file provides a set of functions needed to drive the 
-  *        ILI9341 LCD.
-  * @{
-  */
-
-/** @defgroup ILI9341_Private_TypesDefinitions
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-
-/** @defgroup ILI9341_Private_Defines
-  * @{
-  */
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9341_Private_Macros
-  * @{
-  */
-/**
-  * @}
-  */  
-
-/** @defgroup ILI9341_Private_Variables
-  * @{
-  */ 
-
-LCD_DrvTypeDef   ili9341_drv = 
-{
-  ili9341_Init,
-  ili9341_ReadID,
-  ili9341_DisplayOn,
-  ili9341_DisplayOff,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  ili9341_GetLcdPixelWidth,
-  ili9341_GetLcdPixelHeight,
-  0,
-  0,    
-};
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9341_Private_FunctionPrototypes
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-  
-/** @defgroup ILI9341_Private_Functions
-  * @{
-  */   
-
-/**
-  * @brief  Power on the LCD.
-  * @param  None
-  * @retval None
-  */
-void ili9341_Init(void)
-{
-  /* Initialize ILI9341 low level bus layer ----------------------------------*/
-  LCD_IO_Init();
-  
-  /* Configure LCD */
-  ili9341_WriteReg(0xCA);
-  ili9341_WriteData(0xC3);
-  ili9341_WriteData(0x08);
-  ili9341_WriteData(0x50);
-  ili9341_WriteReg(LCD_POWERB);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0xC1);
-  ili9341_WriteData(0x30);
-  ili9341_WriteReg(LCD_POWER_SEQ);
-  ili9341_WriteData(0x64);
-  ili9341_WriteData(0x03);
-  ili9341_WriteData(0x12);
-  ili9341_WriteData(0x81);
-  ili9341_WriteReg(LCD_DTCA);
-  ili9341_WriteData(0x85);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x78);
-  ili9341_WriteReg(LCD_POWERA);
-  ili9341_WriteData(0x39);
-  ili9341_WriteData(0x2C);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x34);
-  ili9341_WriteData(0x02);
-  ili9341_WriteReg(LCD_PRC);
-  ili9341_WriteData(0x20);
-  ili9341_WriteReg(LCD_DTCB);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x00);
-  ili9341_WriteReg(LCD_FRMCTR1);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x1B);
-  ili9341_WriteReg(LCD_DFC);
-  ili9341_WriteData(0x0A);
-  ili9341_WriteData(0xA2);
-  ili9341_WriteReg(LCD_POWER1);
-  ili9341_WriteData(0x10);
-  ili9341_WriteReg(LCD_POWER2);
-  ili9341_WriteData(0x10);
-  ili9341_WriteReg(LCD_VCOM1);
-  ili9341_WriteData(0x45);
-  ili9341_WriteData(0x15);
-  ili9341_WriteReg(LCD_VCOM2);
-  ili9341_WriteData(0x90);
-  ili9341_WriteReg(LCD_MAC);
-  ili9341_WriteData(0xC8);
-  ili9341_WriteReg(LCD_3GAMMA_EN);
-  ili9341_WriteData(0x00);
-  ili9341_WriteReg(LCD_RGB_INTERFACE);
-  ili9341_WriteData(0xC2);
-  ili9341_WriteReg(LCD_DFC);
-  ili9341_WriteData(0x0A);
-  ili9341_WriteData(0xA7);
-  ili9341_WriteData(0x27);
-  ili9341_WriteData(0x04);
-  
-  /* Colomn address set */
-  ili9341_WriteReg(LCD_COLUMN_ADDR);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0xEF);
-  /* Page address set */
-  ili9341_WriteReg(LCD_PAGE_ADDR);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x01);
-  ili9341_WriteData(0x3F);
-  ili9341_WriteReg(LCD_INTERFACE);
-  ili9341_WriteData(0x01);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x06);
-  
-  ili9341_WriteReg(LCD_GRAM);
-  LCD_Delay(200);
-  
-  ili9341_WriteReg(LCD_GAMMA);
-  ili9341_WriteData(0x01);
-  
-  ili9341_WriteReg(LCD_PGAMMA);
-  ili9341_WriteData(0x0F);
-  ili9341_WriteData(0x29);
-  ili9341_WriteData(0x24);
-  ili9341_WriteData(0x0C);
-  ili9341_WriteData(0x0E);
-  ili9341_WriteData(0x09);
-  ili9341_WriteData(0x4E);
-  ili9341_WriteData(0x78);
-  ili9341_WriteData(0x3C);
-  ili9341_WriteData(0x09);
-  ili9341_WriteData(0x13);
-  ili9341_WriteData(0x05);
-  ili9341_WriteData(0x17);
-  ili9341_WriteData(0x11);
-  ili9341_WriteData(0x00);
-  ili9341_WriteReg(LCD_NGAMMA);
-  ili9341_WriteData(0x00);
-  ili9341_WriteData(0x16);
-  ili9341_WriteData(0x1B);
-  ili9341_WriteData(0x04);
-  ili9341_WriteData(0x11);
-  ili9341_WriteData(0x07);
-  ili9341_WriteData(0x31);
-  ili9341_WriteData(0x33);
-  ili9341_WriteData(0x42);
-  ili9341_WriteData(0x05);
-  ili9341_WriteData(0x0C);
-  ili9341_WriteData(0x0A);
-  ili9341_WriteData(0x28);
-  ili9341_WriteData(0x2F);
-  ili9341_WriteData(0x0F);
-  
-  ili9341_WriteReg(LCD_SLEEP_OUT);
-  LCD_Delay(200);
-  ili9341_WriteReg(LCD_DISPLAY_ON);
-  /* GRAM start writing */
-  ili9341_WriteReg(LCD_GRAM);
-}
-
-/**
-  * @brief  Disables the Display.
-  * @param  None
-  * @retval LCD Register Value.
-  */
-uint16_t ili9341_ReadID(void)
-{
-  LCD_IO_Init();
-  return ((uint16_t)ili9341_ReadData(LCD_READ_ID4, LCD_READ_ID4_SIZE));
-}
-
-/**
-  * @brief  Enables the Display.
-  * @param  None
-  * @retval None
-  */
-void ili9341_DisplayOn(void)
-{
-  /* Display On */
-  ili9341_WriteReg(LCD_DISPLAY_ON);
-}
-
-/**
-  * @brief  Disables the Display.
-  * @param  None
-  * @retval None
-  */
-void ili9341_DisplayOff(void)
-{
-  /* Display Off */
-  ili9341_WriteReg(LCD_DISPLAY_OFF);
-}
-
-/**
-  * @brief  Writes  to the selected LCD register.
-  * @param  LCD_Reg: address of the selected register.
-  * @retval None
-  */
-void ili9341_WriteReg(uint8_t LCD_Reg)
-{
-  LCD_IO_WriteReg(LCD_Reg);
-}
-
-/**
-  * @brief  Writes data to the selected LCD register.
-  * @param  LCD_Reg: address of the selected register.
-  * @retval None
-  */
-void ili9341_WriteData(uint16_t RegValue)
-{
-  LCD_IO_WriteData(RegValue);
-}
-
-/**
-  * @brief  Reads the selected LCD Register.
-  * @param  RegValue: Address of the register to read
-  * @param  ReadSize: Number of bytes to read
-  * @retval LCD Register Value.
-  */
-uint32_t ili9341_ReadData(uint16_t RegValue, uint8_t ReadSize)
-{
-  /* Read a max of 4 bytes */
-  return (LCD_IO_ReadData(RegValue, ReadSize));
-}
-
-/**
-  * @brief  Get LCD PIXEL WIDTH.
-  * @param  None
-  * @retval LCD PIXEL WIDTH.
-  */
-uint16_t ili9341_GetLcdPixelWidth(void)
-{
-  /* Return LCD PIXEL WIDTH */
-  return ILI9341_LCD_PIXEL_WIDTH;
-}
-
-/**
-  * @brief  Get LCD PIXEL HEIGHT.
-  * @param  None
-  * @retval LCD PIXEL HEIGHT.
-  */
-uint16_t ili9341_GetLcdPixelHeight(void)
-{
-  /* Return LCD PIXEL HEIGHT */
-  return ILI9341_LCD_PIXEL_HEIGHT;
-}
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-  
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-  
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 249
app/Drivers/BSP/Components/ili9341/ili9341.h

@@ -1,249 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ili9341.h
-  * @author  MCD Application Team
-  * @version V1.0.2
-  * @date    02-December-2014
-  * @brief   This file contains all the functions prototypes for the ili9341.c
-  *          driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __ILI9341_H
-#define __ILI9341_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Common/lcd.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ILI9341
-  * @{
-  */
-
-/** @defgroup ILI9341_Exported_Types
-  * @{
-  */
-/**
-  * @}
-  */ 
-
-/** @defgroup ILI9341_Exported_Constants
-  * @{
-  */
-
-/** 
-  * @brief ILI9341 chip IDs  
-  */ 
-#define ILI9341_ID                  0x9341
-
-/** 
-  * @brief  ILI9341 Size  
-  */  
-#define  ILI9341_LCD_PIXEL_WIDTH    ((uint16_t)240)
-#define  ILI9341_LCD_PIXEL_HEIGHT   ((uint16_t)320)
-
-/** 
-  * @brief  ILI9341 Timing  
-  */     
-/* Timing configuration  (Typical configuration from ILI9341 datasheet)
-  HSYNC=10 (9+1)
-  HBP=20 (29-10+1)
-  ActiveW=240 (269-20-10+1)
-  HFP=10 (279-240-20-10+1)
-
-  VSYNC=2 (1+1)
-  VBP=2 (3-2+1)
-  ActiveH=320 (323-2-2+1)
-  VFP=4 (327-320-2-2+1)
-*/
-#define  ILI9341_HSYNC            ((uint32_t)9)   /* Horizontal synchronization */
-#define  ILI9341_HBP              ((uint32_t)29)    /* Horizontal back porch      */ 
-#define  ILI9341_HFP              ((uint32_t)2)    /* Horizontal front porch     */
-#define  ILI9341_VSYNC            ((uint32_t)1)   /* Vertical synchronization   */
-#define  ILI9341_VBP              ((uint32_t)3)    /* Vertical back porch        */
-#define  ILI9341_VFP              ((uint32_t)2)    /* Vertical front porch       */
-
-/** 
-  * @brief  ILI9341 Registers  
-  */
-
-/* Level 1 Commands */
-#define LCD_SWRESET             0x01   /* Software Reset */
-#define LCD_READ_DISPLAY_ID     0x04   /* Read display identification information */
-#define LCD_RDDST               0x09   /* Read Display Status */
-#define LCD_RDDPM               0x0A   /* Read Display Power Mode */
-#define LCD_RDDMADCTL           0x0B   /* Read Display MADCTL */
-#define LCD_RDDCOLMOD           0x0C   /* Read Display Pixel Format */
-#define LCD_RDDIM               0x0D   /* Read Display Image Format */
-#define LCD_RDDSM               0x0E   /* Read Display Signal Mode */
-#define LCD_RDDSDR              0x0F   /* Read Display Self-Diagnostic Result */
-#define LCD_SPLIN               0x10   /* Enter Sleep Mode */
-#define LCD_SLEEP_OUT           0x11   /* Sleep out register */
-#define LCD_PTLON               0x12   /* Partial Mode ON */
-#define LCD_NORMAL_MODE_ON      0x13   /* Normal Display Mode ON */
-#define LCD_DINVOFF             0x20   /* Display Inversion OFF */
-#define LCD_DINVON              0x21   /* Display Inversion ON */
-#define LCD_GAMMA               0x26   /* Gamma register */
-#define LCD_DISPLAY_OFF         0x28   /* Display off register */
-#define LCD_DISPLAY_ON          0x29   /* Display on register */
-#define LCD_COLUMN_ADDR         0x2A   /* Colomn address register */ 
-#define LCD_PAGE_ADDR           0x2B   /* Page address register */ 
-#define LCD_GRAM                0x2C   /* GRAM register */   
-#define LCD_RGBSET              0x2D   /* Color SET */   
-#define LCD_RAMRD               0x2E   /* Memory Read */   
-#define LCD_PLTAR               0x30   /* Partial Area */   
-#define LCD_VSCRDEF             0x33   /* Vertical Scrolling Definition */   
-#define LCD_TEOFF               0x34   /* Tearing Effect Line OFF */   
-#define LCD_TEON                0x35   /* Tearing Effect Line ON */   
-#define LCD_MAC                 0x36   /* Memory Access Control register*/
-#define LCD_VSCRSADD            0x37   /* Vertical Scrolling Start Address */   
-#define LCD_IDMOFF              0x38   /* Idle Mode OFF */   
-#define LCD_IDMON               0x39   /* Idle Mode ON */   
-#define LCD_PIXEL_FORMAT        0x3A   /* Pixel Format register */
-#define LCD_WRITE_MEM_CONTINUE  0x3C   /* Write Memory Continue */   
-#define LCD_READ_MEM_CONTINUE   0x3E   /* Read Memory Continue */   
-#define LCD_SET_TEAR_SCANLINE   0x44   /* Set Tear Scanline */   
-#define LCD_GET_SCANLINE        0x45   /* Get Scanline */   
-#define LCD_WDB                 0x51   /* Write Brightness Display register */
-#define LCD_RDDISBV             0x52   /* Read Display Brightness */   
-#define LCD_WCD                 0x53   /* Write Control Display register*/
-#define LCD_RDCTRLD             0x54   /* Read CTRL Display */   
-#define LCD_WRCABC              0x55   /* Write Content Adaptive Brightness Control */   
-#define LCD_RDCABC              0x56   /* Read Content Adaptive Brightness Control */   
-#define LCD_WRITE_CABC          0x5E   /* Write CABC Minimum Brightness */   
-#define LCD_READ_CABC           0x5F   /* Read CABC Minimum Brightness */   
-#define LCD_READ_ID1            0xDA   /* Read ID1 */
-#define LCD_READ_ID2            0xDB   /* Read ID2 */
-#define LCD_READ_ID3            0xDC   /* Read ID3 */
-
-/* Level 2 Commands */
-#define LCD_RGB_INTERFACE       0xB0   /* RGB Interface Signal Control */
-#define LCD_FRMCTR1             0xB1   /* Frame Rate Control (In Normal Mode) */
-#define LCD_FRMCTR2             0xB2   /* Frame Rate Control (In Idle Mode) */
-#define LCD_FRMCTR3             0xB3   /* Frame Rate Control (In Partial Mode) */
-#define LCD_INVTR               0xB4   /* Display Inversion Control */
-#define LCD_BPC                 0xB5   /* Blanking Porch Control register */
-#define LCD_DFC                 0xB6   /* Display Function Control register */
-#define LCD_ETMOD               0xB7   /* Entry Mode Set */
-#define LCD_BACKLIGHT1          0xB8   /* Backlight Control 1 */
-#define LCD_BACKLIGHT2          0xB9   /* Backlight Control 2 */
-#define LCD_BACKLIGHT3          0xBA   /* Backlight Control 3 */
-#define LCD_BACKLIGHT4          0xBB   /* Backlight Control 4 */
-#define LCD_BACKLIGHT5          0xBC   /* Backlight Control 5 */
-#define LCD_BACKLIGHT7          0xBE   /* Backlight Control 7 */
-#define LCD_BACKLIGHT8          0xBF   /* Backlight Control 8 */
-#define LCD_POWER1              0xC0   /* Power Control 1 register */
-#define LCD_POWER2              0xC1   /* Power Control 2 register */
-#define LCD_VCOM1               0xC5   /* VCOM Control 1 register */
-#define LCD_VCOM2               0xC7   /* VCOM Control 2 register */
-#define LCD_NVMWR               0xD0   /* NV Memory Write */
-#define LCD_NVMPKEY             0xD1   /* NV Memory Protection Key */
-#define LCD_RDNVM               0xD2   /* NV Memory Status Read */
-#define LCD_READ_ID4            0xD3   /* Read ID4 */
-#define LCD_PGAMMA              0xE0   /* Positive Gamma Correction register */
-#define LCD_NGAMMA              0xE1   /* Negative Gamma Correction register */
-#define LCD_DGAMCTRL1           0xE2   /* Digital Gamma Control 1 */
-#define LCD_DGAMCTRL2           0xE3   /* Digital Gamma Control 2 */
-#define LCD_INTERFACE           0xF6   /* Interface control register */
-
-/* Extend register commands */
-#define LCD_POWERA               0xCB   /* Power control A register */
-#define LCD_POWERB               0xCF   /* Power control B register */
-#define LCD_DTCA                 0xE8   /* Driver timing control A */
-#define LCD_DTCB                 0xEA   /* Driver timing control B */
-#define LCD_POWER_SEQ            0xED   /* Power on sequence register */
-#define LCD_3GAMMA_EN            0xF2   /* 3 Gamma enable register */
-#define LCD_PRC                  0xF7   /* Pump ratio control register */
-
-/* Size of read registers */
-#define LCD_READ_ID4_SIZE        3      /* Size of Read ID4 */
-
-/**
-  * @}
-  */
-  
-/** @defgroup ILI9341_Exported_Functions
-  * @{
-  */ 
-void     ili9341_Init(void);
-uint16_t ili9341_ReadID(void);
-void     ili9341_WriteReg(uint8_t LCD_Reg);
-void     ili9341_WriteData(uint16_t RegValue);
-uint32_t ili9341_ReadData(uint16_t RegValue, uint8_t ReadSize);
-void     ili9341_DisplayOn(void);
-void     ili9341_DisplayOff(void);
-uint16_t ili9341_GetLcdPixelWidth(void);
-uint16_t ili9341_GetLcdPixelHeight(void);
-
-/* LCD driver structure */
-extern LCD_DrvTypeDef   ili9341_drv;
-
-/* LCD IO functions */
-void     LCD_IO_Init(void);
-void     LCD_IO_WriteData(uint16_t RegValue);
-void     LCD_IO_WriteReg(uint8_t Reg);
-uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize);
-void     LCD_Delay (uint32_t delay);
-      
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ILI9341_H */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-  
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 426
app/Drivers/BSP/Components/ov2640/Release_Notes.html


File diff suppressed because it is too large
+ 0 - 1351
app/Drivers/BSP/Components/ov2640/ov2640.c


+ 0 - 226
app/Drivers/BSP/Components/ov2640/ov2640.h

@@ -1,226 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    ov2640.h
-  * @author  MCD Application Team
-  * @version V1.0.2
-  * @date    02-December-2014
-  * @brief   This file contains all the functions prototypes for the ov2640.c
-  *          driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __OV2640_H
-#define __OV2640_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Common/camera.h"
-   
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ov2640
-  * @{
-  */
-
-/** @defgroup OV2640_Exported_Types
-  * @{
-  */
-     
-/**
-  * @}
-  */ 
-
-/** @defgroup OV2640_Exported_Constants
-  * @{
-  */
-/** 
-  * @brief  OV2640 ID  
-  */  
-#define  OV2640_ID    0x26
-/** 
-  * @brief  OV2640 Registers  
-  */
-/* OV2640 Registers definition when DSP bank selected (0xFF = 0x00) */
-#define OV2640_DSP_R_BYPASS             0x05
-#define OV2640_DSP_Qs                   0x44
-#define OV2640_DSP_CTRL                 0x50
-#define OV2640_DSP_HSIZE1               0x51
-#define OV2640_DSP_VSIZE1               0x52
-#define OV2640_DSP_XOFFL                0x53
-#define OV2640_DSP_YOFFL                0x54
-#define OV2640_DSP_VHYX                 0x55
-#define OV2640_DSP_DPRP                 0x56
-#define OV2640_DSP_TEST                 0x57
-#define OV2640_DSP_ZMOW                 0x5A
-#define OV2640_DSP_ZMOH                 0x5B
-#define OV2640_DSP_ZMHH                 0x5C
-#define OV2640_DSP_BPADDR               0x7C
-#define OV2640_DSP_BPDATA               0x7D
-#define OV2640_DSP_CTRL2                0x86
-#define OV2640_DSP_CTRL3                0x87
-#define OV2640_DSP_SIZEL                0x8C
-#define OV2640_DSP_HSIZE2               0xC0
-#define OV2640_DSP_VSIZE2               0xC1
-#define OV2640_DSP_CTRL0                0xC2
-#define OV2640_DSP_CTRL1                0xC3
-#define OV2640_DSP_R_DVP_SP             0xD3
-#define OV2640_DSP_IMAGE_MODE           0xDA
-#define OV2640_DSP_RESET                0xE0
-#define OV2640_DSP_MS_SP                0xF0
-#define OV2640_DSP_SS_ID                0x7F
-#define OV2640_DSP_SS_CTRL              0xF8
-#define OV2640_DSP_MC_BIST              0xF9
-#define OV2640_DSP_MC_AL                0xFA
-#define OV2640_DSP_MC_AH                0xFB
-#define OV2640_DSP_MC_D                 0xFC
-#define OV2640_DSP_P_STATUS             0xFE
-#define OV2640_DSP_RA_DLMT              0xFF
-
-/* OV2640 Registers definition when sensor bank selected (0xFF = 0x01) */
-#define OV2640_SENSOR_GAIN              0x00
-#define OV2640_SENSOR_COM1              0x03
-#define OV2640_SENSOR_REG04             0x04
-#define OV2640_SENSOR_REG08             0x08
-#define OV2640_SENSOR_COM2              0x09
-#define OV2640_SENSOR_PIDH              0x0A
-#define OV2640_SENSOR_PIDL              0x0B
-#define OV2640_SENSOR_COM3              0x0C
-#define OV2640_SENSOR_COM4              0x0D
-#define OV2640_SENSOR_AEC               0x10
-#define OV2640_SENSOR_CLKRC             0x11
-#define OV2640_SENSOR_COM7              0x12
-#define OV2640_SENSOR_COM8              0x13
-#define OV2640_SENSOR_COM9              0x14
-#define OV2640_SENSOR_COM10             0x15
-#define OV2640_SENSOR_HREFST            0x17
-#define OV2640_SENSOR_HREFEND           0x18
-#define OV2640_SENSOR_VSTART            0x19
-#define OV2640_SENSOR_VEND              0x1A
-#define OV2640_SENSOR_MIDH              0x1C
-#define OV2640_SENSOR_MIDL              0x1D
-#define OV2640_SENSOR_AEW               0x24
-#define OV2640_SENSOR_AEB               0x25
-#define OV2640_SENSOR_W                 0x26
-#define OV2640_SENSOR_REG2A             0x2A
-#define OV2640_SENSOR_FRARL             0x2B
-#define OV2640_SENSOR_ADDVSL            0x2D
-#define OV2640_SENSOR_ADDVHS            0x2E
-#define OV2640_SENSOR_YAVG              0x2F
-#define OV2640_SENSOR_REG32             0x32
-#define OV2640_SENSOR_ARCOM2            0x34
-#define OV2640_SENSOR_REG45             0x45
-#define OV2640_SENSOR_FLL               0x46
-#define OV2640_SENSOR_FLH               0x47
-#define OV2640_SENSOR_COM19             0x48
-#define OV2640_SENSOR_ZOOMS             0x49
-#define OV2640_SENSOR_COM22             0x4B
-#define OV2640_SENSOR_COM25             0x4E
-#define OV2640_SENSOR_BD50              0x4F
-#define OV2640_SENSOR_BD60              0x50
-#define OV2640_SENSOR_REG5D             0x5D
-#define OV2640_SENSOR_REG5E             0x5E
-#define OV2640_SENSOR_REG5F             0x5F
-#define OV2640_SENSOR_REG60             0x60
-#define OV2640_SENSOR_HISTO_LOW         0x61
-#define OV2640_SENSOR_HISTO_HIGH        0x62 
-
-/** 
- * @brief  OV2640 Features Parameters  
- */
-#define OV2640_BRIGHTNESS_LEVEL0        0x40   /* Brightness level -2         */
-#define OV2640_BRIGHTNESS_LEVEL1        0x30   /* Brightness level -1         */
-#define OV2640_BRIGHTNESS_LEVEL2        0x20   /* Brightness level 0          */
-#define OV2640_BRIGHTNESS_LEVEL3        0x10   /* Brightness level +1         */
-#define OV2640_BRIGHTNESS_LEVEL4        0x00   /* Brightness level +2         */
-
-#define OV2640_BLACK_WHITE_BW           0x18   /* Black and white effect      */
-#define OV2640_BLACK_WHITE_NEGATIVE     0x40   /* Negative effect             */
-#define OV2640_BLACK_WHITE_BW_NEGATIVE  0x58   /* BW and Negative effect      */
-#define OV2640_BLACK_WHITE_NORMAL       0x00   /* Normal effect               */
-
-#define OV2640_CONTRAST_LEVEL0          0x3418 /* Contrast level -2           */
-#define OV2640_CONTRAST_LEVEL1          0x2A1C /* Contrast level -2           */
-#define OV2640_CONTRAST_LEVEL2          0x2020 /* Contrast level -2           */
-#define OV2640_CONTRAST_LEVEL3          0x1624 /* Contrast level -2           */
-#define OV2640_CONTRAST_LEVEL4          0x0C28 /* Contrast level -2           */
-
-#define OV2640_COLOR_EFFECT_ANTIQUE     0xA640 /* Antique effect              */
-#define OV2640_COLOR_EFFECT_BLUE        0x40A0 /* Blue effect                 */
-#define OV2640_COLOR_EFFECT_GREEN       0x4040 /* Green effect                */
-#define OV2640_COLOR_EFFECT_RED         0xC040 /* Red effect                  */   
-/**
-  * @}
-  */
-  
-/** @defgroup OV2640_Exported_Functions
-  * @{
-  */ 
-void     ov2640_Init(uint16_t DeviceAddr, uint32_t resolution);
-void     ov2640_Config(uint16_t DeviceAddr, uint32_t feature, uint32_t value, uint32_t BR_value);
-uint16_t ov2640_ReadID(uint16_t DeviceAddr);
-
-void     CAMERA_IO_Init(void);
-void     CAMERA_IO_Write(uint8_t addr, uint8_t reg, uint8_t value);
-uint8_t  CAMERA_IO_Read(uint8_t addr, uint8_t reg);
-void     CAMERA_Delay(uint32_t delay);
-
-/* CAMERA driver structure */
-extern CAMERA_DrvTypeDef   ov2640_drv;
-/**
-  * @}
-  */    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OV2640_H */
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 307
app/Drivers/BSP/Components/st7735/Release_Notes.html


+ 0 - 471
app/Drivers/BSP/Components/st7735/st7735.c

@@ -1,471 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    st7735.c
-  * @author  MCD Application Team
-  * @version V1.1.1
-  * @date    24-November-2014
-  * @brief   This file includes the driver for ST7735 LCD mounted on the Adafruit
-  *          1.8" TFT LCD shield (reference ID 802).
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Includes ------------------------------------------------------------------*/
-#include "st7735.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-
-/** @addtogroup ST7735
-  * @brief      This file provides a set of functions needed to drive the
-  *             ST7735 LCD.
-  * @{
-  */
-
-/** @defgroup ST7735_Private_TypesDefinitions
-  * @{
-  */ 
-
-/**
-  * @}
-  */ 
-
-/** @defgroup ST7735_Private_Defines
-  * @{
-  */
-
-/**
-  * @}
-  */ 
-
-/** @defgroup ST7735_Private_Macros
-  * @{
-  */
-
-/**
-  * @}
-  */  
-
-/** @defgroup ST7735_Private_Variables
-  * @{
-  */ 
-
-
-LCD_DrvTypeDef   st7735_drv = 
-{
-  st7735_Init,
-  0,
-  st7735_DisplayOn,
-  st7735_DisplayOff,
-  st7735_SetCursor,
-  st7735_WritePixel,
-  0,
-  st7735_SetDisplayWindow,
-  st7735_DrawHLine,
-  st7735_DrawVLine,
-  st7735_GetLcdPixelWidth,
-  st7735_GetLcdPixelHeight,
-  st7735_DrawBitmap,
-};
-
-static uint16_t ArrayRGB[320] = {0};
-
-/**
-* @}
-*/ 
-
-/** @defgroup ST7735_Private_FunctionPrototypes
-  * @{
-  */
-
-/**
-* @}
-*/ 
-
-/** @defgroup ST7735_Private_Functions
-  * @{
-  */
-
-/**
-  * @brief  Initialize the ST7735 LCD Component.
-  * @param  None
-  * @retval None
-  */
-void st7735_Init(void)
-{    
-  uint8_t data = 0;
-  
-  /* Initialize ST7735 low level bus layer -----------------------------------*/
-  LCD_IO_Init();
-  /* Out of sleep mode, 0 args, no delay */
-  st7735_WriteReg(LCD_REG_17, 0x00); 
-  /* Frame rate ctrl - normal mode, 3 args:Rate = fosc/(1x2+40) * (LINE+2C+2D)*/
-  LCD_IO_WriteReg(LCD_REG_177);
-  data = 0x01;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = 0x2C;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = 0x2D;
-  LCD_IO_WriteMultipleData(&data, 1);
-  /* Frame rate control - idle mode, 3 args:Rate = fosc/(1x2+40) * (LINE+2C+2D) */    
-  st7735_WriteReg(LCD_REG_178, 0x01);
-  st7735_WriteReg(LCD_REG_178, 0x2C);
-  st7735_WriteReg(LCD_REG_178, 0x2D);
-  /* Frame rate ctrl - partial mode, 6 args: Dot inversion mode, Line inversion mode */ 
-  st7735_WriteReg(LCD_REG_179, 0x01);
-  st7735_WriteReg(LCD_REG_179, 0x2C);
-  st7735_WriteReg(LCD_REG_179, 0x2D);
-  st7735_WriteReg(LCD_REG_179, 0x01);
-  st7735_WriteReg(LCD_REG_179, 0x2C);
-  st7735_WriteReg(LCD_REG_179, 0x2D);
-  /* Display inversion ctrl, 1 arg, no delay: No inversion */
-  st7735_WriteReg(LCD_REG_180, 0x07);
-  /* Power control, 3 args, no delay: -4.6V , AUTO mode */
-  st7735_WriteReg(LCD_REG_192, 0xA2);
-  st7735_WriteReg(LCD_REG_192, 0x02);
-  st7735_WriteReg(LCD_REG_192, 0x84);
-  /* Power control, 1 arg, no delay: VGH25 = 2.4C VGSEL = -10 VGH = 3 * AVDD */
-  st7735_WriteReg(LCD_REG_193, 0xC5);
-  /* Power control, 2 args, no delay: Opamp current small, Boost frequency */ 
-  st7735_WriteReg(LCD_REG_194, 0x0A);
-  st7735_WriteReg(LCD_REG_194, 0x00);
-  /* Power control, 2 args, no delay: BCLK/2, Opamp current small & Medium low */  
-  st7735_WriteReg(LCD_REG_195, 0x8A);
-  st7735_WriteReg(LCD_REG_195, 0x2A);
-  /* Power control, 2 args, no delay */
-  st7735_WriteReg(LCD_REG_196, 0x8A);
-  st7735_WriteReg(LCD_REG_196, 0xEE);
-  /* Power control, 1 arg, no delay */
-  st7735_WriteReg(LCD_REG_197, 0x0E);
-  /* Don't invert display, no args, no delay */
-  LCD_IO_WriteReg(LCD_REG_32);
-  /* Set color mode, 1 arg, no delay: 16-bit color */
-  st7735_WriteReg(LCD_REG_58, 0x05);
-  /* Column addr set, 4 args, no delay: XSTART = 0, XEND = 127 */
-  LCD_IO_WriteReg(LCD_REG_42);
-  data = 0x00;
-  LCD_IO_WriteMultipleData(&data, 1);
-  LCD_IO_WriteMultipleData(&data, 1);
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = 0x7F;
-  LCD_IO_WriteMultipleData(&data, 1);
-  /* Row addr set, 4 args, no delay: YSTART = 0, YEND = 159 */
-  LCD_IO_WriteReg(LCD_REG_43);
-  data = 0x00;
-  LCD_IO_WriteMultipleData(&data, 1);
-  LCD_IO_WriteMultipleData(&data, 1);
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = 0x9F;
-  LCD_IO_WriteMultipleData(&data, 1);
-  /* Magical unicorn dust, 16 args, no delay */
-  st7735_WriteReg(LCD_REG_224, 0x02); 
-  st7735_WriteReg(LCD_REG_224, 0x1c);  
-  st7735_WriteReg(LCD_REG_224, 0x07); 
-  st7735_WriteReg(LCD_REG_224, 0x12);
-  st7735_WriteReg(LCD_REG_224, 0x37);  
-  st7735_WriteReg(LCD_REG_224, 0x32);  
-  st7735_WriteReg(LCD_REG_224, 0x29);  
-  st7735_WriteReg(LCD_REG_224, 0x2d);
-  st7735_WriteReg(LCD_REG_224, 0x29);  
-  st7735_WriteReg(LCD_REG_224, 0x25);  
-  st7735_WriteReg(LCD_REG_224, 0x2B);  
-  st7735_WriteReg(LCD_REG_224, 0x39);  
-  st7735_WriteReg(LCD_REG_224, 0x00);  
-  st7735_WriteReg(LCD_REG_224, 0x01);  
-  st7735_WriteReg(LCD_REG_224, 0x03);  
-  st7735_WriteReg(LCD_REG_224, 0x10);
-  /* Sparkles and rainbows, 16 args, no delay */
-  st7735_WriteReg(LCD_REG_225, 0x03);
-  st7735_WriteReg(LCD_REG_225, 0x1d);  
-  st7735_WriteReg(LCD_REG_225, 0x07);  
-  st7735_WriteReg(LCD_REG_225, 0x06);
-  st7735_WriteReg(LCD_REG_225, 0x2E);  
-  st7735_WriteReg(LCD_REG_225, 0x2C);  
-  st7735_WriteReg(LCD_REG_225, 0x29);  
-  st7735_WriteReg(LCD_REG_225, 0x2D);
-  st7735_WriteReg(LCD_REG_225, 0x2E);  
-  st7735_WriteReg(LCD_REG_225, 0x2E);  
-  st7735_WriteReg(LCD_REG_225, 0x37);  
-  st7735_WriteReg(LCD_REG_225, 0x3F);  
-  st7735_WriteReg(LCD_REG_225, 0x00);  
-  st7735_WriteReg(LCD_REG_225, 0x00);  
-  st7735_WriteReg(LCD_REG_225, 0x02);  
-  st7735_WriteReg(LCD_REG_225, 0x10);
-  /* Normal display on, no args, no delay */
-  st7735_WriteReg(LCD_REG_19, 0x00);
-  /* Main screen turn on, no delay */
-  st7735_WriteReg(LCD_REG_41, 0x00);
-  /* Memory access control: MY = 1, MX = 1, MV = 0, ML = 0 */
-  st7735_WriteReg(LCD_REG_54, 0xC0);
-}
-
-/**
-  * @brief  Enables the Display.
-  * @param  None
-  * @retval None
-  */
-void st7735_DisplayOn(void)
-{
-  uint8_t data = 0;
-  LCD_IO_WriteReg(LCD_REG_19);
-  LCD_Delay(10);
-  LCD_IO_WriteReg(LCD_REG_41);
-  LCD_Delay(10);
-  LCD_IO_WriteReg(LCD_REG_54);
-  data = 0xC0;
-  LCD_IO_WriteMultipleData(&data, 1);
-}
-
-/**
-  * @brief  Disables the Display.
-  * @param  None
-  * @retval None
-  */
-void st7735_DisplayOff(void)
-{
-  uint8_t data = 0;
-  LCD_IO_WriteReg(LCD_REG_19);
-  LCD_Delay(10);
-  LCD_IO_WriteReg(LCD_REG_40);
-  LCD_Delay(10);
-  LCD_IO_WriteReg(LCD_REG_54);
-  data = 0xC0;
-  LCD_IO_WriteMultipleData(&data, 1);
-}
-
-/**
-  * @brief  Sets Cursor position.
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @retval None
-  */
-void st7735_SetCursor(uint16_t Xpos, uint16_t Ypos)
-{
-  uint8_t data = 0;
-  LCD_IO_WriteReg(LCD_REG_42);
-  data = (Xpos) >> 8;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Xpos) & 0xFF;
-  LCD_IO_WriteMultipleData(&data, 1);
-  LCD_IO_WriteReg(LCD_REG_43); 
-  data = (Ypos) >> 8;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Ypos) & 0xFF;
-  LCD_IO_WriteMultipleData(&data, 1);
-  LCD_IO_WriteReg(LCD_REG_44);
-}
-
-/**
-  * @brief  Writes pixel.   
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @param  RGBCode: the RGB pixel color
-  * @retval None
-  */
-void st7735_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode)
-{
-  uint8_t data = 0;
-  if((Xpos >= ST7735_LCD_PIXEL_WIDTH) || (Ypos >= ST7735_LCD_PIXEL_HEIGHT)) 
-  {
-    return;
-  }
-  
-  /* Set Cursor */
-  st7735_SetCursor(Xpos, Ypos);
-  
-  data = RGBCode >> 8;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = RGBCode;
-  LCD_IO_WriteMultipleData(&data, 1);
-}  
-
-
-/**
-  * @brief  Writes to the selected LCD register.
-  * @param  LCDReg: Address of the selected register.
-  * @param  LCDRegValue: value to write to the selected register.
-  * @retval None
-  */
-void st7735_WriteReg(uint8_t LCDReg, uint8_t LCDRegValue)
-{
-  LCD_IO_WriteReg(LCDReg);
-  LCD_IO_WriteMultipleData(&LCDRegValue, 1);
-}
-
-/**
-  * @brief  Sets a display window
-  * @param  Xpos:   specifies the X bottom left position.
-  * @param  Ypos:   specifies the Y bottom left position.
-  * @param  Height: display window height.
-  * @param  Width:  display window width.
-  * @retval None
-  */
-void st7735_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
-{
-  uint8_t data = 0;
-  /* Column addr set, 4 args, no delay: XSTART = Xpos, XEND = (Xpos + Width - 1) */
-  LCD_IO_WriteReg(LCD_REG_42);
-  data = (Xpos) >> 8;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Xpos) & 0xFF;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Xpos + Width - 1) >> 8;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Xpos + Width - 1) & 0xFF;
-  LCD_IO_WriteMultipleData(&data, 1);
-  /* Row addr set, 4 args, no delay: YSTART = Ypos, YEND = (Ypos + Height - 1) */
-  LCD_IO_WriteReg(LCD_REG_43);
-  data = (Ypos) >> 8;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Ypos) & 0xFF;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Ypos + Height - 1) >> 8;
-  LCD_IO_WriteMultipleData(&data, 1);
-  data = (Ypos + Height - 1) & 0xFF;
-  LCD_IO_WriteMultipleData(&data, 1);
-}
-
-/**
-  * @brief  Draws horizontal line.
-  * @param  RGBCode: Specifies the RGB color   
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @param  Length: specifies the line length.  
-  * @retval None
-  */
-void st7735_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
-{
-  uint8_t counter = 0;
-  
-  if(Xpos + Length > ST7735_LCD_PIXEL_WIDTH) return;
-  
-  /* Set Cursor */
-  st7735_SetCursor(Xpos, Ypos);
-  
-  for(counter = 0; counter < Length; counter++)
-  {
-    ArrayRGB[counter] = RGBCode;
-  }
-  LCD_IO_WriteMultipleData((uint8_t*)&ArrayRGB[0], Length * 2);
-}
-
-/**
-  * @brief  Draws vertical line.
-  * @param  RGBCode: Specifies the RGB color   
-  * @param  Xpos: specifies the X position.
-  * @param  Ypos: specifies the Y position.
-  * @param  Length: specifies the line length.  
-  * @retval None
-  */
-void st7735_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
-{
-  uint8_t counter = 0;
-  
-  if(Ypos + Length > ST7735_LCD_PIXEL_HEIGHT) return;
-  for(counter = 0; counter < Length; counter++)
-  {
-    st7735_WritePixel(Xpos, Ypos + counter, RGBCode);
-  }   
-}
-
-/**
-  * @brief  Gets the LCD pixel Width.
-  * @param  None
-  * @retval The Lcd Pixel Width
-  */
-uint16_t st7735_GetLcdPixelWidth(void)
-{
-  return ST7735_LCD_PIXEL_WIDTH;
-}
-
-/**
-  * @brief  Gets the LCD pixel Height.
-  * @param  None
-  * @retval The Lcd Pixel Height
-  */
-uint16_t st7735_GetLcdPixelHeight(void)
-{                          
-  return ST7735_LCD_PIXEL_HEIGHT;
-}
-
-/**
-  * @brief  Displays a bitmap picture loaded in the internal Flash.
-  * @param  BmpAddress: Bmp picture address in the internal Flash.
-  * @retval None
-  */
-void st7735_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp)
-{
-  uint32_t index = 0, size = 0;
-  
-  /* Read bitmap size */
-  size = *(volatile uint16_t *) (pbmp + 2);
-  size |= (*(volatile uint16_t *) (pbmp + 4)) << 16;
-  /* Get bitmap data address offset */
-  index = *(volatile uint16_t *) (pbmp + 10);
-  index |= (*(volatile uint16_t *) (pbmp + 12)) << 16;
-  size = (size - index)/2;
-  pbmp += index;
-  
-  /* Set GRAM write direction and BGR = 0 */
-  /* Memory access control: MY = 0, MX = 1, MV = 0, ML = 0 */
-  st7735_WriteReg(LCD_REG_54, 0x40);
-
-  /* Set Cursor */
-  st7735_SetCursor(Xpos, Ypos);  
- 
-  LCD_IO_WriteMultipleData((uint8_t*)pbmp, size*2);
- 
-  /* Set GRAM write direction and BGR = 0 */
-  /* Memory access control: MY = 1, MX = 1, MV = 0, ML = 0 */
-  st7735_WriteReg(LCD_REG_54, 0xC0);
-}
-
-/**
-* @}
-*/ 
-
-/**
-* @}
-*/ 
-
-/**
-* @}
-*/ 
-
-/**
-* @}
-*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-

+ 0 - 214
app/Drivers/BSP/Components/st7735/st7735.h

@@ -1,214 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    st7735.h
-  * @author  MCD Application Team
-  * @version V1.1.1
-  * @date    24-November-2014
-  * @brief   This file contains all the functions prototypes for the st7735.c
-  *          driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __ST7735_H
-#define __ST7735_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Common/lcd.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @addtogroup ST7735
-  * @{
-  */
-
-/** @defgroup ST7735_Exported_Types
-  * @{
-  */
-   
-/**
-  * @}
-  */ 
-
-/** @defgroup ST7735_Exported_Constants
-  * @{
-  */
-      
-/** 
-  * @brief  ST7735 Size  
-  */  
-#define  ST7735_LCD_PIXEL_WIDTH    ((uint16_t)128)
-#define  ST7735_LCD_PIXEL_HEIGHT   ((uint16_t)160)
-
-/** 
-  * @brief  ST7735 Registers  
-  */ 
-#define  LCD_REG_0               0x00 /* No Operation: NOP */
-#define  LCD_REG_1               0x01 /* Software reset: SWRESET */
-#define  LCD_REG_4               0x04 /* Read Display ID: RDDID */
-#define  LCD_REG_9               0x09 /* Read Display Statu: RDDST */
-#define  LCD_REG_10              0x0A /* Read Display Power: RDDPM */
-#define  LCD_REG_11              0x0B /* Read Display: RDDMADCTL */
-#define  LCD_REG_12              0x0C /* Read Display Pixel: RDDCOLMOD */  
-#define  LCD_REG_13              0x0D /* Read Display Image: RDDIM */
-#define  LCD_REG_14              0x0E /* Read Display Signal: RDDSM */                           
-#define  LCD_REG_16              0x10 /* Sleep in & booster off: SLPIN */ 
-#define  LCD_REG_17              0x11 /* Sleep out & booster on: SLPOUT */
-#define  LCD_REG_18              0x12 /* Partial mode on: PTLON */ 
-#define  LCD_REG_19              0x13 /* Partial off (Normal): NORON */
-#define  LCD_REG_32              0x20 /* Display inversion off: INVOFF */
-#define  LCD_REG_33              0x21 /* Display inversion on: INVON */
-#define  LCD_REG_38              0x26 /* Gamma curve select: GAMSET */
-#define  LCD_REG_40              0x28 /* Display off: DISPOFF */
-#define  LCD_REG_41              0x29 /* Display on: DISPON */
-#define  LCD_REG_42              0x2A /* Column address set: CASET */ 
-#define  LCD_REG_43              0x2B /* Row address set: RASET */
-#define  LCD_REG_44              0x2C /* Memory write: RAMWR */  
-#define  LCD_REG_45              0x2D /* LUT for 4k,65k,262k color: RGBSET */
-#define  LCD_REG_46              0x2E /* Memory read: RAMRD*/
-#define  LCD_REG_48              0x30 /* Partial start/end address set: PTLAR */ 
-#define  LCD_REG_52              0x34 /* Tearing effect line off: TEOFF */ 
-#define  LCD_REG_53              0x35 /* Tearing effect mode set & on: TEON */ 
-#define  LCD_REG_54              0x36 /* Memory data access control: MADCTL */ 
-#define  LCD_REG_56              0x38 /* Idle mode off: IDMOFF */ 
-#define  LCD_REG_57              0x39 /* Idle mode on: IDMON */ 
-#define  LCD_REG_58              0x3A /* Interface pixel format: COLMOD */
-#define  LCD_REG_177             0xB1 /* In normal mode (Full colors): FRMCTR1 */
-#define  LCD_REG_178             0xB2 /* In Idle mode (8-colors): FRMCTR2 */   
-#define  LCD_REG_179             0xB3 /* In partial mode + Full colors: FRMCTR3 */ 
-#define  LCD_REG_180             0xB4 /* Display inversion control: INVCTR */
-#define  LCD_REG_192             0xC0 /* Power control setting: PWCTR1 */ 
-#define  LCD_REG_193             0xC1 /* Power control setting: PWCTR2 */ 
-#define  LCD_REG_194             0xC2 /* In normal mode (Full colors): PWCTR3 */
-#define  LCD_REG_195             0xC3 /* In Idle mode (8-colors): PWCTR4 */ 
-#define  LCD_REG_196             0xC4 /* In partial mode + Full colors: PWCTR5 */ 
-#define  LCD_REG_197             0xC5 /* VCOM control 1: VMCTR1 */ 
-#define  LCD_REG_199             0xC7 /* Set VCOM offset control: VMOFCTR */ 
-#define  LCD_REG_209             0xD1 /* Set LCM version code: WRID2 */ 
-#define  LCD_REG_210             0xD2 /* Customer Project code: WRID3 */ 
-#define  LCD_REG_217             0xD9 /* NVM control status: NVCTR1 */
-#define  LCD_REG_218             0xDA /* Read ID1: RDID1 */ 
-#define  LCD_REG_219             0xDB /* Read ID2: RDID2 */ 
-#define  LCD_REG_220             0xDC /* Read ID3: RDID3 */ 
-#define  LCD_REG_222             0xDE /* NVM Read Command: NVCTR2 */ 
-#define  LCD_REG_223             0xDF /* NVM Write Command: NVCTR3 */
-#define  LCD_REG_224             0xE0 /* Set Gamma adjustment (+ polarity): GAMCTRP1 */                          
-#define  LCD_REG_225             0xE1 /* Set Gamma adjustment (- polarity): GAMCTRN1 */ 
-
-/** 
-  * @brief  LCD Lines depending on the chosen fonts.  
-  */
-#define LCD_LINE_0               LINE(0)
-#define LCD_LINE_1               LINE(1)
-#define LCD_LINE_2               LINE(2)
-#define LCD_LINE_3               LINE(3)
-#define LCD_LINE_4               LINE(4)
-#define LCD_LINE_5               LINE(5)
-#define LCD_LINE_6               LINE(6)
-#define LCD_LINE_7               LINE(7)
-#define LCD_LINE_8               LINE(8)
-#define LCD_LINE_9               LINE(9)
-#define LCD_LINE_10              LINE(10)
-#define LCD_LINE_11              LINE(11)
-#define LCD_LINE_12              LINE(12)
-#define LCD_LINE_13              LINE(13)
-#define LCD_LINE_14              LINE(14)
-#define LCD_LINE_15              LINE(15)
-#define LCD_LINE_16              LINE(16)
-#define LCD_LINE_17              LINE(17)
-#define LCD_LINE_18              LINE(18)
-#define LCD_LINE_19              LINE(19) 
-   
-/**
-  * @}
-  */
-
-/** @defgroup ADAFRUIT_SPI_LCD_Exported_Functions
-  * @{
-  */ 
-void     st7735_Init(void);
-uint16_t st7735_ReadID(void);
-
-void     st7735_DisplayOn(void);
-void     st7735_DisplayOff(void);
-void     st7735_SetCursor(uint16_t Xpos, uint16_t Ypos);
-void     st7735_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode);
-void     st7735_WriteReg(uint8_t LCDReg, uint8_t LCDRegValue);
-uint8_t  st7735_ReadReg(uint8_t LCDReg);
-
-void     st7735_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
-void     st7735_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     st7735_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-
-uint16_t st7735_GetLcdPixelWidth(void);
-uint16_t st7735_GetLcdPixelHeight(void);
-void     st7735_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp);
-
-/* LCD driver structure */
-extern LCD_DrvTypeDef   st7735_drv;
-
-/* LCD IO functions */
-void     LCD_IO_Init(void);
-void     LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size);
-void     LCD_IO_WriteReg(uint8_t Reg);
-void     LCD_Delay(uint32_t delay);
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ST7735_H */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 378
app/Drivers/BSP/Components/stmpe811/Release_Notes.html


+ 0 - 977
app/Drivers/BSP/Components/stmpe811/stmpe811.c

@@ -1,977 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stmpe811.c
-  * @author  MCD Application Team
-  * @version V2.0.0
-  * @date    15-December-2014
-  * @brief   This file provides a set of functions needed to manage the STMPE811
-  *          IO Expander devices.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */  
-
-/* Includes ------------------------------------------------------------------*/
-#include "stmpe811.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */ 
-  
-/** @defgroup STMPE811
-  * @{
-  */   
-
-/** @defgroup STMPE811_Private_Types_Definitions
-  * @{
-  */ 
-
-/** @defgroup STMPE811_Private_Defines
-  * @{
-  */ 
-#define STMPE811_MAX_INSTANCE         2 
-/**
-  * @}
-  */
-
-/** @defgroup STMPE811_Private_Macros
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-
-/** @defgroup STMPE811_Private_Variables
-  * @{
-  */ 
-
-/* Touch screen driver structure initialization */  
-TS_DrvTypeDef stmpe811_ts_drv = 
-{
-  stmpe811_Init,
-  stmpe811_ReadID,
-  stmpe811_Reset,
-  stmpe811_TS_Start,
-  stmpe811_TS_DetectTouch,
-  stmpe811_TS_GetXY,
-  stmpe811_TS_EnableIT,
-  stmpe811_TS_ClearIT,
-  stmpe811_TS_ITStatus,
-  stmpe811_TS_DisableIT,
-};
-
-/* IO driver structure initialization */ 
-IO_DrvTypeDef stmpe811_io_drv = 
-{
-  stmpe811_Init,
-  stmpe811_ReadID,
-  stmpe811_Reset,
-  stmpe811_IO_Start,
-  stmpe811_IO_Config,
-  stmpe811_IO_WritePin,
-  stmpe811_IO_ReadPin,
-  stmpe811_IO_EnableIT,
-  stmpe811_IO_DisableIT,
-  stmpe811_IO_ITStatus,
-  stmpe811_IO_ClearIT,
-};
-
-/* stmpe811 instances by address */
-uint8_t stmpe811[STMPE811_MAX_INSTANCE] = {0};
-/**
-  * @}
-  */ 
-
-/** @defgroup STMPE811_Private_Function_Prototypes
-  * @{
-  */
-static uint8_t stmpe811_GetInstance(uint16_t DeviceAddr); 
-/**
-  * @}
-  */ 
-
-/** @defgroup STMPE811_Private_Functions
-  * @{
-  */
-
-/**
-  * @brief  Initialize the stmpe811 and configure the needed hardware resources
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @retval None
-  */
-void stmpe811_Init(uint16_t DeviceAddr)
-{
-  uint8_t instance;
-  uint8_t empty;
-  
-  /* Check if device instance already exists */
-  instance = stmpe811_GetInstance(DeviceAddr);
-  
-  /* To prevent double initialization */
-  if(instance == 0xFF)
-  {
-    /* Look for empty instance */
-    empty = stmpe811_GetInstance(0);
-    
-    if(empty < STMPE811_MAX_INSTANCE)
-    {
-      /* Register the current device instance */
-      stmpe811[empty] = DeviceAddr;
-      
-      /* Initialize IO BUS layer */
-      IOE_Init(); 
-      
-      /* Generate stmpe811 Software reset */
-      stmpe811_Reset(DeviceAddr);
-    }
-  }
-}
- 
-/**
-  * @brief  Reset the stmpe811 by Software.
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @retval None
-  */
-void stmpe811_Reset(uint16_t DeviceAddr)
-{
-  /* Power Down the stmpe811 */  
-  IOE_Write(DeviceAddr, STMPE811_REG_SYS_CTRL1, 2);
-
-  /* Wait for a delay to ensure registers erasing */
-  IOE_Delay(10); 
-  
-  /* Power On the Codec after the power off => all registers are reinitialized */
-  IOE_Write(DeviceAddr, STMPE811_REG_SYS_CTRL1, 0);
-  
-  /* Wait for a delay to ensure registers erasing */
-  IOE_Delay(2); 
-}
-
-/**
-  * @brief  Read the stmpe811 IO Expander device ID.
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @retval The Device ID (two bytes).
-  */
-uint16_t stmpe811_ReadID(uint16_t DeviceAddr)
-{
-  /* Initialize IO BUS layer */
-  IOE_Init(); 
-  
-  /* Return the device ID value */
-  return ((IOE_Read(DeviceAddr, STMPE811_REG_CHP_ID_LSB) << 8) |\
-          (IOE_Read(DeviceAddr, STMPE811_REG_CHP_ID_MSB)));
-}
-
-/**
-  * @brief  Enable the Global interrupt.
-  * @param  DeviceAddr: Device address on communication Bus.       
-  * @retval None
-  */
-void stmpe811_EnableGlobalIT(uint16_t DeviceAddr)
-{
-  uint8_t tmp = 0;
-  
-  /* Read the Interrupt Control register  */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_INT_CTRL);
-  
-  /* Set the global interrupts to be Enabled */    
-  tmp |= (uint8_t)STMPE811_GIT_EN;
-  
-  /* Write Back the Interrupt Control register */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_CTRL, tmp); 
-}
-
-/**
-  * @brief  Disable the Global interrupt.
-  * @param  DeviceAddr: Device address on communication Bus.      
-  * @retval None
-  */
-void stmpe811_DisableGlobalIT(uint16_t DeviceAddr)
-{
-  uint8_t tmp = 0;
-  
-  /* Read the Interrupt Control register  */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_INT_CTRL);
-
-  /* Set the global interrupts to be Disabled */    
-  tmp &= ~(uint8_t)STMPE811_GIT_EN;
- 
-  /* Write Back the Interrupt Control register */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_CTRL, tmp);
-    
-}
-
-/**
-  * @brief  Enable the interrupt mode for the selected IT source
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param Source: The interrupt source to be configured, could be:
-  *   @arg  STMPE811_GIT_IO: IO interrupt 
-  *   @arg  STMPE811_GIT_ADC : ADC interrupt    
-  *   @arg  STMPE811_GIT_FE : Touch Screen Controller FIFO Error interrupt
-  *   @arg  STMPE811_GIT_FF : Touch Screen Controller FIFO Full interrupt      
-  *   @arg  STMPE811_GIT_FOV : Touch Screen Controller FIFO Overrun interrupt     
-  *   @arg  STMPE811_GIT_FTH : Touch Screen Controller FIFO Threshold interrupt   
-  *   @arg  STMPE811_GIT_TOUCH : Touch Screen Controller Touch Detected interrupt  
-  * @retval None
-  */
-void stmpe811_EnableITSource(uint16_t DeviceAddr, uint8_t Source)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the current value of the INT_EN register */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_INT_EN);
-
-  /* Set the interrupts to be Enabled */    
-  tmp |= Source; 
-  
-  /* Set the register */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_EN, tmp);   
-}
-
-/**
-  * @brief  Disable the interrupt mode for the selected IT source
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param  Source: The interrupt source to be configured, could be:
-  *   @arg  STMPE811_GIT_IO: IO interrupt 
-  *   @arg  STMPE811_GIT_ADC : ADC interrupt    
-  *   @arg  STMPE811_GIT_FE : Touch Screen Controller FIFO Error interrupt
-  *   @arg  STMPE811_GIT_FF : Touch Screen Controller FIFO Full interrupt      
-  *   @arg  STMPE811_GIT_FOV : Touch Screen Controller FIFO Overrun interrupt     
-  *   @arg  STMPE811_GIT_FTH : Touch Screen Controller FIFO Threshold interrupt   
-  *   @arg  STMPE811_GIT_TOUCH : Touch Screen Controller Touch Detected interrupt  
-  * @retval None
-  */
-void stmpe811_DisableITSource(uint16_t DeviceAddr, uint8_t Source)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the current value of the INT_EN register */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_INT_EN);
-
-  /* Set the interrupts to be Enabled */    
-  tmp &= ~Source; 
-  
-  /* Set the register */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_EN, tmp);   
-}
-
-/**
-  * @brief  Set the global interrupt Polarity.
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param  Polarity: the IT mode polarity, could be one of the following values:
-  *   @arg  STMPE811_POLARITY_LOW: Interrupt line is active Low/Falling edge      
-  *   @arg  STMPE811_POLARITY_HIGH: Interrupt line is active High/Rising edge              
-  * @retval None
-  */
-void stmpe811_SetITPolarity(uint16_t DeviceAddr, uint8_t Polarity)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the current register value */ 
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_INT_CTRL);
-  
-  /* Mask the polarity bits */
-  tmp &= ~(uint8_t)0x04;
-    
-  /* Modify the Interrupt Output line configuration */
-  tmp |= Polarity;
-  
-  /* Set the new register value */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_CTRL, tmp);
- 
-}
-
-/**
-  * @brief  Set the global interrupt Type. 
-  * @param  DeviceAddr: Device address on communication Bus.      
-  * @param  Type: Interrupt line activity type, could be one of the following values:
-  *   @arg  STMPE811_TYPE_LEVEL: Interrupt line is active in level model         
-  *   @arg  STMPE811_TYPE_EDGE: Interrupt line is active in edge model           
-  * @retval None
-  */
-void stmpe811_SetITType(uint16_t DeviceAddr, uint8_t Type)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the current register value */ 
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_INT_CTRL);
-  
-  /* Mask the type bits */
-  tmp &= ~(uint8_t)0x02;
-    
-  /* Modify the Interrupt Output line configuration */
-  tmp |= Type;
-  
-  /* Set the new register value */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_CTRL, tmp);
- 
-}
-
-/**
-  * @brief  Check the selected Global interrupt source pending bit
-  * @param  DeviceAddr: Device address on communication Bus. 
-  * @param  Source: the Global interrupt source to be checked, could be:
-  *   @arg  STMPE811_GIT_IO: IO interrupt 
-  *   @arg  STMPE811_GIT_ADC : ADC interrupt    
-  *   @arg  STMPE811_GIT_FE : Touch Screen Controller FIFO Error interrupt
-  *   @arg  STMPE811_GIT_FF : Touch Screen Controller FIFO Full interrupt      
-  *   @arg  STMPE811_GIT_FOV : Touch Screen Controller FIFO Overrun interrupt     
-  *   @arg  STMPE811_GIT_FTH : Touch Screen Controller FIFO Threshold interrupt   
-  *   @arg  STMPE811_GIT_TOUCH : Touch Screen Controller Touch Detected interrupt      
-  * @retval The checked Global interrupt source status.
-  */
-uint8_t stmpe811_GlobalITStatus(uint16_t DeviceAddr, uint8_t Source)
-{
-  /* Return the global IT source status */
-  return((IOE_Read(DeviceAddr, STMPE811_REG_INT_STA) & Source) == Source);
-}
-
-/**
-  * @brief  Return the Global interrupts status
-  * @param  DeviceAddr: Device address on communication Bus. 
-  * @param  Source: the Global interrupt source to be checked, could be:
-  *   @arg  STMPE811_GIT_IO: IO interrupt 
-  *   @arg  STMPE811_GIT_ADC : ADC interrupt    
-  *   @arg  STMPE811_GIT_FE : Touch Screen Controller FIFO Error interrupt
-  *   @arg  STMPE811_GIT_FF : Touch Screen Controller FIFO Full interrupt      
-  *   @arg  STMPE811_GIT_FOV : Touch Screen Controller FIFO Overrun interrupt     
-  *   @arg  STMPE811_GIT_FTH : Touch Screen Controller FIFO Threshold interrupt   
-  *   @arg  STMPE811_GIT_TOUCH : Touch Screen Controller Touch Detected interrupt      
-  * @retval The checked Global interrupt source status.
-  */
-uint8_t stmpe811_ReadGITStatus(uint16_t DeviceAddr, uint8_t Source)
-{
-  /* Return the global IT source status */
-  return((IOE_Read(DeviceAddr, STMPE811_REG_INT_STA) & Source));
-}
-
-/**
-  * @brief  Clear the selected Global interrupt pending bit(s)
-  * @param  DeviceAddr: Device address on communication Bus. 
-  * @param  Source: the Global interrupt source to be cleared, could be any combination
-  *         of the following values:        
-  *   @arg  STMPE811_GIT_IO: IO interrupt 
-  *   @arg  STMPE811_GIT_ADC : ADC interrupt    
-  *   @arg  STMPE811_GIT_FE : Touch Screen Controller FIFO Error interrupt
-  *   @arg  STMPE811_GIT_FF : Touch Screen Controller FIFO Full interrupt      
-  *   @arg  STMPE811_GIT_FOV : Touch Screen Controller FIFO Overrun interrupt     
-  *   @arg  STMPE811_GIT_FTH : Touch Screen Controller FIFO Threshold interrupt   
-  *   @arg  STMPE811_GIT_TOUCH : Touch Screen Controller Touch Detected interrupt 
-  * @retval None
-  */
-void stmpe811_ClearGlobalIT(uint16_t DeviceAddr, uint8_t Source)
-{
-  /* Write 1 to the bits that have to be cleared */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_STA, Source);
-}
-
-/**
-  * @brief  Start the IO functionality use and disable the AF for selected IO pin(s).
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param  IO_Pin: The IO pin(s) to put in AF. This parameter can be one 
-  *         of the following values:
-  *   @arg  STMPE811_PIN_x: where x can be from 0 to 7.
-  * @retval None
-  */
-void stmpe811_IO_Start(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  uint8_t mode;
-  
-  /* Get the current register value */
-  mode = IOE_Read(DeviceAddr, STMPE811_REG_SYS_CTRL2);
-  
-  /* Set the Functionalities to be Disabled */    
-  mode &= ~(STMPE811_IO_FCT | STMPE811_ADC_FCT);  
-  
-  /* Write the new register value */  
-  IOE_Write(DeviceAddr, STMPE811_REG_SYS_CTRL2, mode); 
-
-  /* Disable AF for the selected IO pin(s) */
-  stmpe811_IO_DisableAF(DeviceAddr, (uint8_t)IO_Pin);
-}
-
-/**
-  * @brief  Configures the IO pin(s) according to IO mode structure value.
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param  IO_Pin: The output pin to be set or reset. This parameter can be one 
-  *         of the following values:   
-  *   @arg  STMPE811_PIN_x: where x can be from 0 to 7.
-  * @param  IO_Mode: The IO pin mode to configure, could be one of the following values:
-  *   @arg  IO_MODE_INPUT
-  *   @arg  IO_MODE_OUTPUT
-  *   @arg  IO_MODE_IT_RISING_EDGE
-  *   @arg  IO_MODE_IT_FALLING_EDGE
-  *   @arg  IO_MODE_IT_LOW_LEVEL
-  *   @arg  IO_MODE_IT_HIGH_LEVEL            
-  * @retval 0 if no error, IO_Mode if error
-  */
-uint8_t stmpe811_IO_Config(uint16_t DeviceAddr, uint32_t IO_Pin, IO_ModeTypedef IO_Mode)
-{
-  uint8_t error_code = 0;
-
-  /* Configure IO pin according to selected IO mode */
-  switch(IO_Mode)
-  {
-  case IO_MODE_INPUT: /* Input mode */
-    stmpe811_IO_InitPin(DeviceAddr, IO_Pin, STMPE811_DIRECTION_IN);
-    break;
-    
-  case IO_MODE_OUTPUT: /* Output mode */
-    stmpe811_IO_InitPin(DeviceAddr, IO_Pin, STMPE811_DIRECTION_OUT);
-    break;
-  
-  case IO_MODE_IT_RISING_EDGE: /* Interrupt rising edge mode */
-    stmpe811_IO_EnableIT(DeviceAddr);
-    stmpe811_IO_EnablePinIT(DeviceAddr, IO_Pin);
-    stmpe811_IO_InitPin(DeviceAddr, IO_Pin, STMPE811_DIRECTION_IN); 
-    stmpe811_SetITType(DeviceAddr, STMPE811_TYPE_EDGE);      
-    stmpe811_IO_SetEdgeMode(DeviceAddr, IO_Pin, STMPE811_EDGE_RISING); 
-    break;
-  
-  case IO_MODE_IT_FALLING_EDGE: /* Interrupt falling edge mode */
-    stmpe811_IO_EnableIT(DeviceAddr);
-    stmpe811_IO_EnablePinIT(DeviceAddr, IO_Pin);
-    stmpe811_IO_InitPin(DeviceAddr, IO_Pin, STMPE811_DIRECTION_IN); 
-    stmpe811_SetITType(DeviceAddr, STMPE811_TYPE_EDGE);    
-    stmpe811_IO_SetEdgeMode(DeviceAddr, IO_Pin, STMPE811_EDGE_FALLING); 
-    break;
-  
-  case IO_MODE_IT_LOW_LEVEL: /* Low level interrupt mode */
-    stmpe811_IO_EnableIT(DeviceAddr);
-    stmpe811_IO_EnablePinIT(DeviceAddr, IO_Pin);
-    stmpe811_IO_InitPin(DeviceAddr, IO_Pin, STMPE811_DIRECTION_IN); 
-    stmpe811_SetITType(DeviceAddr, STMPE811_TYPE_LEVEL);
-    stmpe811_SetITPolarity(DeviceAddr, STMPE811_POLARITY_LOW);      
-    break;
-    
-  case IO_MODE_IT_HIGH_LEVEL: /* High level interrupt mode */
-    stmpe811_IO_EnableIT(DeviceAddr);
-    stmpe811_IO_EnablePinIT(DeviceAddr, IO_Pin);
-    stmpe811_IO_InitPin(DeviceAddr, IO_Pin, STMPE811_DIRECTION_IN); 
-    stmpe811_SetITType(DeviceAddr, STMPE811_TYPE_LEVEL);
-    stmpe811_SetITPolarity(DeviceAddr, STMPE811_POLARITY_HIGH);  
-    break;    
-
-  default:
-    error_code = (uint8_t) IO_Mode;
-    break;
-  } 
-  return error_code;
-}
-
-/**
-  * @brief  Initialize the selected IO pin direction.
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @param  IO_Pin: The IO pin to be configured. This parameter could be any 
-  *         combination of the following values:
-  *   @arg  STMPE811_PIN_x: Where x can be from 0 to 7.   
-  * @param  Direction: could be STMPE811_DIRECTION_IN or STMPE811_DIRECTION_OUT.      
-  * @retval None
-  */
-void stmpe811_IO_InitPin(uint16_t DeviceAddr, uint32_t IO_Pin, uint8_t Direction)
-{
-  uint8_t tmp = 0;   
-  
-  /* Get all the Pins direction */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_IO_DIR);
-  
-  /* Set the selected pin direction */
-  if (Direction != STMPE811_DIRECTION_IN)
-  {
-    tmp |= (uint8_t)IO_Pin;
-  }  
-  else 
-  {
-    tmp &= ~(uint8_t)IO_Pin;
-  }
-  
-  /* Write the register new value */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_DIR, tmp);   
-}
-
-/**
-  * @brief  Disable the AF for the selected IO pin(s).
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param  IO_Pin: The IO pin to be configured. This parameter could be any 
-  *         combination of the following values:
-  *   @arg  STMPE811_PIN_x: Where x can be from 0 to 7.        
-  * @retval None
-  */
-void stmpe811_IO_DisableAF(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the current state of the IO_AF register */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_IO_AF);
-
-  /* Enable the selected pins alternate function */
-  tmp |= (uint8_t)IO_Pin;
-
-  /* Write back the new value in IO AF register */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_AF, tmp);
-  
-}
-
-/**
-  * @brief  Enable the AF for the selected IO pin(s).
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param  IO_Pin: The IO pin to be configured. This parameter could be any 
-  *         combination of the following values:
-  *   @arg  STMPE811_PIN_x: Where x can be from 0 to 7.       
-  * @retval None
-  */
-void stmpe811_IO_EnableAF(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the current register value */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_IO_AF);
-
-  /* Enable the selected pins alternate function */   
-  tmp &= ~(uint8_t)IO_Pin;   
-  
-  /* Write back the new register value */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_AF, tmp); 
-}
-
-/**
-  * @brief  Configure the Edge for which a transition is detectable for the
-  *         selected pin.
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @param  IO_Pin: The IO pin to be configured. This parameter could be any 
-  *         combination of the following values:
-  *   @arg  STMPE811_PIN_x: Where x can be from 0 to 7.  
-  * @param  Edge: The edge which will be detected. This parameter can be one or
-  *         a combination of following values: STMPE811_EDGE_FALLING and STMPE811_EDGE_RISING .
-  * @retval None
-  */
-void stmpe811_IO_SetEdgeMode(uint16_t DeviceAddr, uint32_t IO_Pin, uint8_t Edge)
-{
-  uint8_t tmp1 = 0, tmp2 = 0;   
-  
-  /* Get the current registers values */
-  tmp1 = IOE_Read(DeviceAddr, STMPE811_REG_IO_FE);
-  tmp2 = IOE_Read(DeviceAddr, STMPE811_REG_IO_RE);
-
-  /* Disable the Falling Edge */
-  tmp1 &= ~(uint8_t)IO_Pin;
-  
-  /* Disable the Falling Edge */
-  tmp2 &= ~(uint8_t)IO_Pin;
-
-  /* Enable the Falling edge if selected */
-  if (Edge & STMPE811_EDGE_FALLING)
-  {
-    tmp1 |= (uint8_t)IO_Pin;
-  }
-
-  /* Enable the Rising edge if selected */
-  if (Edge & STMPE811_EDGE_RISING)
-  {
-    tmp2 |= (uint8_t)IO_Pin;
-  }
-
-  /* Write back the new registers values */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_FE, tmp1);
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_RE, tmp2);
-}
-
-/**
-  * @brief  Write a new IO pin state.
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param IO_Pin: The output pin to be set or reset. This parameter can be one 
-  *        of the following values:
-  *   @arg  STMPE811_PIN_x: where x can be from 0 to 7. 
-  * @param PinState: The new IO pin state.
-  * @retval None
-  */
-void stmpe811_IO_WritePin(uint16_t DeviceAddr, uint32_t IO_Pin, uint8_t PinState)
-{
-  /* Apply the bit value to the selected pin */
-  if (PinState != 0)
-  {
-    /* Set the register */
-    IOE_Write(DeviceAddr, STMPE811_REG_IO_SET_PIN, (uint8_t)IO_Pin);
-  }
-  else
-  {
-    /* Set the register */
-    IOE_Write(DeviceAddr, STMPE811_REG_IO_CLR_PIN, (uint8_t)IO_Pin);
-  } 
-}
-
-/**
-  * @brief  Return the state of the selected IO pin(s).
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @param IO_Pin: The output pin to be set or reset. This parameter can be one 
-  *        of the following values:
-  *   @arg  STMPE811_PIN_x: where x can be from 0 to 7. 
-  * @retval IO pin(s) state.
-  */
-uint32_t stmpe811_IO_ReadPin(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  return((uint32_t)(IOE_Read(DeviceAddr, STMPE811_REG_IO_MP_STA) & (uint8_t)IO_Pin));
-}
-
-/**
-  * @brief  Enable the global IO interrupt source.
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @retval None
-  */
-void stmpe811_IO_EnableIT(uint16_t DeviceAddr)
-{ 
-  IOE_ITConfig();
-  
-  /* Enable global IO IT source */
-  stmpe811_EnableITSource(DeviceAddr, STMPE811_GIT_IO);
-  
-  /* Enable global interrupt */
-  stmpe811_EnableGlobalIT(DeviceAddr); 
-}
-
-/**
-  * @brief  Disable the global IO interrupt source.
-  * @param  DeviceAddr: Device address on communication Bus.   
-  * @retval None
-  */
-void stmpe811_IO_DisableIT(uint16_t DeviceAddr)
-{
-  /* Disable the global interrupt */
-  stmpe811_DisableGlobalIT(DeviceAddr);
-  
-  /* Disable global IO IT source */
-  stmpe811_DisableITSource(DeviceAddr, STMPE811_GIT_IO);    
-}
-
-/**
-  * @brief  Enable interrupt mode for the selected IO pin(s).
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @param  IO_Pin: The IO interrupt to be enabled. This parameter could be any 
-  *         combination of the following values:
-  *   @arg  STMPE811_PIN_x: where x can be from 0 to 7.
-  * @retval None
-  */
-void stmpe811_IO_EnablePinIT(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the IO interrupt state */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_IO_INT_EN);
-  
-  /* Set the interrupts to be enabled */    
-  tmp |= (uint8_t)IO_Pin;
-  
-  /* Write the register new value */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_INT_EN, tmp);  
-}
-
-/**
-  * @brief  Disable interrupt mode for the selected IO pin(s).
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @param  IO_Pin: The IO interrupt to be disabled. This parameter could be any 
-  *         combination of the following values:
-  *   @arg  STMPE811_PIN_x: where x can be from 0 to 7.
-  * @retval None
-  */
-void stmpe811_IO_DisablePinIT(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  uint8_t tmp = 0;
-  
-  /* Get the IO interrupt state */
-  tmp = IOE_Read(DeviceAddr, STMPE811_REG_IO_INT_EN);
-  
-  /* Set the interrupts to be Disabled */    
-  tmp &= ~(uint8_t)IO_Pin;
-  
-  /* Write the register new value */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_INT_EN, tmp);   
-}
-
-/**
-  * @brief  Check the status of the selected IO interrupt pending bit
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @param  IO_Pin: The IO interrupt to be checked could be:
-  *   @arg  STMPE811_PIN_x Where x can be from 0 to 7.             
-  * @retval Status of the checked IO pin(s).
-  */
-uint32_t stmpe811_IO_ITStatus(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  /* Get the Interrupt status */
-  return(IOE_Read(DeviceAddr, STMPE811_REG_IO_INT_STA) & (uint8_t)IO_Pin); 
-}
-
-/**
-  * @brief  Clear the selected IO interrupt pending bit(s).
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @param  IO_Pin: the IO interrupt to be cleared, could be:
-  *   @arg  STMPE811_PIN_x: Where x can be from 0 to 7.            
-  * @retval None
-  */
-void stmpe811_IO_ClearIT(uint16_t DeviceAddr, uint32_t IO_Pin)
-{
-  /* Clear the global IO IT pending bit */
-  stmpe811_ClearGlobalIT(DeviceAddr, STMPE811_GIT_IO);
-  
-  /* Clear the IO IT pending bit(s) */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_INT_STA, (uint8_t)IO_Pin);  
-  
-  /* Clear the Edge detection pending bit*/
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_ED, (uint8_t)IO_Pin);
-  
-  /* Clear the Rising edge pending bit */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_RE, (uint8_t)IO_Pin);
-  
-  /* Clear the Falling edge pending bit */
-  IOE_Write(DeviceAddr, STMPE811_REG_IO_FE, (uint8_t)IO_Pin); 
-}
-
-/**
-  * @brief  Configures the touch Screen Controller (Single point detection)
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @retval None.
-  */
-void stmpe811_TS_Start(uint16_t DeviceAddr)
-{
-  uint8_t mode;
-  
-  /* Get the current register value */
-  mode = IOE_Read(DeviceAddr, STMPE811_REG_SYS_CTRL2);
-  
-  /* Set the Functionalities to be Enabled */    
-  mode &= ~(STMPE811_IO_FCT);  
-  
-  /* Write the new register value */  
-  IOE_Write(DeviceAddr, STMPE811_REG_SYS_CTRL2, mode); 
-
-  /* Select TSC pins in TSC alternate mode */  
-  stmpe811_IO_EnableAF(DeviceAddr, STMPE811_TOUCH_IO_ALL);
-  
-  /* Set the Functionalities to be Enabled */    
-  mode &= ~(STMPE811_TS_FCT | STMPE811_ADC_FCT);  
-  
-  /* Set the new register value */  
-  IOE_Write(DeviceAddr, STMPE811_REG_SYS_CTRL2, mode); 
-  
-  /* Select Sample Time, bit number and ADC Reference */
-  IOE_Write(DeviceAddr, STMPE811_REG_ADC_CTRL1, 0x49);
-  
-  /* Wait for 2 ms */
-  IOE_Delay(2); 
-  
-  /* Select the ADC clock speed: 3.25 MHz */
-  IOE_Write(DeviceAddr, STMPE811_REG_ADC_CTRL2, 0x01);
-  
-  /* Select 2 nF filter capacitor */
-  /* Configuration: 
-     - Touch average control    : 4 samples
-     - Touch delay time         : 500 uS
-     - Panel driver setting time: 500 uS 
-  */
-  IOE_Write(DeviceAddr, STMPE811_REG_TSC_CFG, 0x9A); 
-  
-  /* Configure the Touch FIFO threshold: single point reading */
-  IOE_Write(DeviceAddr, STMPE811_REG_FIFO_TH, 0x01);
-  
-  /* Clear the FIFO memory content. */
-  IOE_Write(DeviceAddr, STMPE811_REG_FIFO_STA, 0x01);
-  
-  /* Put the FIFO back into operation mode  */
-  IOE_Write(DeviceAddr, STMPE811_REG_FIFO_STA, 0x00);
-  
-  /* Set the range and accuracy pf the pressure measurement (Z) : 
-     - Fractional part :7 
-     - Whole part      :1 
-  */
-  IOE_Write(DeviceAddr, STMPE811_REG_TSC_FRACT_XYZ, 0x01);
-  
-  /* Set the driving capability (limit) of the device for TSC pins: 50mA */
-  IOE_Write(DeviceAddr, STMPE811_REG_TSC_I_DRIVE, 0x01);
-  
-  /* Touch screen control configuration (enable TSC):
-     - No window tracking index
-     - XYZ acquisition mode
-   */
-  IOE_Write(DeviceAddr, STMPE811_REG_TSC_CTRL, 0x01);
-  
-  /*  Clear all the status pending bits if any */
-  IOE_Write(DeviceAddr, STMPE811_REG_INT_STA, 0xFF);
-
-  /* Wait for 2 ms delay */
-  IOE_Delay(2); 
-}
-
-/**
-  * @brief  Return if there is touch detected or not.
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @retval Touch detected state.
-  */
-uint8_t stmpe811_TS_DetectTouch(uint16_t DeviceAddr)
-{
-  uint8_t state;
-  uint8_t ret = 0;
-  
-  state = ((IOE_Read(DeviceAddr, STMPE811_REG_TSC_CTRL) & (uint8_t)STMPE811_TS_CTRL_STATUS) == (uint8_t)0x80);
-  
-  if(state > 0)
-  {
-    if(IOE_Read(DeviceAddr, STMPE811_REG_FIFO_SIZE) > 0)
-    {
-      ret = 1;
-    }
-  }
-  else
-  {
-    /* Reset FIFO */
-    IOE_Write(DeviceAddr, STMPE811_REG_FIFO_STA, 0x01);
-    /* Enable the FIFO again */
-    IOE_Write(DeviceAddr, STMPE811_REG_FIFO_STA, 0x00);
-  }
-  
-  return ret;
-}
-
-/**
-  * @brief  Get the touch screen X and Y positions values
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @param  X: Pointer to X position value
-  * @param  Y: Pointer to Y position value   
-  * @retval None.
-  */
-void stmpe811_TS_GetXY(uint16_t DeviceAddr, uint16_t *X, uint16_t *Y)
-{
-  uint8_t  dataXYZ[4];
-  uint32_t uldataXYZ;
-  
-  IOE_ReadMultiple(DeviceAddr, STMPE811_REG_TSC_DATA_NON_INC, dataXYZ, sizeof(dataXYZ)) ;
-  
-  /* Calculate positions values */
-  uldataXYZ = (dataXYZ[0] << 24)|(dataXYZ[1] << 16)|(dataXYZ[2] << 8)|(dataXYZ[3] << 0);     
-  *X = (uldataXYZ >> 20) & 0x00000FFF;     
-  *Y = (uldataXYZ >>  8) & 0x00000FFF;     
-  
-  /* Reset FIFO */
-  IOE_Write(DeviceAddr, STMPE811_REG_FIFO_STA, 0x01);
-  /* Enable the FIFO again */
-  IOE_Write(DeviceAddr, STMPE811_REG_FIFO_STA, 0x00);
-}
-
-/**
-  * @brief  Configure the selected source to generate a global interrupt or not
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @retval None
-  */
-void stmpe811_TS_EnableIT(uint16_t DeviceAddr)
-{
-  IOE_ITConfig();
-  
-  /* Enable global TS IT source */
-  stmpe811_EnableITSource(DeviceAddr, STMPE811_TS_IT); 
-  
-  /* Enable global interrupt */
-  stmpe811_EnableGlobalIT(DeviceAddr);
-}
-
-/**
-  * @brief  Configure the selected source to generate a global interrupt or not
-  * @param  DeviceAddr: Device address on communication Bus.    
-  * @retval None
-  */
-void stmpe811_TS_DisableIT(uint16_t DeviceAddr)
-{
-  /* Disable global interrupt */
-  stmpe811_DisableGlobalIT(DeviceAddr);
-  
-  /* Disable global TS IT source */
-  stmpe811_DisableITSource(DeviceAddr, STMPE811_TS_IT); 
-}
-
-/**
-  * @brief  Configure the selected source to generate a global interrupt or not
-  * @param  DeviceAddr: Device address on communication Bus.    
-  * @retval TS interrupts status
-  */
-uint8_t stmpe811_TS_ITStatus(uint16_t DeviceAddr)
-{
-  /* Return TS interrupts status */
-  return(stmpe811_ReadGITStatus(DeviceAddr, STMPE811_TS_IT));
-}
-
-/**
-  * @brief  Configure the selected source to generate a global interrupt or not
-  * @param  DeviceAddr: Device address on communication Bus.  
-  * @retval None
-  */
-void stmpe811_TS_ClearIT(uint16_t DeviceAddr)
-{
-  /* Clear the global TS IT source */
-  stmpe811_ClearGlobalIT(DeviceAddr, STMPE811_TS_IT);
-}
-
-/**
-  * @brief  Check if the device instance of the selected address is already registered
-  *         and return its index  
-  * @param  DeviceAddr: Device address on communication Bus.
-  * @retval Index of the device instance if registered, 0xFF if not.
-  */
-static uint8_t stmpe811_GetInstance(uint16_t DeviceAddr)
-{
-  uint8_t idx = 0;
-  
-  /* Check all the registered instances */
-  for(idx = 0; idx < STMPE811_MAX_INSTANCE ; idx ++)
-  {
-    if(stmpe811[idx] == DeviceAddr)
-    {
-      return idx; 
-    }
-  }
-  
-  return 0xFF;
-}
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 291
app/Drivers/BSP/Components/stmpe811/stmpe811.h

@@ -1,291 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stmpe811.h
-  * @author  MCD Application Team
-  * @version V2.0.0
-  * @date    15-December-2014
-  * @brief   This file contains all the functions prototypes for the
-  *          stmpe811.c IO expander driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STMPE811_H
-#define __STMPE811_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif   
-   
-/* Includes ------------------------------------------------------------------*/
-#include "../Common/ts.h"
-#include "../Common/io.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup Components
-  * @{
-  */
-    
-/** @defgroup STMPE811
-  * @{
-  */    
-
-/** @defgroup STMPE811_Exported_Types
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-   
-/** @defgroup STMPE811_Exported_Constants
-  * @{
-  */ 
-
-/* Chip IDs */   
-#define STMPE811_ID                     0x0811
-    
-/* Identification registers & System Control */ 
-#define STMPE811_REG_CHP_ID_LSB         0x00
-#define STMPE811_REG_CHP_ID_MSB         0x01
-#define STMPE811_REG_ID_VER             0x02
-
-/* Global interrupt Enable bit */ 
-#define STMPE811_GIT_EN                 0x01   
-
-/* IO expander functionalities */        
-#define STMPE811_ADC_FCT                0x01
-#define STMPE811_TS_FCT                 0x02
-#define STMPE811_IO_FCT                 0x04
-#define STMPE811_TEMPSENS_FCT           0x08
-
-/* Global Interrupts definitions */ 
-#define STMPE811_GIT_IO                 0x80  /* IO interrupt                   */
-#define STMPE811_GIT_ADC                0x40  /* ADC interrupt                  */
-#define STMPE811_GIT_TEMP               0x20  /* Not implemented                */
-#define STMPE811_GIT_FE                 0x10  /* FIFO empty interrupt           */
-#define STMPE811_GIT_FF                 0x08  /* FIFO full interrupt            */
-#define STMPE811_GIT_FOV                0x04  /* FIFO overflowed interrupt      */
-#define STMPE811_GIT_FTH                0x02  /* FIFO above threshold interrupt */
-#define STMPE811_GIT_TOUCH              0x01  /* Touch is detected interrupt    */      
-#define STMPE811_ALL_GIT                0x1F  /* All global interrupts          */
-#define STMPE811_TS_IT                  (STMPE811_GIT_TOUCH | STMPE811_GIT_FTH |  STMPE811_GIT_FOV | STMPE811_GIT_FF | STMPE811_GIT_FE) /* Touch screen interrupts */
-    
-/* General Control Registers */ 
-#define STMPE811_REG_SYS_CTRL1          0x03
-#define STMPE811_REG_SYS_CTRL2          0x04
-#define STMPE811_REG_SPI_CFG            0x08 
-
-/* Interrupt system Registers */ 
-#define STMPE811_REG_INT_CTRL           0x09
-#define STMPE811_REG_INT_EN             0x0A
-#define STMPE811_REG_INT_STA            0x0B
-#define STMPE811_REG_IO_INT_EN          0x0C
-#define STMPE811_REG_IO_INT_STA         0x0D
-
-/* IO Registers */ 
-#define STMPE811_REG_IO_SET_PIN         0x10
-#define STMPE811_REG_IO_CLR_PIN         0x11
-#define STMPE811_REG_IO_MP_STA          0x12
-#define STMPE811_REG_IO_DIR             0x13
-#define STMPE811_REG_IO_ED              0x14
-#define STMPE811_REG_IO_RE              0x15
-#define STMPE811_REG_IO_FE              0x16
-#define STMPE811_REG_IO_AF              0x17
-
-/* ADC Registers */ 
-#define STMPE811_REG_ADC_INT_EN         0x0E
-#define STMPE811_REG_ADC_INT_STA        0x0F
-#define STMPE811_REG_ADC_CTRL1          0x20
-#define STMPE811_REG_ADC_CTRL2          0x21
-#define STMPE811_REG_ADC_CAPT           0x22
-#define STMPE811_REG_ADC_DATA_CH0       0x30 
-#define STMPE811_REG_ADC_DATA_CH1       0x32 
-#define STMPE811_REG_ADC_DATA_CH2       0x34 
-#define STMPE811_REG_ADC_DATA_CH3       0x36 
-#define STMPE811_REG_ADC_DATA_CH4       0x38 
-#define STMPE811_REG_ADC_DATA_CH5       0x3A 
-#define STMPE811_REG_ADC_DATA_CH6       0x3B 
-#define STMPE811_REG_ADC_DATA_CH7       0x3C 
-
-/* Touch Screen Registers */ 
-#define STMPE811_REG_TSC_CTRL           0x40
-#define STMPE811_REG_TSC_CFG            0x41
-#define STMPE811_REG_WDM_TR_X           0x42 
-#define STMPE811_REG_WDM_TR_Y           0x44
-#define STMPE811_REG_WDM_BL_X           0x46
-#define STMPE811_REG_WDM_BL_Y           0x48
-#define STMPE811_REG_FIFO_TH            0x4A
-#define STMPE811_REG_FIFO_STA           0x4B
-#define STMPE811_REG_FIFO_SIZE          0x4C
-#define STMPE811_REG_TSC_DATA_X         0x4D 
-#define STMPE811_REG_TSC_DATA_Y         0x4F
-#define STMPE811_REG_TSC_DATA_Z         0x51
-#define STMPE811_REG_TSC_DATA_XYZ       0x52 
-#define STMPE811_REG_TSC_FRACT_XYZ      0x56
-#define STMPE811_REG_TSC_DATA_INC       0x57
-#define STMPE811_REG_TSC_DATA_NON_INC   0xD7
-#define STMPE811_REG_TSC_I_DRIVE        0x58
-#define STMPE811_REG_TSC_SHIELD         0x59
-
-/* Touch Screen Pins definition */ 
-#define STMPE811_TOUCH_YD               STMPE811_PIN_7 
-#define STMPE811_TOUCH_XD               STMPE811_PIN_6
-#define STMPE811_TOUCH_YU               STMPE811_PIN_5
-#define STMPE811_TOUCH_XU               STMPE811_PIN_4
-#define STMPE811_TOUCH_IO_ALL           (uint32_t)(STMPE811_TOUCH_YD | STMPE811_TOUCH_XD | STMPE811_TOUCH_YU | STMPE811_TOUCH_XU)
-
-/* IO Pins definition */ 
-#define STMPE811_PIN_0                  0x01
-#define STMPE811_PIN_1                  0x02
-#define STMPE811_PIN_2                  0x04
-#define STMPE811_PIN_3                  0x08
-#define STMPE811_PIN_4                  0x10
-#define STMPE811_PIN_5                  0x20
-#define STMPE811_PIN_6                  0x40
-#define STMPE811_PIN_7                  0x80
-#define STMPE811_PIN_ALL                0xFF
-
-/* IO Pins directions */ 
-#define STMPE811_DIRECTION_IN           0x00
-#define STMPE811_DIRECTION_OUT          0x01
-
-/* IO IT types */   
-#define STMPE811_TYPE_LEVEL             0x00
-#define STMPE811_TYPE_EDGE              0x02
-
-/* IO IT polarity */   
-#define STMPE811_POLARITY_LOW           0x00
-#define STMPE811_POLARITY_HIGH          0x04
-
-/* IO Pin IT edge modes */
-#define STMPE811_EDGE_FALLING           0x01
-#define STMPE811_EDGE_RISING            0x02
-
-/* TS registers masks */
-#define STMPE811_TS_CTRL_ENABLE         0x01  
-#define STMPE811_TS_CTRL_STATUS         0x80
-/**
-  * @}
-  */ 
-   
-/** @defgroup STMPE811_Exported_Macros
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-   
-/** @defgroup STMPE811_Exported_Functions
-  * @{
-  */
-
-/** 
-  * @brief STMPE811 Control functions
-  */
-void     stmpe811_Init(uint16_t DeviceAddr);
-void     stmpe811_Reset(uint16_t DeviceAddr);
-uint16_t stmpe811_ReadID(uint16_t DeviceAddr);
-void     stmpe811_EnableGlobalIT(uint16_t DeviceAddr);
-void     stmpe811_DisableGlobalIT(uint16_t DeviceAddr);
-void     stmpe811_EnableITSource(uint16_t DeviceAddr, uint8_t Source);
-void     stmpe811_DisableITSource(uint16_t DeviceAddr, uint8_t Source);
-void     stmpe811_SetITPolarity(uint16_t DeviceAddr, uint8_t Polarity);
-void     stmpe811_SetITType(uint16_t DeviceAddr, uint8_t Type);
-uint8_t  stmpe811_GlobalITStatus(uint16_t DeviceAddr, uint8_t Source);
-uint8_t  stmpe811_ReadGITStatus(uint16_t DeviceAddr, uint8_t Source);
-void     stmpe811_ClearGlobalIT(uint16_t DeviceAddr, uint8_t Source);
-
-/** 
-  * @brief STMPE811 IO functionalities functions
-  */
-void     stmpe811_IO_Start(uint16_t DeviceAddr, uint32_t IO_Pin);
-uint8_t  stmpe811_IO_Config(uint16_t DeviceAddr, uint32_t IO_Pin, IO_ModeTypedef IO_Mode);
-void     stmpe811_IO_InitPin(uint16_t DeviceAddr, uint32_t IO_Pin, uint8_t Direction);
-void     stmpe811_IO_EnableAF(uint16_t DeviceAddr, uint32_t IO_Pin);
-void     stmpe811_IO_DisableAF(uint16_t DeviceAddr, uint32_t IO_Pin);
-void     stmpe811_IO_SetEdgeMode(uint16_t DeviceAddr, uint32_t IO_Pin, uint8_t Edge);
-void     stmpe811_IO_WritePin(uint16_t DeviceAddr, uint32_t IO_Pin, uint8_t PinState);
-uint32_t stmpe811_IO_ReadPin(uint16_t DeviceAddr, uint32_t IO_Pin);
-void     stmpe811_IO_EnableIT(uint16_t DeviceAddr);
-void     stmpe811_IO_DisableIT(uint16_t DeviceAddr);
-void     stmpe811_IO_EnablePinIT(uint16_t DeviceAddr, uint32_t IO_Pin);
-void     stmpe811_IO_DisablePinIT(uint16_t DeviceAddr, uint32_t IO_Pin);
-uint32_t stmpe811_IO_ITStatus(uint16_t DeviceAddr, uint32_t IO_Pin);
-void     stmpe811_IO_ClearIT(uint16_t DeviceAddr, uint32_t IO_Pin);
-
-/** 
-  * @brief STMPE811 Touch screen functionalities functions
-  */
-void     stmpe811_TS_Start(uint16_t DeviceAddr);
-uint8_t  stmpe811_TS_DetectTouch(uint16_t DeviceAddr);
-void     stmpe811_TS_GetXY(uint16_t DeviceAddr, uint16_t *X, uint16_t *Y);
-void     stmpe811_TS_EnableIT(uint16_t DeviceAddr);
-void     stmpe811_TS_DisableIT(uint16_t DeviceAddr);
-uint8_t  stmpe811_TS_ITStatus (uint16_t DeviceAddr);
-void     stmpe811_TS_ClearIT (uint16_t DeviceAddr);
-
-void     IOE_Init(void);
-void     IOE_ITConfig (void);
-void     IOE_Delay(uint32_t delay);
-void     IOE_Write(uint8_t addr, uint8_t reg, uint8_t value);
-uint8_t  IOE_Read(uint8_t addr, uint8_t reg);
-uint16_t IOE_ReadMultiple(uint8_t addr, uint8_t reg, uint8_t *buffer, uint16_t length);
-
-/* Touch screen driver structure */
-extern TS_DrvTypeDef stmpe811_ts_drv;
-
-/* IO driver structure */
-extern IO_DrvTypeDef stmpe811_io_drv;
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* __STMPE811_H */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 1862
app/Drivers/BSP/STM322xG_EVAL/Release_Notes.html


BIN
app/Drivers/BSP/STM322xG_EVAL/STM322xG_EVAL_BSP_User_Manual.chm


File diff suppressed because it is too large
+ 0 - 1163
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval.c


+ 0 - 366
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval.h

@@ -1,366 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval.h
-  * @author  MCD Application Team
-  * @brief   This file contains definitions for STM322xG_EVAL's LEDs, 
-  *          push-buttons and COM ports hardware resources.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-  
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_H
-#define __STM322xG_EVAL_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f2xx_hal.h"
-   
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-      
-/** @addtogroup STM322xG_EVAL_LOW_LEVEL
-  * @{
-  */ 
-
-/** @defgroup STM322xG_EVAL_LOW_LEVEL_Exported_Types STM322xG EVAL LOW LEVEL Exported Types
-  * @{
-  */
-typedef enum 
-{
-  LED1 = 0,
-  LED2 = 1,
-  LED3 = 2,
-  LED4 = 3
-}Led_TypeDef;
-
-typedef enum 
-{  
-  BUTTON_WAKEUP = 0,
-  BUTTON_TAMPER = 1,
-  BUTTON_KEY    = 2,
-  BUTTON_RIGHT  = 3,
-  BUTTON_LEFT   = 4,
-  BUTTON_UP     = 5,
-  BUTTON_DOWN   = 6,
-  BUTTON_SEL    = 7
-}Button_TypeDef;
-
-typedef enum 
-{  
-  BUTTON_MODE_GPIO = 0,
-  BUTTON_MODE_EXTI = 1
-}ButtonMode_TypeDef;
-  
-typedef enum 
-{  
-  JOY_MODE_GPIO = 0,
-  JOY_MODE_EXTI = 1
-}JOYMode_TypeDef;
-
-typedef enum 
-{ 
-  JOY_NONE  = 0,
-  JOY_SEL   = 1,
-  JOY_DOWN  = 2,
-  JOY_LEFT  = 3,
-  JOY_RIGHT = 4,
-  JOY_UP    = 5
-}JOYState_TypeDef;
-
-typedef enum 
-{
-  COM1 = 0,
-  COM2 = 1
-}COM_TypeDef;
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_LOW_LEVEL_Exported_Constants STM322xG EVAL LOW LEVEL Exported Constants
-  * @{
-  */ 
-
-/** 
-  * @brief  Define for STM322xG_EVAL board  
-  */ 
-#if !defined (USE_STM322xG_EVAL)
- #define USE_STM322xG_EVAL
-#endif
-
-/** @addtogroup STM322xG_EVAL_LOW_LEVEL_LED STM322xG EVAL LOW LEVEL LED
-  * @{
-  */
-#define LEDn                             4
-
-#define LED1_PIN                         GPIO_PIN_6
-#define LED1_GPIO_PORT                   GPIOG
-#define LED1_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOG_CLK_ENABLE()
-#define LED1_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOG_CLK_DISABLE()
-  
-#define LED2_PIN                         GPIO_PIN_8
-#define LED2_GPIO_PORT                   GPIOG
-#define LED2_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOG_CLK_ENABLE()
-#define LED2_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOG_CLK_DISABLE()
-  
-#define LED3_PIN                         GPIO_PIN_9
-#define LED3_GPIO_PORT                   GPIOI
-#define LED3_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOI_CLK_ENABLE()
-#define LED3_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOI_CLK_DISABLE()
-  
-#define LED4_PIN                         GPIO_PIN_7
-#define LED4_GPIO_PORT                   GPIOC
-#define LED4_GPIO_CLK                    RCC_AHB1Periph_GPIOC
-#define LED4_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOC_CLK_ENABLE()
-#define LED4_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOC_CLK_DISABLE()
-
-#define LEDx_GPIO_CLK_ENABLE(__INDEX__)  do{if((__INDEX__) == 0) LED1_GPIO_CLK_ENABLE(); else \
-                                            if((__INDEX__) == 1) LED2_GPIO_CLK_ENABLE(); else \
-                                            if((__INDEX__) == 2) LED3_GPIO_CLK_ENABLE(); else \
-                                            if((__INDEX__) == 3) LED4_GPIO_CLK_ENABLE(); \
-                                            }while(0)
-#define LEDx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) LED1_GPIO_CLK_DISABLE(); else \
-                                            if((__INDEX__) == 1) LED2_GPIO_CLK_DISABLE(); else \
-                                            if((__INDEX__) == 2) LED3_GPIO_CLK_DISABLE(); else \
-                                            if((__INDEX__) == 3) LED4_GPIO_CLK_DISABLE(); \
-                                            }while(0)
-/**
-  * @}
-  */ 
-  
-/** @addtogroup STM322xG_EVAL_LOW_LEVEL_BUTTON STM322xG EVAL LOW LEVEL BUTTON
-  * @{
-  */  
-/* Joystick pins are connected to IO Expander (accessible through I2C1 interface) */
-#define BUTTONn                              3
-
-/**
-  * @brief Wakeup push-button
-  */
-#define WAKEUP_BUTTON_PIN                    GPIO_PIN_0
-#define WAKEUP_BUTTON_GPIO_PORT              GPIOA
-#define WAKEUP_BUTTON_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOA_CLK_ENABLE()
-#define WAKEUP_BUTTON_GPIO_CLK_DISABLE()     __HAL_RCC_GPIOA_CLK_DISABLE()
-#define WAKEUP_BUTTON_EXTI_IRQn              EXTI0_IRQn
-
-/**
-  * @brief Tamper push-button
-  */
-#define TAMPER_BUTTON_PIN                    GPIO_PIN_13
-#define TAMPER_BUTTON_GPIO_PORT              GPIOC
-#define TAMPER_BUTTON_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOC_CLK_ENABLE()
-#define TAMPER_BUTTON_GPIO_CLK_DISABLE()     __HAL_RCC_GPIOC_CLK_DISABLE()
-#define TAMPER_BUTTON_EXTI_IRQn              EXTI15_10_IRQn
-
-/**
-  * @brief Key push-button
-  */
-#define KEY_BUTTON_PIN                       GPIO_PIN_15
-#define KEY_BUTTON_GPIO_PORT                 GPIOG
-#define KEY_BUTTON_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOG_CLK_ENABLE()
-#define KEY_BUTTON_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOG_CLK_DISABLE()
-#define KEY_BUTTON_EXTI_IRQn                 EXTI15_10_IRQn
-
-#define BUTTONx_GPIO_CLK_ENABLE(__INDEX__)  do{if((__INDEX__) == 0) WAKEUP_BUTTON_GPIO_CLK_ENABLE(); else \
-                                               if((__INDEX__) == 1) TAMPER_BUTTON_GPIO_CLK_ENABLE(); else \
-                                               if((__INDEX__) == 2) KEY_BUTTON_GPIO_CLK_ENABLE(); \
-                                               }while(0)
-#define BUTTONx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) WAKEUP_BUTTON_GPIO_CLK_DISABLE(); else \
-                                               if((__INDEX__) == 1) TAMPER_BUTTON_GPIO_CLK_DISABLE(); else \
-                                               if ((__INDEX__) == 2) KEY_BUTTON_GPIO_CLK_DISABLE(); \
-                                               }while(0)
-/**
-  * @}
-  */ 
-
-/** @addtogroup STM322xG_EVAL_LOW_LEVEL_COM STM322xG EVAL LOW LEVEL COM
-  * @{
-  */
-#define COMn                                 1
-
-/**
- * @brief Definition for COM port1, connected to USART3
- */ 
-#define EVAL_COM1                            USART3
-#define EVAL_COM1_CLK_ENABLE()               __HAL_RCC_USART3_CLK_ENABLE()
-#define EVAL_COM1_CLK_DISABLE()              __HAL_RCC_USART3_CLK_DISABLE()
-
-#define EVAL_COM1_TX_PIN                     GPIO_PIN_10
-#define EVAL_COM1_TX_GPIO_PORT               GPIOC
-#define EVAL_COM1_TX_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOC_CLK_ENABLE()
-#define EVAL_COM1_TX_GPIO_CLK_DISABLE()      __HAL_RCC_GPIOC_CLK_DISABLE()
-#define EVAL_COM1_TX_AF                      GPIO_AF7_USART3
-
-#define EVAL_COM1_RX_PIN                     GPIO_PIN_11
-#define EVAL_COM1_RX_GPIO_PORT               GPIOC
-#define EVAL_COM1_RX_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOC_CLK_ENABLE()
-#define EVAL_COM1_RX_GPIO_CLK_DISABLE()      __HAL_RCC_GPIOC_CLK_DISABLE()
-#define EVAL_COM1_RX_AF                      GPIO_AF7_USART3
-
-#define EVAL_COM1_IRQn                       USART3_IRQn
-
-#define EVAL_COMx_CLK_ENABLE(__INDEX__)              do{if((__INDEX__) == 0) EVAL_COM1_CLK_ENABLE(); \
-                                                       }while(0)
-#define EVAL_COMx_CLK_DISABLE(__INDEX__)             do{if((__INDEX__) == 0) EVAL_COM1_CLK_DISABLE(); \
-                                                       }while(0)
-
-#define EVAL_COMx_TX_GPIO_CLK_ENABLE(__INDEX__)      do{if((__INDEX__) == 0) EVAL_COM1_TX_GPIO_CLK_ENABLE(); \
-                                                       }while(0)
-#define EVAL_COMx_TX_GPIO_CLK_DISABLE(__INDEX__)     do{if((__INDEX__) == 0) EVAL_COM1_TX_GPIO_CLK_DISABLE(); \
-                                                       }while(0)
-
-#define EVAL_COMx_RX_GPIO_CLK_ENABLE(__INDEX__)      do{if((__INDEX__) == 0) EVAL_COM1_RX_GPIO_CLK_ENABLE(); \
-                                                       }while(0)
-#define EVAL_COMx_RX_GPIO_CLK_DISABLE(__INDEX__)     do{if((__INDEX__) == 0) EVAL_COM1_RX_GPIO_CLK_DISABLE(); \
-                                                       }while(0)
-
-/**
- * @brief Definition for Potentiometer, connected to ADC3
- */ 
-#define ADCx                            ADC3
-#define ADCx_CLK_ENABLE()               __HAL_RCC_ADC3_CLK_ENABLE()
-#define ADCx_CHANNEL_GPIO_CLK_ENABLE()  __HAL_RCC_GPIOF_CLK_ENABLE()
-
-#define ADCx_FORCE_RESET()              __HAL_RCC_ADC_FORCE_RESET()
-#define ADCx_RELEASE_RESET()            __HAL_RCC_ADC_RELEASE_RESET()
-
-/* Definition for ADCx Channel Pin */
-#define ADCx_CHANNEL_PIN                GPIO_PIN_9
-#define ADCx_CHANNEL_GPIO_PORT          GPIOF
-
-/* Definition for ADCx's Channel */
-#define ADCx_CHANNEL                    ADC_CHANNEL_7
-#define SAMPLINGTIME                    ADC_SAMPLETIME_3CYCLES
-#define ADCx_POLL_TIMEOUT               10
-
-/**
-  * @brief Joystick Pins definition 
-  */ 
-#define JOY_SEL_PIN                  IO_PIN_7
-#define JOY_DOWN_PIN                 IO_PIN_6
-#define JOY_LEFT_PIN                 IO_PIN_5
-#define JOY_RIGHT_PIN                IO_PIN_4
-#define JOY_UP_PIN                   IO_PIN_3
-#define JOY_NONE_PIN                 JOY_ALL_PINS
-#define JOY_ALL_PINS                 (IO_PIN_3 | IO_PIN_4 | IO_PIN_5 | IO_PIN_6 | IO_PIN_7)
-
-/* Exported constantIO -------------------------------------------------------*/
-/* I2C clock speed configuration (in Hz) 
-   WARNING: 
-   Make sure that this define is not already declared in other files (ie. 
-   stm322xg_eval.h file). It can be used in parallel by other modules. */
-#ifndef BSP_I2C_SPEED
- #define BSP_I2C_SPEED                            100000
-#endif /* BSP_I2C_SPEED */
-
-#define IO_I2C_ADDRESS                        0x88
-#define TS_I2C_ADDRESS                        0x82
-#define CAMERA_I2C_ADDRESS                    0x60
-#define AUDIO_I2C_ADDRESS                     0x94
-/* For M24C64 devices, E0, E1 and E2 pins are all used for device 
-  address selection (no need for additional address lines). According to the 
-  Hardware connection on the board (on STM322xG-EVAL board E0 = E1 = E2 = 0) */
-#define EEPROM_I2C_ADDRESS                    0xA0
-
-/* User can use this section to tailor I2Cx/I2Cx instance used and associated 
-   resources */
-/* Definition for I2Cx clock resources */
-#define EVAL_I2Cx                            I2C1
-#define EVAL_I2Cx_CLK_ENABLE()               __HAL_RCC_I2C1_CLK_ENABLE()
-#define EVAL_DMAx_CLK_ENABLE()               __HAL_RCC_DMA1_CLK_ENABLE()
-#define EVAL_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()  __HAL_RCC_GPIOB_CLK_ENABLE()
-
-#define EVAL_I2Cx_FORCE_RESET()              __HAL_RCC_I2C1_FORCE_RESET()
-#define EVAL_I2Cx_RELEASE_RESET()            __HAL_RCC_I2C1_RELEASE_RESET()
-
-/* Definition for I2Cx Pins */
-#define EVAL_I2Cx_SCL_PIN                    GPIO_PIN_6
-#define EVAL_I2Cx_SCL_SDA_GPIO_PORT          GPIOB
-#define EVAL_I2Cx_SCL_SDA_AF                 GPIO_AF4_I2C1
-#define EVAL_I2Cx_SDA_PIN                    GPIO_PIN_9
-
-/* I2C interrupt requests */                  
-#define EVAL_I2Cx_EV_IRQn                    I2C1_EV_IRQn
-#define EVAL_I2Cx_ER_IRQn                    I2C1_ER_IRQn
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_LOW_LEVEL_Exported_Functions STM322xG EVAL LOW LEVEL Exported Functions
-  * @{
-  */
-uint32_t         BSP_GetVersion(void);  
-void             BSP_LED_Init(Led_TypeDef Led);
-void             BSP_LED_On(Led_TypeDef Led);
-void             BSP_LED_Off(Led_TypeDef Led);
-void             BSP_LED_Toggle(Led_TypeDef Led);
-void             BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode);
-uint32_t         BSP_PB_GetState(Button_TypeDef Button);
-void             BSP_COM_Init(COM_TypeDef COM, UART_HandleTypeDef *huart);
-void             BSP_POTENTIOMETER_Init(void);
-uint32_t         BSP_POTENTIOMETER_GetLevel(void);
-uint8_t          BSP_JOY_Init(JOYMode_TypeDef Joy_Mode);
-JOYState_TypeDef BSP_JOY_GetState(void);
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_H */
- 
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 677
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_audio.c

@@ -1,677 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_audio.c
-  * @author  MCD Application Team
-  * @brief   This file provides the Audio driver for the STM322xG-EVAL evaluation
-  *          board.  
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/*==============================================================================
-                                 User NOTES
-How To use this driver:
------------------------
-   + This driver supports STM32F2xx devices on STM322xG-EVAL Evaluation board.
-   + Call the function BSP_AUDIO_OUT_Init(
-                                    OutputDevice: physical output mode (OUTPUT_DEVICE_SPEAKER, 
-                                                 OUTPUT_DEVICE_HEADPHONE, OUTPUT_DEVICE_AUTO or 
-                                                 OUTPUT_DEVICE_BOTH)
-                                    Volume: initial volume to be set (0 is min (mute), 100 is max (100%)
-                                    AudioFreq: Audio frequency in Hz (8000, 16000, 22500, 32000 ...)
-                                     this parameter is relative to the audio file/stream type.
-                                    )
-      This function configures all the hardware required for the audio application (codec, I2C, I2S, 
-      GPIOs, DMA and interrupt if needed). This function returns 0 if configuration is OK.
-      If the returned value is different from 0 or the function is stuck then the communication with
-      the codec or the IOExpander has failed (try to un-plug the power or reset device in this case).
-      - OUTPUT_DEVICE_SPEAKER: only speaker will be set as output for the audio stream.
-      - OUTPUT_DEVICE_HEADPHONE: only headphones will be set as output for the audio stream.
-      - OUTPUT_DEVICE_AUTO: Selection of output device is made through external switch (implemented 
-         into the audio jack on the evaluation board). When the Headphone is connected it is used
-         as output. When the headphone is disconnected from the audio jack, the output is
-         automatically switched to Speaker.
-      - OUTPUT_DEVICE_BOTH: both Speaker and Headphone are used as outputs for the audio stream
-         at the same time.
-   + Call the function BSP_AUDIO_OUT_Play(
-                                  pBuffer: pointer to the audio data file address
-                                  Size: size of the buffer to be sent in Bytes
-                                 )
-      to start playing (for the first time) from the audio file/stream.
-   + Call the function BSP_AUDIO_OUT_Pause() to pause playing 
-   + Call the function BSP_AUDIO_OUT_Resume() to resume playing.
-       Note. After calling BSP_AUDIO_OUT_Pause() function for pause, only BSP_AUDIO_OUT_Resume() should be called
-          for resume (it is not allowed to call BSP_AUDIO_OUT_Play() in this case).
-       Note. This function should be called only when the audio file is played or paused (not stopped).
-   + For each mode, you may need to implement the relative callback functions into your code.
-      The Callback functions are named AUDIO_OUT_XXX_CallBack() and only their prototypes are declared in 
-      the stm322xg_eval_audio.h file. (refer to the example for more details on the callbacks implementations)
-   + To Stop playing, to modify the volume level or to mute, use the functions
-       BSP_AUDIO_OUT_Stop(), BSP_AUDIO_OUT_SetVolume(), AUDIO_OUT_SetFrequency() BSP_AUDIO_OUT_SetOutputMode and BSP_AUDIO_OUT_SetMute().
-   + The driver API and the callback functions are at the end of the stm322xg_eval_audio.h file.
-
-Driver architecture:
- -------------------
-   + This driver provide the High Audio Layer: consists of the function API exported in the stm322xg_eval_audio.h file
-    (BSP_AUDIO_OUT_Init(), BSP_AUDIO_OUT_Play() ...)
-   + This driver provide also the Media Access Layer (MAL): which consists of functions allowing to access the media containing/
-     providing the audio file/stream. These functions are also included as local functions into
-     the stm322xg_eval_audio_codec.c file (I2Sx_MspInit() and I2Sx_Init())
-
- Known Limitations:
--------------------
-   1- When using the Speaker, if the audio file quality is not high enough, the speaker output
-      may produce high and uncomfortable noise level. To avoid this issue, to use speaker
-      output properly, try to increase audio file sampling rate (typically higher than 48KHz).
-      This operation will lead to larger file size.
-   2- Communication with the audio codec (through I2C) may be corrupted if it is interrupted by some
-      user interrupt routines (in this case, interrupts could be disabled just before the start of 
-      communication then re-enabled when it is over). Note that this communication is only done at
-      the configuration phase (BSP_AUDIO_OUT_Init() or BSP_AUDIO_OUT_Stop()) and when Volume control modification is 
-      performed (BSP_AUDIO_OUT_SetVolume() or AUDIO_OUT_Mute() or BSP_AUDIO_OUT_SetOutputMode()).
-      When the audio data is played, no communication is required with the audio codec.
-   3- Parsing of audio file is not implemented (in order to determine audio file properties: Mono/Stereo, Data size, 
-      File size, Audio Frequency, Audio Data header size ...). The configuration is fixed for the given audio file.
-   4- Supports only Stereo audio streaming. To play mono audio streams, each data should be sent twice 
-      on the I2S or should be duplicated on the source buffer. Or convert the stream in stereo before playing.
-   5- Supports only 16-bits audio data size.
-==============================================================================*/
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval_audio.h"
-#include "stm322xg_eval_io.h" /* IOExpander driver is included in order to allow 
-                                 CS43L22 codec reset pin managment on the evaluation board */
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */ 
-  
-/** @defgroup STM322xG_EVAL_AUDIO STM322xG EVAL AUDIO
-  * @brief This file includes the low layer audio driver available on STM322xG-EVAL 
-  *        evaluation board.
-  * @{
-  */ 
-  
-/** @defgroup STM322xG_EVAL_AUDIO_Private_Defines STM322xG EVAL AUDIO Private Defines
-  * @{
-  */
-/* These PLL parameters are valide when the f(VCO clock) = 1Mhz */
-const uint32_t I2SFreq[8] = {8000, 11025, 16000, 22050, 32000, 44100, 48000, 96000};
-const uint32_t I2SPLLN[8] = {256, 429, 213, 429, 426, 271, 258, 344};
-const uint32_t I2SPLLR[8] = {5, 4, 4, 4, 4, 6, 3, 1};
-/**
-  * @}
-  */ 
-  
-/** @defgroup STM322xG_EVAL_AUDIO_Private_Variables STM322xG EVAL AUDIO Private Variables
-  * @{
-  */
-AUDIO_DrvTypeDef *audio_drv;
-I2S_HandleTypeDef  haudio_i2s;
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_AUDIO_Private_Function_Prototypes STM322xG EVAL AUDIO Private Function Prototypes
-  * @{
-  */
-static void I2Sx_Init(uint32_t AudioFreq);
-static void I2Sx_DeInit(void);
-static void CODEC_Reset(void);
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_AUDIO_Private_Functions STM322xG EVAL AUDIO Private Functions
-  * @{
-  */ 
-
-/**
-  * @brief  Configures the audio peripherals.
-  * @param  OutputDevice: OUTPUT_DEVICE_SPEAKER, OUTPUT_DEVICE_HEADPHONE,
-  *                       OUTPUT_DEVICE_BOTH or OUTPUT_DEVICE_AUTO .
-  * @param  Volume: Initial volume level (from 0 (Mute) to 100 (Max))
-  * @param  AudioFreq: Audio frequency used to play the audio stream.
-  * @note   This function configure also that the I2S PLL input clock.    
-  * @retval 0 if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_Init(uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq)
-{ 
-  uint8_t ret = AUDIO_ERROR;
-  
-  /* Disable I2S */
-  I2Sx_DeInit();
-  
-  /* Configure PLL clock depending on AudioFreq */ 
-  BSP_AUDIO_OUT_ClockConfig(&haudio_i2s, AudioFreq, NULL);
-  
-  /* I2S data transfer preparation:
-  Prepare the Media to be used for the audio transfer from memory to I2S peripheral */
-  haudio_i2s.Instance = AUDIO_I2Sx;
-  if(HAL_I2S_GetState(&haudio_i2s) == HAL_I2S_STATE_RESET)
-  {
-    /* Init the I2S MSP: this __weak function can be redefined by the application*/
-    BSP_AUDIO_OUT_MspInit(&haudio_i2s, NULL);
-  }  
-  /* Configure the I2S peripheral */
-  I2Sx_Init(AudioFreq);
-  
-  /* Reset the Codec Registers */
-  CODEC_Reset();
-  
-  if(((cs43l22_drv.ReadID(AUDIO_I2C_ADDRESS)) & CS43L22_ID_MASK) == CS43L22_ID)
-  {  
-    /* Initialize the audio driver structure */
-    audio_drv = &cs43l22_drv; 
-    ret = AUDIO_OK;
-  }
-  else
-  {
-    ret = AUDIO_ERROR;
-  }
-  
-  if(ret == AUDIO_OK)
-  {
-    audio_drv->Init(AUDIO_I2C_ADDRESS, OutputDevice, Volume, AudioFreq);
-  }
-  
-  return ret;
-}
-
-/**
-  * @brief  De-initialize the audio peripherals.
-  * @retval None
-  */
-void BSP_AUDIO_OUT_DeInit(void)
-{
-  I2Sx_DeInit();
-  /* DeInit the I2S MSP : this __weak function can be rewritten by the application */
-  BSP_AUDIO_OUT_MspDeInit(&haudio_i2s, NULL);
-}
-
-/**
-  * @brief  Starts playing audio stream from a data buffer for a determined size. 
-  * @param  pBuffer: Pointer to the buffer 
-  * @param  Size: Number of audio data BYTES.
-  * @retval AUDIO_OK if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_Play(uint16_t* pBuffer, uint32_t Size)
-{
-  /* Call the audio Codec Play function */
-  if(audio_drv->Play(AUDIO_I2C_ADDRESS, pBuffer, Size) != 0)
-  {
-    return AUDIO_ERROR;
-  }
-  else
-  {
-    /* Update the Media layer and enable it for play */  
-    HAL_I2S_Transmit_DMA(&haudio_i2s, pBuffer, DMA_MAX(Size/AUDIODATA_SIZE));
-    return AUDIO_OK;
-  }
-}
-
-/**
-  * @brief  Sends n-Bytes on the I2S interface.
-  * @param  pData: Pointer to data address 
-  * @param  Size: Number of data to be written.
-  */
-void BSP_AUDIO_OUT_ChangeBuffer(uint16_t *pData, uint16_t Size)
-{
-  HAL_I2S_Transmit_DMA(&haudio_i2s, pData, Size); 
-}
-
-/**
-  * @brief   Pauses the audio file stream. 
-  *          In case of using DMA, the DMA Pause feature is used.
-  * WARNING: When calling BSP_AUDIO_OUT_Pause() function for pause, only
-  *          BSP_AUDIO_OUT_Resume() function should be called for resume (use of BSP_AUDIO_OUT_Play() 
-  *          function for resume could lead to unexpected behavior).
-  * @retval  AUDIO_OK if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_Pause(void)
-{    
-  /* Call the Audio Codec Pause/Resume function */
-  if(audio_drv->Pause(AUDIO_I2C_ADDRESS) != 0)
-  {
-    return AUDIO_ERROR;
-  }
-  else
-  {
-    /* Call the Media layer pause function */
-    HAL_I2S_DMAPause(&haudio_i2s);
-    
-    /* Return AUDIO_OK when all operations are correctly done */
-    return AUDIO_OK;
-  }
-}
-
-/**
-  * @brief   Resumes the audio file stream.  
-  * WARNING: When calling BSP_AUDIO_OUT_Pause() function for pause, only
-  *          BSP_AUDIO_OUT_Resume() function should be called for resume (use of BSP_AUDIO_OUT_Play() 
-  *          function for resume could lead to unexpected behavior).
-  * @retval  AUDIO_OK if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_Resume(void)
-{    
-  /* Call the Audio Codec Pause/Resume function */
-  if(audio_drv->Resume(AUDIO_I2C_ADDRESS) != 0)
-  {
-    return AUDIO_ERROR;
-  }
-  else
-  {
-    /* Call the Media layer pause/resume function */
-    HAL_I2S_DMAResume(&haudio_i2s);
-    
-    /* Return AUDIO_OK when all operations are correctly done */
-    return AUDIO_OK;
-  }
-}
-
-/**
-  * @brief  Stops audio playing and Power down the Audio Codec. 
-  * @param  Option: could be one of the following parameters 
-  *           - CODEC_PDWN_SW: for software power off (by writing registers). 
-  *                            Then no need to reconfigure the Codec after power on.
-  *           - CODEC_PDWN_HW: completely shut down the codec (physically). 
-  *                            Then need to reconfigure the Codec after power on.  
-  * @retval AUDIO_OK if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_Stop(uint32_t Option)
-{
-  /* Call the Media layer stop function */
-  HAL_I2S_DMAStop(&haudio_i2s);
-  
-  /* Call Audio Codec Stop function */
-  if(audio_drv->Stop(AUDIO_I2C_ADDRESS, Option) != 0)
-  {
-    return AUDIO_ERROR;
-  }
-  else
-  {
-    if(Option == CODEC_PDWN_HW)
-    { 
-      /* Wait at least 1ms */
-      HAL_Delay(1);
-      
-      /* Reset the pin */
-      BSP_IO_WritePin(AUDIO_RESET_PIN, RESET);
-    }
-    
-    /* Return AUDIO_OK when all operations are correctly done */
-    return AUDIO_OK;
-  }
-}
-
-/**
-  * @brief  Controls the current audio volume level. 
-  * @param  Volume: Volume level to be set in percentage from 0% to 100% (0 for 
-  *         Mute and 100 for Max volume level).
-  * @retval AUDIO_OK if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_SetVolume(uint8_t Volume)
-{
-  /* Call the codec volume control function with converted volume value */
-  if(audio_drv->SetVolume(AUDIO_I2C_ADDRESS, Volume) != 0)
-  {
-    return AUDIO_ERROR;
-  }
-  else
-  {
-    /* Return AUDIO_OK when all operations are correctly done */
-    return AUDIO_OK;
-  }
-}
-
-/**
-  * @brief  Enables or disables the MUTE mode by software 
-  * @param  Cmd: could be AUDIO_MUTE_ON to mute sound or AUDIO_MUTE_OFF to 
-  *         unmute the codec and restore previous volume level.
-  * @retval AUDIO_OK if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_SetMute(uint32_t Cmd)
-{ 
-  /* Call the Codec Mute function */
-  if(audio_drv->SetMute(AUDIO_I2C_ADDRESS, Cmd) != 0)
-  {
-    return AUDIO_ERROR;
-  }
-  else
-  {
-    /* Return AUDIO_OK when all operations are correctly done */
-    return AUDIO_OK;
-  }
-}
-
-/**
-  * @brief  Switch dynamically (while audio file is played) the output target 
-  *         (speaker or headphone).
-  * @note   This function modifies a global variable of the audio codec driver: OutputDev.
-  * @param  Output: specifies the audio output target: OUTPUT_DEVICE_SPEAKER,
-  *         OUTPUT_DEVICE_HEADPHONE, OUTPUT_DEVICE_BOTH or OUTPUT_DEVICE_AUTO 
-  * @retval AUDIO_OK if correct communication, else wrong communication
-  */
-uint8_t BSP_AUDIO_OUT_SetOutputMode(uint8_t Output)
-{
-  /* Call the Codec output Device function */
-  if(audio_drv->SetOutputMode(AUDIO_I2C_ADDRESS, Output) != 0)
-  {
-    return AUDIO_ERROR;
-  }
-  else
-  {
-    /* Return AUDIO_OK when all operations are correctly done */
-    return AUDIO_OK;
-  }
-}
-
-/**
-  * @brief  Updates the audio frequency.
-  * @param  AudioFreq: Audio frequency used to play the audio stream.
-  * @retval AUDIO_OK if correct communication, else wrong communication
-  */
-void BSP_AUDIO_OUT_SetFrequency(uint32_t AudioFreq)
-{
-  /* Configure PLL clock depending on AudioFreq */ 
-  BSP_AUDIO_OUT_ClockConfig(&haudio_i2s, AudioFreq, NULL);
-  
-  /* Update the I2S audio frequency configuration */
-  I2Sx_Init(AudioFreq);
-}
-
-/**
-  * @brief  Clock Config.
-  * @param  hi2s: might be required to set audio peripheral predivider if any.
-  * @param  AudioFreq: Audio frequency used to play the audio stream.
-  * @param  Params   
-  * @note   This API is called by BSP_AUDIO_OUT_Init() and BSP_AUDIO_OUT_SetFrequency()
-  *         Being __weak it can be overwritten by the application     
-  * @retval None
-  */
-__weak void BSP_AUDIO_OUT_ClockConfig(I2S_HandleTypeDef *hi2s, uint32_t AudioFreq, void *Params)
-{
-  RCC_PeriphCLKInitTypeDef RCC_ExCLKInitStruct;
-  uint8_t index = 0, freqindex = 0xFF;
-  
-  for(index = 0; index < 8; index++)
-  {
-    if(I2SFreq[index] == AudioFreq)
-    {
-      freqindex = index;
-    }
-  }
-  HAL_RCCEx_GetPeriphCLKConfig(&RCC_ExCLKInitStruct); 
-  if(freqindex != 0xFF)
-  {
-    /* I2S clock config 
-    PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) × (PLLI2SN/PLLM)
-    I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */
-    RCC_ExCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
-    RCC_ExCLKInitStruct.PLLI2S.PLLI2SN = I2SPLLN[freqindex];
-    RCC_ExCLKInitStruct.PLLI2S.PLLI2SR = I2SPLLR[freqindex];
-    HAL_RCCEx_PeriphCLKConfig(&RCC_ExCLKInitStruct);     
-  } 
-  else /* Default PLL I2S configuration */
-  {
-    /* I2S clock config 
-    PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) × (PLLI2SN/PLLM)
-    I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */
-    RCC_ExCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
-    RCC_ExCLKInitStruct.PLLI2S.PLLI2SN = 258;
-    RCC_ExCLKInitStruct.PLLI2S.PLLI2SR = 3;
-    HAL_RCCEx_PeriphCLKConfig(&RCC_ExCLKInitStruct); 
-  }
-}
-
-/**
-  * @brief  Initializes BSP_AUDIO_OUT MSP.
-  * @param  hi2s: I2S handle
-  * @param  Params  
-  */
-__weak void BSP_AUDIO_OUT_MspInit(I2S_HandleTypeDef *hi2s, void *Params)
-{
-  static DMA_HandleTypeDef hdma_i2sTx;
-  GPIO_InitTypeDef  GPIO_InitStruct;  
-  
-  /* Enable I2S clock */
-  AUDIO_I2Sx_CLK_ENABLE();
-  
-  /* Enable SCK, SD and WS GPIO clock */
-  AUDIO_I2Sx_SCK_SD_WS_CLK_ENABLE();
-  
-  /* CODEC_I2S pins configuration: WS, SCK and SD pins */
-  GPIO_InitStruct.Pin = AUDIO_I2Sx_WS_PIN | AUDIO_I2Sx_SCK_PIN | AUDIO_I2Sx_SD_PIN;
-  GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
-  GPIO_InitStruct.Alternate = AUDIO_I2Sx_SCK_SD_WS_AF;
-  HAL_GPIO_Init(AUDIO_I2Sx_SCK_SD_WS_GPIO_PORT, &GPIO_InitStruct);
-
-  /* Enable MCK GPIO clock */
-  AUDIO_I2Sx_MCK_CLK_ENABLE();
-  
-  /* CODEC_I2S pins configuration: MCK pin */
-  GPIO_InitStruct.Pin = AUDIO_I2Sx_MCK_PIN;
-  HAL_GPIO_Init(AUDIO_I2Sx_MCK_GPIO_PORT, &GPIO_InitStruct); 
-  
-  /* Enable the DMA clock */
-  AUDIO_I2Sx_DMAx_CLK_ENABLE();
-    
-  if(hi2s->Instance == AUDIO_I2Sx)
-  {
-    /* Configure the hdma_i2sTx handle parameters */   
-    hdma_i2sTx.Init.Channel             = AUDIO_I2Sx_DMAx_CHANNEL;
-    hdma_i2sTx.Init.Direction           = DMA_MEMORY_TO_PERIPH;
-    hdma_i2sTx.Init.PeriphInc           = DMA_PINC_DISABLE;
-    hdma_i2sTx.Init.MemInc              = DMA_MINC_ENABLE;
-    hdma_i2sTx.Init.PeriphDataAlignment = AUDIO_I2Sx_DMAx_PERIPH_DATA_SIZE;
-    hdma_i2sTx.Init.MemDataAlignment    = AUDIO_I2Sx_DMAx_MEM_DATA_SIZE;
-    hdma_i2sTx.Init.Mode                = DMA_NORMAL;
-    hdma_i2sTx.Init.Priority            = DMA_PRIORITY_HIGH;
-    hdma_i2sTx.Init.FIFOMode            = DMA_FIFOMODE_ENABLE;         
-    hdma_i2sTx.Init.FIFOThreshold       = DMA_FIFO_THRESHOLD_FULL;
-    hdma_i2sTx.Init.MemBurst            = DMA_MBURST_SINGLE;
-    hdma_i2sTx.Init.PeriphBurst         = DMA_PBURST_SINGLE; 
-    
-    hdma_i2sTx.Instance = AUDIO_I2Sx_DMAx_STREAM;
-    
-    /* Associate the DMA handle */
-    __HAL_LINKDMA(hi2s, hdmatx, hdma_i2sTx);
-    
-    /* Deinitialize the Stream for new transfer */
-    HAL_DMA_DeInit(&hdma_i2sTx);
-    
-    /* Configure the DMA Stream */
-    HAL_DMA_Init(&hdma_i2sTx);      
-  }
-  
-  /* I2S DMA IRQ Channel configuration */
-  HAL_NVIC_SetPriority(AUDIO_I2Sx_DMAx_IRQ, AUDIO_IRQ_PREPRIO, 0);
-  HAL_NVIC_EnableIRQ(AUDIO_I2Sx_DMAx_IRQ); 
-}
-
-/**
-  * @brief  De-Initializes BSP_AUDIO_OUT MSP.
-  * @param  hi2s: I2S handle
-  * @param  Params
-  */
-__weak void BSP_AUDIO_OUT_MspDeInit(I2S_HandleTypeDef *hi2s, void *Params)
-{
-  GPIO_InitTypeDef  GPIO_InitStruct;  
-  
-  /* Disable I2S clock */
-  AUDIO_I2Sx_CLK_DISABLE();
-  
-  /* CODEC_I2S pins configuration: WS, SCK and SD pins */
-  GPIO_InitStruct.Pin = AUDIO_I2Sx_WS_PIN | AUDIO_I2Sx_SCK_PIN | AUDIO_I2Sx_SD_PIN;
-  HAL_GPIO_DeInit(AUDIO_I2Sx_SCK_SD_WS_GPIO_PORT, GPIO_InitStruct.Pin);
- 
-  /* CODEC_I2S pins configuration: MCK pin */
-  GPIO_InitStruct.Pin = AUDIO_I2Sx_MCK_PIN;
-  HAL_GPIO_DeInit(AUDIO_I2Sx_MCK_GPIO_PORT, GPIO_InitStruct.Pin); 
-}
-
-/**
-  * @brief Tx Transfer completed callbacks
-  * @param hi2s: I2S handle
-  */
-void HAL_I2S_TxCpltCallback(I2S_HandleTypeDef *hi2s)
-{
-  /* Manage the remaining file size and new address offset: This function 
-     should be coded by user (its prototype is already declared in stm322xg_eval_audio.h) */  
-  BSP_AUDIO_OUT_TransferComplete_CallBack();       
-}
-
-/**
-  * @brief Tx Transfer Half completed callbacks
-  * @param hi2s: I2S handle
-  */
-void HAL_I2S_TxHalfCpltCallback(I2S_HandleTypeDef *hi2s)
-{
-  /* Manage the remaining file size and new address offset: This function 
-     should be coded by user (its prototype is already declared in stm322xg_eval_audio.h) */  
-  BSP_AUDIO_OUT_HalfTransfer_CallBack();   
-}
-
-/**
-  * @brief  I2S error callbacks.
-  * @param  hi2s: I2S handle
-  */
-void HAL_I2S_ErrorCallback(I2S_HandleTypeDef *hi2s) 
-{
-  BSP_AUDIO_OUT_Error_CallBack();
-}
-
-/**
-  * @brief  Manages the DMA full Transfer complete event.
-  */
-__weak void BSP_AUDIO_OUT_TransferComplete_CallBack(void)
-{
-}
-
-/**
-  * @brief  Manages the DMA Half Transfer complete event.
-  */
-__weak void BSP_AUDIO_OUT_HalfTransfer_CallBack(void)
-{ 
-}
-
-/**
-  * @brief  Manages the DMA FIFO error event.
-  */
-__weak void BSP_AUDIO_OUT_Error_CallBack(void)
-{
-}
-
-/*******************************************************************************
-                            Static Functions
-*******************************************************************************/
-/**
-  * @brief  Initializes the Audio Codec audio interface (I2S).
-  * @param  AudioFreq: Audio frequency to be configured for the I2S peripheral. 
-  */
-static void I2Sx_Init(uint32_t AudioFreq)
-{
-  /* Initialize the haudio_i2s Instance parameter */
-  haudio_i2s.Instance = AUDIO_I2Sx;
-
- /* Disable I2S block */
-  __HAL_I2S_DISABLE(&haudio_i2s);  
-
-  haudio_i2s.Init.Mode = I2S_MODE_MASTER_TX;
-  haudio_i2s.Init.Standard = I2S_STANDARD;
-  haudio_i2s.Init.DataFormat = I2S_DATAFORMAT_16B;
-  haudio_i2s.Init.AudioFreq = AudioFreq;
-  haudio_i2s.Init.CPOL = I2S_CPOL_LOW;
-  haudio_i2s.Init.MCLKOutput = I2S_MCLKOUTPUT_ENABLE;
-
-  /* Init the I2S */
-  HAL_I2S_Init(&haudio_i2s); 
-}
-
-/**
-  * @brief  Deinitialize the Audio Codec audio interface (I2S).
-  */
-static void I2Sx_DeInit(void)
-{
-  /* Initialize the haudio_i2s Instance parameter */
-  haudio_i2s.Instance = AUDIO_I2Sx;
-
-  /* Disable I2S peripheral */
-  __HAL_I2S_DISABLE(&haudio_i2s);
-
-  HAL_I2S_DeInit(&haudio_i2s);
-}
-
-/**
-  * @brief  Resets the audio codec. It restores the default configuration of the 
-  *         codec (this function shall be called before initializing the codec).
-  * @note   This function calls an external driver function: The IO Expander driver.
-  */
-static void CODEC_Reset(void)
-{
-  /* Configure the IO Expander (to use the Codec Reset pin mapped on the IOExpander) */
-  BSP_IO_Init();
-  
-  BSP_IO_ConfigPin(AUDIO_RESET_PIN, IO_MODE_OUTPUT);
-  
-  /* Power Down the codec */
-  BSP_IO_WritePin(AUDIO_RESET_PIN, RESET);
-
-  /* Wait for a delay to insure registers erasing */
-  HAL_Delay(CODEC_RESET_DELAY); 
-  
-  /* Power on the codec */
-  BSP_IO_WritePin(AUDIO_RESET_PIN, SET);
-   
-  /* Wait for a delay to insure registers erasing */
-  HAL_Delay(CODEC_RESET_DELAY); 
-}
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 177
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_audio.h

@@ -1,177 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_audio.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm322xg_eval_audio.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_AUDIO_H
-#define __STM322xG_EVAL_AUDIO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include "../Components/cs43l22/cs43l22.h"
-#include "stm322xg_eval.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @addtogroup STM322xG_EVAL_AUDIO
-  * @{
-  */
-
-/** @defgroup STM322xG_EVAL_AUDIO_Exported_Constants STM322xG EVAL AUDIO Exported Constants
-  * @{
-  */
-/* Audio Reset Pin definition */
-#define AUDIO_RESET_PIN                     IO_PIN_2
-    
-/* I2S peripheral configuration defines */
-#define AUDIO_I2Sx                          SPI2
-#define AUDIO_I2Sx_CLK_ENABLE()             __HAL_RCC_SPI2_CLK_ENABLE()
-#define AUDIO_I2Sx_CLK_DISABLE()            __HAL_RCC_SPI2_CLK_DISABLE()   
-#define AUDIO_I2Sx_SCK_SD_WS_AF             GPIO_AF5_SPI2
-#define AUDIO_I2Sx_SCK_SD_WS_CLK_ENABLE()   __HAL_RCC_GPIOI_CLK_ENABLE()
-#define AUDIO_I2Sx_MCK_CLK_ENABLE()         __HAL_RCC_GPIOC_CLK_ENABLE()
-#define AUDIO_I2Sx_WS_PIN                   GPIO_PIN_0
-#define AUDIO_I2Sx_SCK_PIN                  GPIO_PIN_1
-#define AUDIO_I2Sx_SD_PIN                   GPIO_PIN_3
-#define AUDIO_I2Sx_MCK_PIN                  GPIO_PIN_6
-#define AUDIO_I2Sx_SCK_SD_WS_GPIO_PORT      GPIOI
-#define AUDIO_I2Sx_MCK_GPIO_PORT            GPIOC
-
-/* I2S DMA Stream definitions */
-#define AUDIO_I2Sx_DMAx_CLK_ENABLE()        __HAL_RCC_DMA1_CLK_ENABLE()
-#define AUDIO_I2Sx_DMAx_STREAM              DMA1_Stream4
-#define AUDIO_I2Sx_DMAx_CHANNEL             DMA_CHANNEL_0
-#define AUDIO_I2Sx_DMAx_IRQ                 DMA1_Stream4_IRQn
-#define AUDIO_I2Sx_DMAx_PERIPH_DATA_SIZE    DMA_PDATAALIGN_HALFWORD
-#define AUDIO_I2Sx_DMAx_MEM_DATA_SIZE       DMA_MDATAALIGN_HALFWORD
-#define DMA_MAX_SZE                         0xFFFF
-   
-#define AUDIO_I2Sx_DMAx_IRQHandler          DMA1_Stream4_IRQHandler
-
-/*------------------------------------------------------------------------------
-             CONFIGURATION: Audio Driver Configuration parameters
-------------------------------------------------------------------------------*/
-/* Select the interrupt preemption priority for the DMA interrupt */
-#define AUDIO_IRQ_PREPRIO           0x0F   /* Select the preemption priority level(0 is the highest) */
-
-#define AUDIODATA_SIZE              2      /* 16-bits audio data size */
-
-/* Audio status definition */     
-#define AUDIO_OK         0x00
-#define AUDIO_ERROR      0x01
-#define AUDIO_TIMEOUT    0x02
-
-/*------------------------------------------------------------------------------
-                    OPTIONAL Configuration defines parameters
-------------------------------------------------------------------------------*/
-/* Delay for the Codec to be correctly reset */
-#define CODEC_RESET_DELAY               5
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_AUDIO_Exported_Macros STM322xG EVAL AUDIO Exported Macros
-  * @{
-  */
-#define DMA_MAX(x)           (((x) <= DMA_MAX_SZE)? (x):DMA_MAX_SZE)
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_AUDIO_Exported_Functions STM322xG EVAL AUDIO Exported Functions
-  * @{
-  */
-uint8_t BSP_AUDIO_OUT_Init(uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq);
-void    BSP_AUDIO_OUT_DeInit(void);    
-uint8_t BSP_AUDIO_OUT_Play(uint16_t *pBuffer, uint32_t Size);
-void    BSP_AUDIO_OUT_ChangeBuffer(uint16_t *pData, uint16_t Size);
-uint8_t BSP_AUDIO_OUT_Pause(void);
-uint8_t BSP_AUDIO_OUT_Resume(void);
-uint8_t BSP_AUDIO_OUT_Stop(uint32_t Option);
-uint8_t BSP_AUDIO_OUT_SetVolume(uint8_t Volume);
-void    BSP_AUDIO_OUT_SetFrequency(uint32_t AudioFreq);
-uint8_t BSP_AUDIO_OUT_SetMute(uint32_t Cmd);
-uint8_t BSP_AUDIO_OUT_SetOutputMode(uint8_t Output);
-
-/* User Callbacks: user has to implement these functions in his code if they are needed. */
-/* This function is called when the requested data has been completely transferred.*/
-void    BSP_AUDIO_OUT_TransferComplete_CallBack(void);
-
-/* This function is called when half of the requested buffer has been transferred. */
-void    BSP_AUDIO_OUT_HalfTransfer_CallBack(void);
-
-/* This function is called when an Interrupt due to transfer error on or peripheral
-   error occurs. */
-void    BSP_AUDIO_OUT_Error_CallBack(void);
-
-/* These function can be modified in case the current settings (e.g. DMA stream)
-   need to be changed for specific application needs */
-void  BSP_AUDIO_OUT_ClockConfig(I2S_HandleTypeDef *hi2s, uint32_t AudioFreq, void *Params);
-void  BSP_AUDIO_OUT_MspInit(I2S_HandleTypeDef *hi2s, void *Params);
-void  BSP_AUDIO_OUT_MspDeInit(I2S_HandleTypeDef *hi2s, void *Params);
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_AUDIO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 481
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_camera.c

@@ -1,481 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_camera.c
-  * @author  MCD Application Team
-  * @brief   This file includes the driver for Camera module mounted on
-  *          STM322xG-EVAL evaluation board(MB786).
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* File Info: ------------------------------------------------------------------
-                                   User NOTES
-1. How to use this driver:
---------------------------
-   - This driver is used to drive the Camera.
-   - The OV2640 component driver MUST be included with this driver.          
-
-2. Driver description:
----------------------
-  + Initialization steps:
-     o Initialize the Camera using the BSP_CAMERA_Init() function.
-     o Start the Camera capture or snapshot using CAMERA_Start() function.
-     o Suspend, resume or stop the Camera capture using the following functions:
-      - BSP_CAMERA_Suspend()
-      - BSP_CAMERA_Resume()
-      - BSP_CAMERA_Stop()
-
-  + Options
-     o Increase or decrease on the fly the brightness and/or contrast
-       using the following function:
-       - BSP_CAMERA_ContrastBrightnessConfig
-     o Add a special effect on the fly using the following functions:
-       - BSP_CAMERA_BlackWhiteConfig()
-       - BSP_CAMERA_ColorEffectConfig()  
-      
-------------------------------------------------------------------------------*/
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval_camera.h"   
-    
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @defgroup STM322xG_EVAL_CAMERA STM322xG EVAL CAMERA
-  * @{
-  */ 
-
-/** @defgroup STM322xG_EVAL_CAMERA_Private_Variables STM322xG EVAL CAMERA Private Variables
-  * @{
-  */ 
-DCMI_HandleTypeDef hdcmi_eval;
-CAMERA_DrvTypeDef  *camera_drv;
-uint32_t current_resolution;
-/**
-  * @}
-  */ 
-  
-/** @defgroup STM322xG_EVAL_CAMERA_Private_FunctionPrototypes STM322xG EVAL CAMERA Private FunctionPrototypes
-  * @{
-  */
-static uint32_t GetSize(uint32_t resolution);
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_CAMERA_Private_Functions STM322xG EVAL CAMERA Private Functions
-  * @{
-  */ 
-
-/**
-  * @brief  Initializes the Camera.
-  * @param  Resolution: Camera resolution
-  * @retval Camera status
-  */
-uint8_t BSP_CAMERA_Init(uint32_t Resolution)
-{ 
-  DCMI_HandleTypeDef *phdcmi;
-  uint8_t ret = CAMERA_ERROR;
-  
-  /* Get the DCMI handle structure */
-  phdcmi = &hdcmi_eval;
-  
-  /*** Configures the DCMI to interface with the Camera module ***/
-  /* DCMI configuration */
-  phdcmi->Init.CaptureRate      = DCMI_CR_ALL_FRAME;  
-  phdcmi->Init.HSPolarity       = DCMI_HSPOLARITY_LOW;
-  phdcmi->Init.SynchroMode      = DCMI_SYNCHRO_HARDWARE;
-  phdcmi->Init.VSPolarity       = DCMI_VSPOLARITY_LOW;
-  phdcmi->Init.ExtendedDataMode = DCMI_EXTEND_DATA_8B;
-  phdcmi->Init.PCKPolarity      = DCMI_PCKPOLARITY_RISING;
-  phdcmi->Instance              = DCMI;
-  
-  /* DCMI Initialization */
-  BSP_CAMERA_MspInit();
-  HAL_DCMI_Init(phdcmi);    
-  
-  if(ov2640_drv.ReadID(CAMERA_I2C_ADDRESS) == OV2640_ID)
-  {
-    /* Initialize the Camera driver structure */
-    camera_drv = &ov2640_drv;     
-    
-    /* Camera Init */   
-    camera_drv->Init(CAMERA_I2C_ADDRESS, Resolution);
-    
-    /* Return CAMERA_OK status */
-    ret = CAMERA_OK;
-  }
-  
-  current_resolution = Resolution;
-  
-  return ret;
-}
-
-/**
-  * @brief  Starts the Camera capture in continuous mode.
-  * @param  buff: pointer to the Camera output buffer
-  */
-void BSP_CAMERA_ContinuousStart(uint8_t *buff)
-{   
-  /* Start the Camera capture */
-  HAL_DCMI_Start_DMA(&hdcmi_eval, DCMI_MODE_CONTINUOUS, (uint32_t)buff, GetSize(current_resolution));  
-}
-
-/**
-  * @brief  Starts the Camera capture in snapshot mode.
-  * @param  buff: pointer to the Camera output buffer
-  */
-void BSP_CAMERA_SnapshotStart(uint8_t *buff)
-{   
-  /* Start the Camera capture */
-  HAL_DCMI_Start_DMA(&hdcmi_eval, DCMI_MODE_SNAPSHOT, (uint32_t)buff, GetSize(current_resolution));  
-}
-
-/**
-  * @brief  Suspends the Camera capture. 
-  */
-void BSP_CAMERA_Suspend(void) 
-{
-  /* Suspend the Camera Capture */
-  HAL_DCMI_Suspend(&hdcmi_eval);
-}
-
-/**
-  * @brief  Resumes the Camera capture. 
-  */
-void BSP_CAMERA_Resume(void) 
-{
-  /* Start the Camera Capture */
-  HAL_DCMI_Resume(&hdcmi_eval);
-}
-
-/**
-  * @brief  Stops the Camera capture. 
-  * @retval Camera status
-  */
-uint8_t BSP_CAMERA_Stop(void) 
-{
-  DCMI_HandleTypeDef *phdcmi;
-  
-  uint8_t ret = CAMERA_ERROR;
-  
-  /* Get the DCMI handle structure */
-  phdcmi = &hdcmi_eval;  
-  
-  if(HAL_DCMI_Stop(phdcmi) == HAL_OK)
-  {
-     ret = CAMERA_OK;
-  }
-  
-  return ret;
-}
-
-/**
-  * @brief  Configures the Camera contrast and brightness.
-  * @param  contrast_level: Contrast level
-  *          This parameter can be one of the following values:
-  *            @arg  CAMERA_CONTRAST_LEVEL4: for contrast +2
-  *            @arg  CAMERA_CONTRAST_LEVEL3: for contrast +1
-  *            @arg  CAMERA_CONTRAST_LEVEL2: for contrast  0
-  *            @arg  CAMERA_CONTRAST_LEVEL1: for contrast -1
-  *            @arg  CAMERA_CONTRAST_LEVEL0: for contrast -2
-  * @param  brightness_level: Brightness level
-  *          This parameter can be one of the following values:
-  *            @arg  CAMERA_BRIGHTNESS_LEVEL4: for brightness +2
-  *            @arg  CAMERA_BRIGHTNESS_LEVEL3: for brightness +1
-  *            @arg  CAMERA_BRIGHTNESS_LEVEL2: for brightness  0
-  *            @arg  CAMERA_BRIGHTNESS_LEVEL1: for brightness -1
-  *            @arg  CAMERA_BRIGHTNESS_LEVEL0: for brightness -2
-  */
-void BSP_CAMERA_ContrastBrightnessConfig(uint32_t contrast_level, uint32_t brightness_level)
-{
-  if(camera_drv->Config != NULL)
-  {
-    camera_drv->Config(CAMERA_I2C_ADDRESS, CAMERA_CONTRAST_BRIGHTNESS, contrast_level, brightness_level);
-  }  
-}
-
-/**
-  * @brief  Configures the Camera white balance.
-  * @param  Mode: black_white mode
-  *          This parameter can be one of the following values:
-  *            @arg  CAMERA_BLACK_WHITE_BW
-  *            @arg  CAMERA_BLACK_WHITE_NEGATIVE
-  *            @arg  CAMERA_BLACK_WHITE_BW_NEGATIVE
-  *            @arg  CAMERA_BLACK_WHITE_NORMAL       
-  */
-void BSP_CAMERA_BlackWhiteConfig(uint32_t Mode)
-{
-  if(camera_drv->Config != NULL)
-  {
-    camera_drv->Config(CAMERA_I2C_ADDRESS, CAMERA_BLACK_WHITE, Mode, 0);
-  }  
-}
-
-/**
-  * @brief  Configures the Camera color effect.
-  * @param  Effect: Color effect
-  *          This parameter can be one of the following values:
-  *            @arg  CAMERA_COLOR_EFFECT_ANTIQUE               
-  *            @arg  CAMERA_COLOR_EFFECT_BLUE        
-  *            @arg  CAMERA_COLOR_EFFECT_GREEN    
-  *            @arg  CAMERA_COLOR_EFFECT_RED        
-  */
-void BSP_CAMERA_ColorEffectConfig(uint32_t Effect)
-{
-  if(camera_drv->Config != NULL)
-  {
-    camera_drv->Config(CAMERA_I2C_ADDRESS, CAMERA_COLOR_EFFECT, Effect, 0);
-  }  
-}
-
-/**
-  * @brief  Handles DCMI interrupt request.
-  */
-void BSP_CAMERA_IRQHandler(void) 
-{
-  HAL_DCMI_IRQHandler(&hdcmi_eval);
-}
-
-/**
-  * @brief  Handles DMA interrupt request.
-  */
-void BSP_CAMERA_DMA_IRQHandler(void) 
-{
-  HAL_DMA_IRQHandler(hdcmi_eval.DMA_Handle);
-}
-
-/**
-  * @brief  Get the capture size.
-  * @param  resolution: the current resolution.
-  * @retval cpature size
-  */
-static uint32_t GetSize(uint32_t resolution)
-{ 
-  uint32_t size = 0;
-  
-  /* Get capture size */
-  switch (resolution)
-  {
-  case CAMERA_R160x120:
-    {
-      size =  0x2580;
-    }
-    break;    
-  case CAMERA_R320x240:
-    {
-      size =  0x9600;
-    }
-    break;
-  default:
-    {
-      break;
-    }
-  }
-  
-  return size;
-}
-
-/**
-  * @brief  Initializes the DCMI MSP.
-  */
-__weak void BSP_CAMERA_MspInit(void)
-{  
-  static DMA_HandleTypeDef hdma;
-  GPIO_InitTypeDef GPIO_Init_Structure;  
-  DCMI_HandleTypeDef *hdcmi = &hdcmi_eval;
-  
-  /*** Enable peripherals and GPIO clocks ***/
-  /* Enable DCMI clock */
-  __HAL_RCC_DCMI_CLK_ENABLE();
-
-  /* Enable DMA2 clock */
-  __HAL_RCC_DMA2_CLK_ENABLE(); 
-  
-  /* Enable GPIO clocks */
-  __HAL_RCC_GPIOA_CLK_ENABLE();
-  __HAL_RCC_GPIOH_CLK_ENABLE();
-  __HAL_RCC_GPIOI_CLK_ENABLE();
-  
-  /*** Configure the GPIO ***/
-  /* Configure DCMI GPIO as alternate function */
-  GPIO_Init_Structure.Pin       = GPIO_PIN_6; 
-  GPIO_Init_Structure.Mode      = GPIO_MODE_AF_PP;
-  GPIO_Init_Structure.Pull      = GPIO_PULLUP;
-  GPIO_Init_Structure.Speed     = GPIO_SPEED_HIGH;
-  GPIO_Init_Structure.Alternate = GPIO_AF13_DCMI;  
-  HAL_GPIO_Init(GPIOA, &GPIO_Init_Structure);
-
-  GPIO_Init_Structure.Pin       = GPIO_PIN_8  | GPIO_PIN_9  | GPIO_PIN_10 |\
-                                  GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_14; 
-  GPIO_Init_Structure.Mode      = GPIO_MODE_AF_PP;
-  GPIO_Init_Structure.Pull      = GPIO_PULLUP;
-  GPIO_Init_Structure.Speed     = GPIO_SPEED_HIGH;
-  GPIO_Init_Structure.Alternate = GPIO_AF13_DCMI;   
-  HAL_GPIO_Init(GPIOH, &GPIO_Init_Structure);
-
-  GPIO_Init_Structure.Pin       = GPIO_PIN_4 | GPIO_PIN_5  | GPIO_PIN_6  |\
-                                  GPIO_PIN_7; 
-  GPIO_Init_Structure.Mode      = GPIO_MODE_AF_PP;
-  GPIO_Init_Structure.Pull      = GPIO_PULLUP;
-  GPIO_Init_Structure.Speed     = GPIO_SPEED_HIGH;
-  GPIO_Init_Structure.Alternate = GPIO_AF13_DCMI;   
-  HAL_GPIO_Init(GPIOI, &GPIO_Init_Structure);  
-  
-  /*** Configure the DMA streams ***/
-  /* Configure the DMA handler for Transmission process */
-  hdma.Init.Channel             = DMA_CHANNEL_1;
-  hdma.Init.Direction           = DMA_PERIPH_TO_MEMORY;
-  hdma.Init.PeriphInc           = DMA_PINC_DISABLE;
-  hdma.Init.MemInc              = DMA_MINC_ENABLE;
-  hdma.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
-  hdma.Init.MemDataAlignment    = DMA_MDATAALIGN_WORD;
-  hdma.Init.Mode                = DMA_CIRCULAR;
-  hdma.Init.Priority            = DMA_PRIORITY_HIGH;
-  hdma.Init.FIFOMode            = DMA_FIFOMODE_DISABLE;         
-  hdma.Init.FIFOThreshold       = DMA_FIFO_THRESHOLD_FULL;
-  hdma.Init.MemBurst            = DMA_MBURST_SINGLE;
-  hdma.Init.PeriphBurst         = DMA_PBURST_SINGLE; 
-
-  hdma.Instance = DMA2_Stream1;
-  
-  /* Associate the initialized DMA handle to the DCMI handle */
-  __HAL_LINKDMA(hdcmi, DMA_Handle, hdma);
-  
-  /*** Configure the NVIC for DCMI and DMA ***/
-  /* NVIC configuration for DCMI transfer complete interrupt */
-  HAL_NVIC_SetPriority(DCMI_IRQn, 0x0F, 0);
-  HAL_NVIC_EnableIRQ(DCMI_IRQn);  
-  
-  /* NVIC configuration for DMA2 transfer complete interrupt */
-  HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0x0F, 0);
-  HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn); 
-  
-  /* Configure the DMA stream */
-  HAL_DMA_Init(hdcmi->DMA_Handle);   
-}
-
-/**
-  * @brief  Line event callback
-  * @param  hdcmi: pointer to the DCMI handle  
-  */
-void HAL_DCMI_LineEventCallback(DCMI_HandleTypeDef *hdcmi)
-{        
-  BSP_CAMERA_LineEventCallback();
-}
-
-/**
-  * @brief  Line Event callback.
-  */
-__weak void BSP_CAMERA_LineEventCallback(void)
-{
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_DCMI_LineEventCallback could be implemented in the user file
-   */
-}
-
-/**
-  * @brief  VSYNC event callback
-  * @param  hdcmi: pointer to the DCMI handle  
-  */
-void HAL_DCMI_VsyncEventCallback(DCMI_HandleTypeDef *hdcmi)
-{        
-  BSP_CAMERA_VsyncEventCallback();
-}
-
-/**
-  * @brief  VSYNC Event callback.
-  */
-__weak void BSP_CAMERA_VsyncEventCallback(void)
-{
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_DCMI_VsyncEventCallback could be implemented in the user file
-   */
-}
-
-/**
-  * @brief  Frame event callback
-  * @param  hdcmi: pointer to the DCMI handle  
-  */
-void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi)
-{        
-  BSP_CAMERA_FrameEventCallback();
-}
-
-/**
-  * @brief  Frame Event callback.
-  */
-__weak void BSP_CAMERA_FrameEventCallback(void)
-{
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_DCMI_FrameEventCallback could be implemented in the user file
-   */
-}
-
-/**
-  * @brief  Error callback
-  * @param  hdcmi: pointer to the DCMI handle  
-  */
-void HAL_DCMI_ErrorCallback(DCMI_HandleTypeDef *hdcmi)
-{        
-  BSP_CAMERA_ErrorCallback();
-}
-
-/**
-  * @brief  Error callback.
-  */
-__weak void BSP_CAMERA_ErrorCallback(void)
-{
-  /* NOTE : This function Should not be modified, when the callback is needed,
-            the HAL_DCMI_ErrorCallback could be implemented in the user file
-   */
-}
-
-/**
-  * @}
-  */
-    
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-  
-/**
-  * @}
-  */      
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 140
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_camera.h

@@ -1,140 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_camera.h
-  * @author  MCD Application Team
-  * @brief   This file contains all the functions prototypes for the 
-  *          stm322xg_eval_camera.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_CAMERA_H
-#define __STM322xG_EVAL_CAMERA_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval.h"
-#include "stm322xg_eval_io.h"
-   
-/* Include Camera component Driver */  
-#include "../Components/ov2640/ov2640.h"   
-   
-/** @addtogroup BSP
-  * @{
-  */
-
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @addtogroup STM322xG_EVAL_CAMERA
-  * @{
-  */ 
-
-/** @defgroup STM322xG_EVAL_CAMERA_Exported_Types STM322xG EVAL CAMERA Exported Types
-  * @{
-  */
-   
-/** 
-  * @brief Camera status structure definition  
-  */   
-typedef enum 
-{
-  CAMERA_OK       = 0x00,
-  CAMERA_ERROR    = 0x01,
-  CAMERA_TIMEOUT  = 0x02
-}Camera_StatusTypeDef;
-
-#define RESOLUTION_R160x120      CAMERA_R160x120  /* QQVGA Resolution */
-#define RESOLUTION_R320x240      CAMERA_R320x240  /* QVGA Resolution */
-        
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_CAMERA_Exported_Constants STM322xG EVAL CAMERA Exported Constants
-  * @{
-  */
-#define CAMERA_I2C_ADDRESS 0x60  
-/**
-  * @}
-  */  
-       
-/** @defgroup STM322xG_EVAL_CAMERA_Exported_Functions STM322xG EVAL CAMERA Exported Functions
-  * @{
-  */        
-uint8_t BSP_CAMERA_Init(uint32_t Resolution);
-void    BSP_CAMERA_ContinuousStart(uint8_t *buff);
-void    BSP_CAMERA_SnapshotStart(uint8_t *buff);
-void    BSP_CAMERA_Suspend(void);
-void    BSP_CAMERA_Resume(void); 
-uint8_t BSP_CAMERA_Stop(void);
-void    BSP_CAMERA_LineEventCallback(void);
-void    BSP_CAMERA_VsyncEventCallback(void);
-void    BSP_CAMERA_FrameEventCallback(void);
-void    BSP_CAMERA_ErrorCallback(void);
-void    BSP_CAMERA_MspInit(void);
-
-/* Camera features functions prototype */
-void    BSP_CAMERA_ContrastBrightnessConfig(uint32_t contrast_level, uint32_t brightness_level);
-void    BSP_CAMERA_BlackWhiteConfig(uint32_t Mode);
-void    BSP_CAMERA_ColorEffectConfig(uint32_t Effect);
-
-/* To be called in DCMI_IRQHandler function */
-void    BSP_CAMERA_IRQHandler(void);
-/* To be called in DMA2_Stream1_IRQHandler function */
-void    BSP_CAMERA_DMA_IRQHandler(void);
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-   
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_CAMERA_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 407
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_eeprom.c

@@ -1,407 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_eeprom.c
-  * @author  MCD Application Team
-  * @brief   This file provides a set of functions needed to manage an I2C M24C64 
-  *          EEPROM memory.
-  *          
-  *          =================================================================== 
-  *          Notes:
-  *           - This driver is intended for STM32F2xx families devices only. 
-  *           - The I2C EEPROM memory (M24C64) is available on STM322xG-EVAL
-  *           - To use this driver you have to connect the eeprom jumper (JP24).
-  *          ===================================================================
-  *              
-  *          It implements a high level communication layer for read and write 
-  *          from/to this memory. The needed STM32F2xx hardware resources (I2C and 
-  *          GPIO) are defined in stm32f2xg_eval.h file, and the initialization is 
-  *          performed in EEPROM_IO_Init() function declared in stm32f2xg_eval.c 
-  *          file.
-  *          You can easily tailor this driver to any other development board, 
-  *          by just adapting the defines for hardware resources and 
-  *          EEPROM_IO_Init() function. 
-  *        
-  *          @note In this driver, basic read and write functions (BSP_EEPROM_ReadBuffer() 
-  *                and EEPROM_WritePage()) use Polling mode to perform the data transfer 
-  *                to/from EEPROM memory.
-  *             
-  *     +-----------------------------------------------------------------+
-  *     |               Pin assignment for M24C64 EEPROM                 |
-  *     +---------------------------------------+-----------+-------------+
-  *     |  STM32F2xx I2C Pins                   |   EEPROM  |   Pin       |
-  *     +---------------------------------------+-----------+-------------+
-  *     | .                                     |   E0      |    1  (0V)  |
-  *     | .                                     |   E1      |    2  (0V)  |
-  *     | .                                     |   E2      |    3  (0V)  |
-  *     | .                                     |   VSS(GND)|    4  (0V)  |
-  *     | SDA                                   |   SDA     |    5        |
-  *     | SCL                                   |   SCL     |    6        |
-  *     | JP24                                  |   /WS     |    7        |
-  *     | .                                     |   VDD     |    8 (3.3V) |
-  *     +---------------------------------------+-----------+-------------+
-  *
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval_eeprom.h"
-/** @addtogroup BSP
-  * @{
-  */
-  
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */ 
-  
-/** @addtogroup STM322xG_EVAL_EEPROM STM322xG EVAL EEPROM
-  * @brief This file includes the I2C EEPROM driver of STM322xG-EVAL evaluation board.
-  * @{
-  */ 
-
-/** @defgroup STM322xG_EVAL_EEPROM_Private_Variables STM322xG EVAL EEPROM Private Variables
-  * @{
-  */
-
-__IO uint32_t  EEPROMTimeout = EEPROM_READ_TIMEOUT;
-__IO uint16_t  EEPROMDataRead;
-__IO uint8_t   EEPROMDataWrite;
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_EEPROM_Private_Function_Prototypes STM322xG EVAL EEPROM Private Function Prototypes
-  * @{
-  */ 
-static uint32_t EEPROM_WritePage(uint8_t* pBuffer, uint16_t WriteAddr, uint8_t* NumByteToWrite);
-static uint32_t EEPROM_WaitEepromStandbyState(void);
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_EEPROM_Private_Functions STM322xG EVAL EEPROM Private Functions
-  * @{
-  */ 
-
-/**
-  * @brief  Initializes peripherals used by the I2C EEPROM driver.
-  * @retval EEPROM_OK (0) if operation is correctly performed, else return value 
-  *         different from EEPROM_OK (0)
-  */
-uint32_t BSP_EEPROM_Init(void)
-{ 
-  /* I2C Initialization */
-  EEPROM_IO_Init();
-  
-  /* Select the EEPROM address and check if OK */
-  if(EEPROM_IO_IsDeviceReady(EEPROM_I2C_ADDRESS, EEPROM_MAX_TRIALS) != HAL_OK)
-  {
-    return EEPROM_FAIL;
-  }
-  return EEPROM_OK;
-}
-
-/**
-  * @brief  Reads a block of data from the EEPROM.
-  * @param  pBuffer: pointer to the buffer that receives the data read from 
-  *         the EEPROM.
-  * @param  ReadAddr: EEPROM's internal address to start reading from.
-  * @param  NumByteToRead: pointer to the variable holding number of bytes to 
-  *         be read from the EEPROM.
-  * 
-  *        @note The variable pointed by NumByteToRead is reset to 0 when all the 
-  *              data are read from the EEPROM. Application should monitor this 
-  *              variable in order know when the transfer is complete.
-  * 
-  * @retval EEPROM_OK (0) if operation is correctly performed, else return value 
-  *         different from EEPROM_OK (0) or the timeout user callback.
-  */
-uint32_t BSP_EEPROM_ReadBuffer(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t* NumByteToRead)
-{  
-  uint32_t buffersize = *NumByteToRead;
-  
-  /* Set the pointer to the Number of data to be read */
-  EEPROMDataRead = *NumByteToRead;
-  
-  if(EEPROM_IO_ReadData(EEPROM_I2C_ADDRESS, ReadAddr, pBuffer, buffersize) != HAL_OK)
-  {
-    BSP_EEPROM_TIMEOUT_UserCallback();
-    return EEPROM_FAIL;
-  }
-  
-  /* If all operations OK, return EEPROM_OK (0) */
-  return EEPROM_OK;
-}
-
-/**
-  * @brief  Writes buffer of data to the I2C EEPROM.
-  * @param  pBuffer: pointer to the buffer  containing the data to be written 
-  *         to the EEPROM.
-  * @param  WriteAddr: EEPROM's internal address to write to.
-  * @param  NumByteToWrite: number of bytes to write to the EEPROM.
-  * @retval EEPROM_OK (0) if operation is correctly performed, else return value 
-  *         different from EEPROM_OK (0) or the timeout user callback.
-  */
-uint32_t BSP_EEPROM_WriteBuffer(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite)
-{
-  uint8_t  numofpage = 0, numofsingle = 0, count = 0;
-  uint16_t addr = 0;
-  uint8_t  dataindex = 0;
-  uint32_t status = EEPROM_OK;
-  
-  addr = WriteAddr % EEPROM_PAGESIZE;
-  count = EEPROM_PAGESIZE - addr;
-  numofpage =  NumByteToWrite / EEPROM_PAGESIZE;
-  numofsingle = NumByteToWrite % EEPROM_PAGESIZE;
-  
-  /* If WriteAddr is EEPROM_PAGESIZE aligned */
-  if(addr == 0) 
-  {
-    /* If NumByteToWrite < EEPROM_PAGESIZE */
-    if(numofpage == 0) 
-    {
-      /* Store the number of data to be written */
-      dataindex = numofsingle;
-      /* Start writing data */
-      status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-      if(status != EEPROM_OK)
-      {
-        return status;
-      }
-    }
-    /* If NumByteToWrite > EEPROM_PAGESIZE */
-    else  
-    {
-      while(numofpage--)
-      {
-        /* Store the number of data to be written */
-        dataindex = EEPROM_PAGESIZE;        
-        status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-        
-        WriteAddr +=  EEPROM_PAGESIZE;
-        pBuffer += EEPROM_PAGESIZE;
-      }
-      
-      if(numofsingle!=0)
-      {
-        /* Store the number of data to be written */
-        dataindex = numofsingle;          
-        status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-      }
-    }
-  }
-  /* If WriteAddr is not EEPROM_PAGESIZE aligned */
-  else 
-  {
-    /* If NumByteToWrite < EEPROM_PAGESIZE */
-    if(numofpage == 0) 
-    {
-      /* If the number of data to be written is more than the remaining space 
-      in the current page: */
-      if(NumByteToWrite > count)
-      {
-        /* Store the number of data to be written */
-        dataindex = count;        
-        /* Write the data contained in same page */
-        status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-        
-        /* Store the number of data to be written */
-        dataindex = (NumByteToWrite - count);          
-        /* Write the remaining data in the following page */
-        status = EEPROM_WritePage((uint8_t*)(pBuffer + count), (WriteAddr + count), (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-      }      
-      else      
-      {
-        /* Store the number of data to be written */
-        dataindex = numofsingle;         
-        status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-      }     
-    }
-    /* If NumByteToWrite > EEPROM_PAGESIZE */
-    else
-    {
-      NumByteToWrite -= count;
-      numofpage =  NumByteToWrite / EEPROM_PAGESIZE;
-      numofsingle = NumByteToWrite % EEPROM_PAGESIZE;
-      
-      if(count != 0)
-      {  
-        /* Store the number of data to be written */
-        dataindex = count;         
-        status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-        WriteAddr += count;
-        pBuffer += count;
-      } 
-      
-      while(numofpage--)
-      {
-        /* Store the number of data to be written */
-        dataindex = EEPROM_PAGESIZE;          
-        status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-        WriteAddr +=  EEPROM_PAGESIZE;
-        pBuffer += EEPROM_PAGESIZE;  
-      }
-      if(numofsingle != 0)
-      {
-        /* Store the number of data to be written */
-        dataindex = numofsingle; 
-        status = EEPROM_WritePage(pBuffer, WriteAddr, (uint8_t*)(&dataindex));
-        if(status != EEPROM_OK)
-        {
-          return status;
-        }
-      }
-    }
-  }  
-  
-  /* If all operations OK, return EEPROM_OK (0) */
-  return EEPROM_OK;
-}
-
-/**
-  * @brief  Writes more than one byte to the EEPROM with a single WRITE cycle.
-  *
-  * @note   The number of bytes (combined to write start address) must not 
-  *         cross the EEPROM page boundary. This function can only write into
-  *         the boundaries of an EEPROM page.
-  *         This function doesn't check on boundaries condition (in this driver 
-  *         the function BSP_EEPROM_WriteBuffer() which calls EEPROM_WritePage() is 
-  *         responsible of checking on Page boundaries).
-  * 
-  * @param  pBuffer: pointer to the buffer containing the data to be written to 
-  *         the EEPROM.
-  * @param  WriteAddr: EEPROM's internal address to write to.
-  * @param  NumByteToWrite: pointer to the variable holding number of bytes to 
-  *         be written into the EEPROM. 
-  * 
-  *        @note The variable pointed by NumByteToWrite is reset to 0 when all the 
-  *              data are written to the EEPROM. Application should monitor this 
-  *              variable in order know when the transfer is complete.
-  * 
-  * @retval EEPROM_OK (0) if operation is correctly performed, else return value 
-  *         different from EEPROM_OK (0) or the timeout user callback.
-  */
-static uint32_t EEPROM_WritePage(uint8_t* pBuffer, uint16_t WriteAddr, uint8_t* NumByteToWrite)
-{ 
-  uint32_t buffersize = *NumByteToWrite;
-  uint32_t status = EEPROM_OK;
-  
-  /* Set the pointer to the Number of data to be written */
-  EEPROMDataWrite = *NumByteToWrite;  
-  if(EEPROM_IO_WriteData(EEPROM_I2C_ADDRESS, WriteAddr, pBuffer, buffersize) != HAL_OK)  
-  {
-    BSP_EEPROM_TIMEOUT_UserCallback();
-    status = EEPROM_FAIL;
-  }
-  
-  while(EEPROM_WaitEepromStandbyState() != EEPROM_OK)
-  {
-    return EEPROM_FAIL;
-  }
-  
-  /* If all operations OK, return EEPROM_OK (0) */
-  return status;
-}
-
-/**
-  * @brief  Waits for EEPROM Standby state.
-  * 
-  * @note  This function allows to wait and check that EEPROM has finished the 
-  *        last operation. It is mostly used after Write operation: after receiving
-  *        the buffer to be written, the EEPROM may need additional time to actually
-  *        perform the write operation. During this time, it doesn't answer to
-  *        I2C packets addressed to it. Once the write operation is complete
-  *        the EEPROM responds to its address.
-  * 
-  * @retval EEPROM_OK (0) if operation is correctly performed, else return value 
-  *         different from EEPROM_OK (0) or the timeout user callback.
-  */
-static uint32_t EEPROM_WaitEepromStandbyState(void)      
-{
-  /* Check if the maximum allowed number of trials has bee reached */
-  if(EEPROM_IO_IsDeviceReady(EEPROM_I2C_ADDRESS, EEPROM_MAX_TRIALS) != HAL_OK)
-  {
-    /* If the maximum number of trials has been reached, exit the function */
-    BSP_EEPROM_TIMEOUT_UserCallback();
-    return EEPROM_TIMEOUT;
-  }
-  return EEPROM_OK;
-}
-
-/**
-  * @brief  Basic management of the timeout situation.
-  */
-__weak void BSP_EEPROM_TIMEOUT_UserCallback(void)
-{
-}
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 126
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_eeprom.h

@@ -1,126 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_eeprom.h
-  * @author  MCD Application Team
-  * @brief   This file contains all the functions prototypes for 
-  *          the stm322xg_eval_eeprom.c firmware driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_EEPROM_H
-#define __STM322xG_EVAL_EEPROM_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-  
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */ 
-  
-/** @addtogroup STM322xG_EVAL_EEPROM
-  * @brief This file includes the I2C EEPROM driver of STM322xG-EVAL evaluation board.
-  * @{
-  */
-  
-/** @defgroup STM322xG_EVAL_EEPROM_Exported_Constants STM322xG EVAL EEPROM Exported Constants
-  * @{
-  */
-/* EEPROM hardware address and page size */ 
-#define EEPROM_PAGESIZE             32
-#define EEPROM_MAX_SIZE             0x2000 /* 64Kbit*/
-/* Maximum Timeout values for flags and events waiting loops: This timeout is based 
-   on systick set to 1ms.    
-   Timeout for read based if read all the EEPROM: EEPROM_MAX_SIZE * BSP_I2C_SPEED (640ms) */
-#define EEPROM_READ_TIMEOUT         ((uint32_t)(1000))
-/* Timeout for write based on max write which is EEPROM_PAGESIZE bytes: EEPROM_PAGESIZE * BSP_I2C_SPEED (320us)*/
-#define EEPROM_WRITE_TIMEOUT        ((uint32_t)(1000))
-
-/* Maximum number of trials for EEPROM_WaitEepromStandbyState() function */
-#define EEPROM_MAX_TRIALS           3000
-      
-#define EEPROM_OK                   0
-#define EEPROM_FAIL                 1
-#define EEPROM_TIMEOUT              2
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_EEPROM_Exported_Functions STM322xG EVAL EEPROM Exported Functions
-  * @{
-  */ 
-uint32_t BSP_EEPROM_Init(void);
-uint32_t BSP_EEPROM_ReadBuffer(uint8_t *pBuffer, uint16_t ReadAddr, uint16_t *NumByteToRead);
-uint32_t BSP_EEPROM_WriteBuffer(uint8_t *pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite);
-
-/* USER Callbacks: This function is declared as __weak in EEPROM driver and 
-   should be implemented into user application.  
-   BSP_EEPROM_TIMEOUT_UserCallback() function is called whenever a timeout condition 
-   occurs during communication (waiting on an event that doesn't occur, bus 
-   errors, busy devices ...). */
-void     BSP_EEPROM_TIMEOUT_UserCallback(void);
-
-/* Link function for I2C EEPROM peripheral */
-void                EEPROM_IO_Init(void);
-HAL_StatusTypeDef   EEPROM_IO_WriteData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef   EEPROM_IO_ReadData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize);
-HAL_StatusTypeDef   EEPROM_IO_IsDeviceReady(uint16_t DevAddress, uint32_t Trials);
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_EEPROM_H */
-                                
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 233
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_io.c

@@ -1,233 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_io.c
-  * @author  MCD Application Team
-  * @brief   This file provides a set of functions needed to manage the IO pins
-  *          on STM322xG-EVAL evaluation board.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-  
-/* File Info : -----------------------------------------------------------------
-                                   User NOTES
-1. How To use this driver:
---------------------------
-   - This driver is used to drive the IO module of the STM322xG-EVAL evaluation 
-     board.
-   - The STMPE811 IO expander device component driver must be included with this 
-     driver in order to run the IO functionalities commanded by the IO expander 
-     device mounted on the evaluation board.
-
-2. Driver description:
----------------------
-  + Initialization steps:
-     o Initialize the IO module using the BSP_IO_Init() function. This 
-       function includes the MSP layer hardware resources initialization and the
-       communication layer configuration to start the IO functionalities use.    
-  
-  + IO functionalities use
-     o The IO pin mode is configured when calling the function BSP_IO_ConfigPin(), you 
-       must specify the desired IO mode by choosing the "IO_ModeTypedef" parameter 
-       predefined value.
-     o If an IO pin is used in interrupt mode, the function BSP_IO_ITGetStatus() is 
-       needed to get the interrupt status. To clear the IT pending bits, you should 
-       call the function BSP_IO_ITClear() with specifying the IO pending bit to clear.
-     o The IT is handled using the corresponding external interrupt IRQ handler,
-       the user IT callback treatment is implemented on the same external interrupt
-       callback.
-     o To get/set an IO pin combination state you can use the functions 
-       BSP_IO_ReadPin()/BSP_IO_WritePin() or the function BSP_IO_TogglePin() to toggle the pin 
-       state.
- 
-------------------------------------------------------------------------------*/
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval_io.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */ 
-  
-/** @defgroup STM322xG_EVAL_IO STM322xG EVAL IO
-  * @{
-  */   
-
-/** @defgroup STM322xG_EVAL_IO_Private_Types_Definitions STM322xG EVAL IO Private Types Definitions
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-    
-/** @defgroup STM322xG_EVAL_IO_Private_Variables STM322xG EVAL IO Private Variables
-  * @{
-  */ 
-static IO_DrvTypeDef *io_driver;
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_IO_Private_Functions STM3222xG EVAL IO Private Functions
-  * @{
-  */ 
-
-/**
-  * @brief  Initializes and configures the IO functionalities and configures all
-  *         necessary hardware resources (GPIOs, clocks..).
-  * @note   BSP_IO_Init() is using HAL_Delay() function to ensure that stmpe811
-  *         IO Expander is correctly reset. HAL_Delay() function provides accurate
-  *         delay (in milliseconds) based on variable incremented in SysTick ISR. 
-  *         This implies that if BSP_IO_Init() is called from a peripheral ISR process,
-  *         then the SysTick interrupt must have higher priority (numerically lower)
-  *         than the peripheral interrupt. Otherwise the caller ISR process will be blocked.
-  * @retval IO_OK: if all initializations are OK. Other value if error.
-  */
-uint8_t BSP_IO_Init(void)
-{
-  uint8_t ret = IO_ERROR;
-  
-  if(stmpe811_io_drv.ReadID(IO_I2C_ADDRESS) == STMPE811_ID)
-  {  
-    /* Initialize the IO driver structure */
-    io_driver = &stmpe811_io_drv;
-    
-    io_driver->Init(IO_I2C_ADDRESS);
-    io_driver->Start(IO_I2C_ADDRESS, IO_PIN_ALL);
-    
-    ret = IO_OK;
-  }
-  
-  return ret;
-}
-
-/**
-  * @brief  Gets the selected pins IT status.
-  * @param  IO_Pin: Selected pins to check the status. 
-  *          This parameter can be any combination of the IO pins. 
-  * @retval IO_OK: if read status OK. Other value if error.
-  */
-uint8_t BSP_IO_ITGetStatus(uint16_t IO_Pin)
-{
-  /* Return the IO Pin IT status */
-  return (io_driver->ITStatus(IO_I2C_ADDRESS, IO_Pin));
-}
-
-/**
-  * @brief  Clears the selected IO IT pending bit.
-  * @param  IO_Pin: Selected pins to check the status. 
-  *          This parameter can be any combination of the IO pins. 
-  */
-void BSP_IO_ITClear(uint16_t IO_Pin)
-{
-  io_driver->ClearIT(IO_I2C_ADDRESS, IO_Pin);
-}
-
-/**
-  * @brief  Configures the IO pin(s) according to IO mode structure value.
-  * @param  IO_Pin: Output pin to be set or reset. 
-  *          This parameter can be one of the following values:
-  *            @arg  STMPE811_PIN_x: where x can be from 0 to 7 
-  * @param  IO_Mode: IO pin mode to configure
-  *          This parameter can be one of the following values:
-  *            @arg  IO_MODE_INPUT
-  *            @arg  IO_MODE_OUTPUT
-  *            @arg  IO_MODE_IT_RISING_EDGE
-  *            @arg  IO_MODE_IT_FALLING_EDGE
-  *            @arg  IO_MODE_IT_LOW_LEVEL
-  *            @arg  IO_MODE_IT_HIGH_LEVEL 
-  * @retval IO_OK: if all initializations are OK. Other value if error.  
-  */
-uint8_t BSP_IO_ConfigPin(uint16_t IO_Pin, IO_ModeTypedef IO_Mode)
-{
-  /* Configure the selected IO pin(s) mode */
-  io_driver->Config(IO_I2C_ADDRESS, IO_Pin, IO_Mode);    
-  
-  return IO_OK;  
-}
-
-/**
-  * @brief  Sets the selected pins state.
-  * @param  IO_Pin: Selected pins to write. 
-  *          This parameter can be any combination of the IO pins. 
-  * @param  PinState: New pins state to write  
-  */
-void BSP_IO_WritePin(uint16_t IO_Pin, uint8_t PinState)
-{
-  io_driver->WritePin(IO_I2C_ADDRESS, IO_Pin, PinState);
-}
-
-/**
-  * @brief  Gets the selected pins current state.
-  * @param  IO_Pin: Selected pins to read. 
-  *          This parameter can be any combination of the IO pins. 
-  * @retval The current pins state 
-  */
-uint16_t BSP_IO_ReadPin(uint16_t IO_Pin)
-{
-  return(io_driver->ReadPin(IO_I2C_ADDRESS, IO_Pin));
-}
-
-/**
-  * @brief  Toggles the selected pins state
-  * @param  IO_Pin: Selected pins to toggle. 
-  *          This parameter can be any combination of the IO pins.   
-  */
-void BSP_IO_TogglePin(uint16_t IO_Pin)
-{
-  if(io_driver->ReadPin(IO_I2C_ADDRESS, IO_Pin) == 1) /* Set */
-  {
-    io_driver->WritePin(IO_I2C_ADDRESS, IO_Pin, 0);   /* Reset */
-  }
-  else
-  {
-    io_driver->WritePin(IO_I2C_ADDRESS, IO_Pin, 1);   /* Set */
-  } 
-}
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 124
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_io.h

@@ -1,124 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_io.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm322xg_eval_io.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_IO_H
-#define __STM322xG_EVAL_IO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif   
-   
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval.h"
-/* Include IO component driver */
-#include "../Components/stmpe811/stmpe811.h"
-   
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @defgroup STM322xG_EVAL_IO STM322xG EVAL IO
-  * @{
-  */    
-
-/** @defgroup STM322xG_EVAL_IO_Exported_Types STM322xG EVAL IO Exported Types
-  * @{
-  */
-typedef enum 
-{
-  IO_OK       = 0x00,
-  IO_ERROR    = 0x01,
-  IO_TIMEOUT  = 0x02
-}IO_StatusTypeDef;
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_IO_Exported_Constants STM322xG EVAL IO Exported Constants
-  * @{
-  */
-#define IO_PIN_0                     0x01
-#define IO_PIN_1                     0x02
-#define IO_PIN_2                     0x04
-#define IO_PIN_3                     0x08
-#define IO_PIN_4                     0x10
-#define IO_PIN_5                     0x20
-#define IO_PIN_6                     0x40
-#define IO_PIN_7                     0x80
-#define IO_PIN_ALL                   0xFF
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_IO_Exported_Functions STM322xG EVAL IO Exported Functions
-  * @{
-  */
-uint8_t  BSP_IO_Init(void);
-void     BSP_IO_ITClear(uint16_t IO_Pin);
-uint8_t  BSP_IO_ITGetStatus(uint16_t IO_Pin);
-uint8_t  BSP_IO_ConfigPin(uint16_t IO_Pin, IO_ModeTypedef IO_Mode);
-void     BSP_IO_WritePin(uint16_t IO_Pin, uint8_t PinState);
-uint16_t BSP_IO_ReadPin(uint16_t IO_Pin);
-void     BSP_IO_TogglePin(uint16_t IO_Pin);
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_IO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 1020
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_lcd.c


+ 0 - 200
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_lcd.h

@@ -1,200 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_lcd.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm322xg_eval_lcd.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322XG_EVAL_LCD_H
-#define __STM322XG_EVAL_LCD_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval.h" 
-#include "../Components/ili9325/ili9325.h"
-#include "../Components/ili9320/ili9320.h"
-#include "../../../Utilities/Fonts/fonts.h"
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @addtogroup STM322xG_EVAL_LCD
-  * @{
-  */ 
-
-/** @defgroup STM322xG_EVAL_LCD_Exported_Types STM322xG EVAL LCD Exported Types
-  * @{
-  */
-typedef struct 
-{ 
-  uint32_t TextColor;
-  uint32_t BackColor;
-  sFONT    *pFont; 
-}LCD_DrawPropTypeDef;
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_LCD_Exported_Constants STM322xG EVAL LCD Exported Constants
-  * @{
-  */
-/** 
-  * @brief  LCD status structure definition  
-  */     
-#define LCD_OK         0x00
-#define LCD_ERROR      0x01
-#define LCD_TIMEOUT    0x02
-    
-typedef struct 
-{
-  int16_t X;
-  int16_t Y;
-}Point, * pPoint; 
-
-/** 
-  * @brief  Line mode structures definition
-  */ 
-typedef enum
-{
-  CENTER_MODE          = 0x01,    /* Center mode */
-  RIGHT_MODE           = 0x02,    /* Right mode  */
-  LEFT_MODE            = 0x03     /* Left mode   */
-}Line_ModeTypdef;
-
-/** 
-  * @brief  LCD color  
-  */ 
-#define LCD_COLOR_BLUE          0x001F
-#define LCD_COLOR_GREEN         0x07E0
-#define LCD_COLOR_RED           0xF800
-#define LCD_COLOR_CYAN          0x07FF
-#define LCD_COLOR_MAGENTA       0xF81F
-#define LCD_COLOR_YELLOW        0xFFE0
-#define LCD_COLOR_LIGHTBLUE     0x841F
-#define LCD_COLOR_LIGHTGREEN    0x87F0
-#define LCD_COLOR_LIGHTRED      0xFC10
-#define LCD_COLOR_LIGHTCYAN     0x87FF
-#define LCD_COLOR_LIGHTMAGENTA  0xFC1F
-#define LCD_COLOR_LIGHTYELLOW   0xFFF0
-#define LCD_COLOR_DARKBLUE      0x0010
-#define LCD_COLOR_DARKGREEN     0x0400
-#define LCD_COLOR_DARKRED       0x8000
-#define LCD_COLOR_DARKCYAN      0x0410
-#define LCD_COLOR_DARKMAGENTA   0x8010
-#define LCD_COLOR_DARKYELLOW    0x8400
-#define LCD_COLOR_WHITE         0xFFFF
-#define LCD_COLOR_LIGHTGRAY     0xD69A
-#define LCD_COLOR_GRAY          0x8410
-#define LCD_COLOR_DARKGRAY      0x4208
-#define LCD_COLOR_BLACK         0x0000
-#define LCD_COLOR_BROWN         0xA145
-#define LCD_COLOR_ORANGE        0xFD20
-
-/** 
-  * @brief LCD default font 
-  */ 
-#define LCD_DEFAULT_FONT         Font24
-
-/**
-  * @}
-  */
-
-/** @defgroup STM322xG_EVAL_LCD_Exported_Functions STM322xG EVAL LCD Exported Functions
-  * @{
-  */   
-uint8_t  BSP_LCD_Init(void);
-uint32_t BSP_LCD_GetXSize(void);
-uint32_t BSP_LCD_GetYSize(void);
- 
-uint16_t BSP_LCD_GetTextColor(void);
-uint16_t BSP_LCD_GetBackColor(void);
-void     BSP_LCD_SetTextColor(__IO uint16_t Color);
-void     BSP_LCD_SetBackColor(__IO uint16_t Color);
-void     BSP_LCD_SetFont(sFONT *fonts);
-sFONT    *BSP_LCD_GetFont(void);
-
-void     BSP_LCD_Clear(uint16_t Color);
-void     BSP_LCD_ClearStringLine(uint16_t Line);
-void     BSP_LCD_DisplayStringAtLine(uint16_t Line, uint8_t *ptr);
-void     BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, uint8_t *Text, Line_ModeTypdef Mode);
-void     BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii);
-
-uint16_t BSP_LCD_ReadPixel(uint16_t Xpos, uint16_t Ypos);
-void     BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGB_Code);
-void     BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
-void     BSP_LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
-void     BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
-void     BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
-void     BSP_LCD_DrawPolygon(pPoint Points, uint16_t PointCount);
-void     BSP_LCD_DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
-void     BSP_LCD_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp);
-void     BSP_LCD_DrawRGBImage(uint16_t Xpos, uint16_t Ypos, uint16_t Xsize, uint16_t Ysize, uint8_t *pbmp);
-void     BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
-void     BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
-void     BSP_LCD_FillPolygon(pPoint Points, uint16_t PointCount);
-void     BSP_LCD_FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
-
-void     BSP_LCD_DisplayOff(void);
-void     BSP_LCD_DisplayOn(void);
- 
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322XG_EVAL_LCD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 517
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sd.c

@@ -1,517 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_sd.c
-  * @author  MCD Application Team
-  * @brief   This file includes the uSD card driver mounted on STM322xG-EVAL
-  *          evaluation board.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* File Info : -----------------------------------------------------------------
-                                   User NOTES
-1. How To use this driver:
---------------------------
-   - This driver is used to drive the micro SD external card mounted on STM322xG-EVAL 
-     evaluation board.
-   - This driver does not need a specific component driver for the micro SD device
-     to be included with.
-
-2. Driver description:
----------------------
-  + Initialization steps:
-     o Initialize the micro SD card using the BSP_SD_Init() function. This 
-       function includes the MSP layer hardware resources initialization and the
-       SDIO interface configuration to interface with the external micro SD. It 
-       also includes the micro SD initialization sequence.
-     o To check the SD card presence you can use the function BSP_SD_IsDetected() which 
-       returns the detection status 
-     o If SD presence detection interrupt mode is desired, you must configure the 
-       SD detection interrupt mode by calling the function BSP_SD_ITConfig(). The interrupt 
-       is generated as an external interrupt whenever the micro SD card is 
-       plugged/unplugged in/from the evaluation board. The SD detection interrupt
-       is handeled by calling the function BSP_SD_DetectIT() which is called in the IRQ
-       handler file, the user callback is implemented in the function BSP_SD_DetectCallback().
-     o The function BSP_SD_GetCardInfo() is used to get the micro SD card information 
-       which is stored in the structure "HAL_SD_CardInfoTypedef".
-  
-     + Micro SD card operations
-        o The micro SD card can be accessed with read/write block(s) operations once 
-          it is ready for access. The access can be performed whether using the polling
-          mode by calling the functions BSP_SD_ReadBlocks()/BSP_SD_WriteBlocks(), or by DMA 
-          transfer using the functions BSP_SD_ReadBlocks_DMA()/BSP_SD_WriteBlocks_DMA()
-        o The DMA transfer complete is used with interrupt mode. Once the SD transfer
-          is complete, the SD interrupt is handled using the function BSP_SD_IRQHandler(),
-          the DMA Tx/Rx transfer complete are handled using the functions
-          BSP_SD_DMA_Tx_IRQHandler()/BSP_SD_DMA_Rx_IRQHandler(). The corresponding user callbacks 
-          are implemented by the user at application level. 
-        o The SD erase block(s) is performed using the function BSP_SD_Erase() with specifying
-          the number of blocks to erase.
-        o The SD runtime status is returned when calling the function BSP_SD_GetCardState().
- 
-------------------------------------------------------------------------------*/ 
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval_sd.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */ 
-  
-/** @defgroup STM322xG_EVAL_SD STM322xG EVAL SD
-  * @{
-  */ 
-
-/** @defgroup STM322xG_EVAL_SD_Private_Variables STM322xG EVAL SD Private Variables
-  * @{
-  */       
-SD_HandleTypeDef uSdHandle;
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_SD_Private_Functions STM322xG EVAL SD Private Functions
-  * @{
-  */
-
-/**
-  * @brief  Initializes the SD card device.
-  * @retval SD status.
-  */
-uint8_t BSP_SD_Init(void)
-{ 
-  uint8_t SD_state = MSD_OK;
-  
-  /* uSD device interface configuration */
-  uSdHandle.Instance = SDIO;
-
-  uSdHandle.Init.ClockEdge           = SDIO_CLOCK_EDGE_RISING;
-  uSdHandle.Init.ClockBypass         = SDIO_CLOCK_BYPASS_DISABLE;
-  uSdHandle.Init.ClockPowerSave      = SDIO_CLOCK_POWER_SAVE_DISABLE;
-  uSdHandle.Init.BusWide             = SDIO_BUS_WIDE_1B;
-  uSdHandle.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
-  uSdHandle.Init.ClockDiv            = SDIO_TRANSFER_CLK_DIV;
-  
-  /* Check if the SD card is plugged in the slot */
-  if(BSP_SD_IsDetected() != SD_PRESENT)
-  {
-    return MSD_ERROR;
-  }
-  
-  /* Msp SD initialization */
-  BSP_SD_MspInit(&uSdHandle, NULL);
-
-  if(HAL_SD_Init(&uSdHandle) != HAL_OK)
-  {
-    SD_state = MSD_ERROR;
-  }
-  
-  /* Configure SD Bus width */
-  if(SD_state == MSD_OK)
-  {
-    /* Enable wide operation */
-    if(HAL_SD_ConfigWideBusOperation(&uSdHandle, SDIO_BUS_WIDE_4B) != HAL_OK)
-    {
-      SD_state = MSD_ERROR;
-    }
-    else
-    {
-      SD_state = MSD_OK;
-    }
-  }
-  
-  return  SD_state;
-}
-
-/**
-  * @brief  Configures Interrupt mode for SD detection pin.
-  * @retval Returns 0
-  */
-uint8_t BSP_SD_ITConfig(void)
-{ 
-  GPIO_InitTypeDef GPIO_Init_Structure;
-  
-  /* Configure Interrupt mode for SD detection pin */ 
-  GPIO_Init_Structure.Mode      = GPIO_MODE_IT_RISING_FALLING;
-  GPIO_Init_Structure.Pull      = GPIO_PULLUP;
-  GPIO_Init_Structure.Speed     = GPIO_SPEED_HIGH;
-  GPIO_Init_Structure.Pin       = SD_DETECT_PIN;
-  HAL_GPIO_Init(SD_DETECT_GPIO_PORT, &GPIO_Init_Structure);
-    
-  /* NVIC configuration for SDIO interrupts */
-  HAL_NVIC_SetPriority(SD_DETECT_IRQn, 0x0E, 0);
-  HAL_NVIC_EnableIRQ(SD_DETECT_IRQn);
-  
-  return 0;
-}
-
-/**
-  * @brief  Detects if SD card is correctly plugged in the memory slot or not.
-  * @retval Returns if SD is detected or not
-  */
-uint8_t BSP_SD_IsDetected(void)
-{
-  __IO uint8_t status = SD_PRESENT;
-
-  /* Check SD card detect pin */
-  if(HAL_GPIO_ReadPin(SD_DETECT_GPIO_PORT, SD_DETECT_PIN) != GPIO_PIN_RESET) 
-  {
-    status = SD_NOT_PRESENT;
-  }
-  
-  return status;
-}
-/**
-  * @brief  SD detect IT treatment
-  */
-void BSP_SD_DetectIT(void)
-{
-  /* SD detect IT callback */
-  BSP_SD_DetectCallback();
-  
-}
-
-/** 
-  * @brief  SD detect IT detection callback
-  */
-__weak void BSP_SD_DetectCallback(void)
-{
-  /* NOTE: This function Should not be modified, when the callback is needed,
-  the BSP_SD_DetectCallback could be implemented in the user file
-  */ 
-  
-}
-
-/**
-  * @brief  Reads block(s) from a specified address in an SD card, in polling mode.
-  * @param  pData: Pointer to the buffer that will contain the data to transmit
-  * @param  ReadAddr: Address from where data is to be read
-  * @param  NumOfBlocks: Number of SD blocks to read
-  * @param  Timeout: Timeout for read operation
-  * @retval SD status
-  */
-uint8_t BSP_SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t Timeout)
-{
-  if(HAL_SD_ReadBlocks(&uSdHandle, (uint8_t *)pData, ReadAddr, NumOfBlocks, Timeout) != HAL_OK)
-  {
-    return MSD_ERROR;
-  }
-  else
-  {
-    return MSD_OK;
-  }
-}
-
-/**
-  * @brief  Writes block(s) to a specified address in an SD card, in polling mode. 
-  * @param  pData: Pointer to the buffer that will contain the data to transmit
-  * @param  WriteAddr: Address from where data is to be written
-  * @param  NumOfBlocks: Number of SD blocks to write
-  * @param  Timeout: Timeout for write operation
-  * @retval SD status
-  */
-uint8_t BSP_SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32_t Timeout)
-{
-  if(HAL_SD_WriteBlocks(&uSdHandle, (uint8_t *)pData, WriteAddr, NumOfBlocks, Timeout) != HAL_OK)
-  {
-    return MSD_ERROR;
-  }
-  else
-  {
-    return MSD_OK;
-  }
-}
-
-/**
-  * @brief  Reads block(s) from a specified address in an SD card, in DMA mode.
-  * @param  pData: Pointer to the buffer that will contain the data to transmit
-  * @param  ReadAddr: Address from where data is to be read
-  * @param  NumOfBlocks: Number of SD blocks to read 
-  * @retval SD status
-  */
-uint8_t BSP_SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks)
-{  
-  /* Read block(s) in DMA transfer mode */
-  if(HAL_SD_ReadBlocks_DMA(&uSdHandle, (uint8_t *)pData, ReadAddr, NumOfBlocks) != HAL_OK)
-  {
-    return MSD_ERROR;
-  }
-  else
-  {
-    return MSD_OK;
-  }
-}
-
-/**
-  * @brief  Writes block(s) to a specified address in an SD card, in DMA mode.
-  * @param  pData: Pointer to the buffer that will contain the data to transmit
-  * @param  WriteAddr: Address from where data is to be written
-  * @param  NumOfBlocks: Number of SD blocks to write 
-  * @retval SD status
-  */
-uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks)
-{ 
-  /* Write block(s) in DMA transfer mode */
-  if(HAL_SD_WriteBlocks_DMA(&uSdHandle, (uint8_t *)pData, WriteAddr, NumOfBlocks) != HAL_OK)
-  {
-    return MSD_ERROR;
-  }
-  else
-  {
-    return MSD_OK;
-  }
-}
-
-/**
-  * @brief  Erases the specified memory area of the given SD card. 
-  * @param  StartAddr: Start byte address
-  * @param  EndAddr: End byte address
-  * @retval SD status
-  */
-uint8_t BSP_SD_Erase(uint32_t StartAddr, uint32_t EndAddr)
-{
-  if(HAL_SD_Erase(&uSdHandle, StartAddr, EndAddr) != HAL_OK)
-  {
-    return MSD_ERROR;
-  }
-  else
-  {
-    return MSD_OK;
-  }
-}
-
-/**
-  * @brief  Initializes the SD MSP.
-  * @param  hsd: SD handle
-  * @param  Params : pointer on additional configuration parameters, can be NULL.
-  */
-__weak void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params)
-{
-  static DMA_HandleTypeDef dmaRxHandle;
-  static DMA_HandleTypeDef dmaTxHandle;
-  GPIO_InitTypeDef GPIO_Init_Structure;
-  
-  /* Enable SDIO clock */
-  __HAL_RCC_SDIO_CLK_ENABLE();
-  
-  /* Enable DMA2 clocks */
-  __DMAx_TxRx_CLK_ENABLE();
-
-  /* Enable GPIOs clock */
-  __HAL_RCC_GPIOC_CLK_ENABLE();
-  __HAL_RCC_GPIOD_CLK_ENABLE();
-  __SD_DETECT_GPIO_CLK_ENABLE();
-  
-  /* Common GPIO configuration */
-  GPIO_Init_Structure.Mode      = GPIO_MODE_AF_PP;
-  GPIO_Init_Structure.Pull      = GPIO_PULLUP;
-  GPIO_Init_Structure.Speed     = GPIO_SPEED_HIGH;
-  GPIO_Init_Structure.Alternate = GPIO_AF12_SDIO;
-  
-  /* GPIOC configuration */
-  GPIO_Init_Structure.Pin = GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12;
-   
-  HAL_GPIO_Init(GPIOC, &GPIO_Init_Structure);
-
-  /* GPIOD configuration */
-  GPIO_Init_Structure.Pin = GPIO_PIN_2;
-  HAL_GPIO_Init(GPIOD, &GPIO_Init_Structure);
-
-  /* SD Card detect pin configuration */
-  GPIO_Init_Structure.Mode      = GPIO_MODE_INPUT;
-  GPIO_Init_Structure.Pull      = GPIO_PULLUP;
-  GPIO_Init_Structure.Speed     = GPIO_SPEED_HIGH;
-  GPIO_Init_Structure.Pin       = SD_DETECT_PIN;
-  HAL_GPIO_Init(SD_DETECT_GPIO_PORT, &GPIO_Init_Structure);
-    
-  /* NVIC configuration for SDIO interrupts */
-  HAL_NVIC_SetPriority(SDIO_IRQn, 0x0E, 0);
-  HAL_NVIC_EnableIRQ(SDIO_IRQn);
-    
-  /* Configure DMA Rx parameters */
-  dmaRxHandle.Init.Channel             = SD_DMAx_Rx_CHANNEL;
-  dmaRxHandle.Init.Direction           = DMA_PERIPH_TO_MEMORY;
-  dmaRxHandle.Init.PeriphInc           = DMA_PINC_DISABLE;
-  dmaRxHandle.Init.MemInc              = DMA_MINC_ENABLE;
-  dmaRxHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
-  dmaRxHandle.Init.MemDataAlignment    = DMA_MDATAALIGN_WORD;
-  dmaRxHandle.Init.Mode                = DMA_PFCTRL;
-  dmaRxHandle.Init.Priority            = DMA_PRIORITY_VERY_HIGH;
-  dmaRxHandle.Init.FIFOMode            = DMA_FIFOMODE_ENABLE;
-  dmaRxHandle.Init.FIFOThreshold       = DMA_FIFO_THRESHOLD_FULL;
-  dmaRxHandle.Init.MemBurst            = DMA_MBURST_INC4;
-  dmaRxHandle.Init.PeriphBurst         = DMA_PBURST_INC4;
-  
-  dmaRxHandle.Instance = SD_DMAx_Rx_STREAM;
-  
-  /* Associate the DMA handle */
-  __HAL_LINKDMA(hsd, hdmarx, dmaRxHandle);
-  
-  /* Deinitialize the stream for new transfer */
-  HAL_DMA_DeInit(&dmaRxHandle);
-  
-  /* Configure the DMA stream */
-  HAL_DMA_Init(&dmaRxHandle);
-  
-  /* Configure DMA Tx parameters */
-  dmaTxHandle.Init.Channel             = SD_DMAx_Tx_CHANNEL;
-  dmaTxHandle.Init.Direction           = DMA_MEMORY_TO_PERIPH;
-  dmaTxHandle.Init.PeriphInc           = DMA_PINC_DISABLE;
-  dmaTxHandle.Init.MemInc              = DMA_MINC_ENABLE;
-  dmaTxHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
-  dmaTxHandle.Init.MemDataAlignment    = DMA_MDATAALIGN_WORD;
-  dmaTxHandle.Init.Mode                = DMA_PFCTRL;
-  dmaTxHandle.Init.Priority            = DMA_PRIORITY_VERY_HIGH;
-  dmaTxHandle.Init.FIFOMode            = DMA_FIFOMODE_ENABLE;
-  dmaTxHandle.Init.FIFOThreshold       = DMA_FIFO_THRESHOLD_FULL;
-  dmaTxHandle.Init.MemBurst            = DMA_MBURST_INC4;
-  dmaTxHandle.Init.PeriphBurst         = DMA_PBURST_INC4;
-  
-  dmaTxHandle.Instance = SD_DMAx_Tx_STREAM;
-  
-  /* Associate the DMA handle */
-  __HAL_LINKDMA(hsd, hdmatx, dmaTxHandle);
-  
-  /* Deinitialize the stream for new transfer */
-  HAL_DMA_DeInit(&dmaTxHandle);
-  
-  /* Configure the DMA stream */
-  HAL_DMA_Init(&dmaTxHandle); 
-  
-  /* NVIC configuration for DMA transfer complete interrupt */
-  HAL_NVIC_SetPriority(SD_DMAx_Rx_IRQn, 0x0F, 0);
-  HAL_NVIC_EnableIRQ(SD_DMAx_Rx_IRQn);
-  
-  /* NVIC configuration for DMA transfer complete interrupt */
-  HAL_NVIC_SetPriority(SD_DMAx_Tx_IRQn, 0x0F, 0);
-  HAL_NVIC_EnableIRQ(SD_DMAx_Tx_IRQn);
-}
-
-/**
-  * @brief  Gets the current SD card data status.
-  * @retval Data transfer state.
-  *          This value can be one of the following values:
-  *            @arg  SD_TRANSFER_OK: No data transfer is acting
-  *            @arg  SD_TRANSFER_BUSY: Data transfer is acting
-  */
-uint8_t BSP_SD_GetCardState(void)
-{
-  return((HAL_SD_GetCardState(&uSdHandle) == HAL_SD_CARD_TRANSFER ) ? SD_TRANSFER_OK : SD_TRANSFER_BUSY);
-}
-  
-
-/**
-  * @brief  Get SD information about specific SD card.
-  * @param  CardInfo: Pointer to HAL_SD_CardInfoTypedef structure
-  * @retval None 
-  */
-void BSP_SD_GetCardInfo(HAL_SD_CardInfoTypeDef *CardInfo)
-{
-  /* Get SD card Information */
-  HAL_SD_GetCardInfo(&uSdHandle, CardInfo);
-}
-
-/**
-  * @brief SD Abort callbacks
-  * @param hsd: SD handle
-  * @retval None
-  */
-void HAL_SD_AbortCallback(SD_HandleTypeDef *hsd)
-{
-  BSP_SD_AbortCallback();
-}
-
-/**
-  * @brief Tx Transfer completed callbacks
-  * @param hsd: SD handle
-  * @retval None
-  */
-void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)
-{
-  BSP_SD_WriteCpltCallback();
-}
-
-/**
-  * @brief Rx Transfer completed callbacks
-  * @param hsd: SD handle
-  * @retval None
-  */
-void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
-{
-  BSP_SD_ReadCpltCallback();
-}
-
-/**
-  * @brief BSP SD Abort callbacks
-  * @retval None
-  */
-__weak void BSP_SD_AbortCallback(void)
-{
-
-}
-
-/**
-  * @brief BSP Tx Transfer completed callbacks
-  * @retval None
-  */
-__weak void BSP_SD_WriteCpltCallback(void)
-{
-
-}
-
-/**
-  * @brief BSP Rx Transfer completed callbacks
-  * @retval None
-  */
-__weak void BSP_SD_ReadCpltCallback(void)
-{
-
-}
-
-/**
-  * @}
-  */  
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 162
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sd.h

@@ -1,162 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_sd.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm322xg_eval_sd.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_SD_H
-#define __STM322xG_EVAL_SD_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f2xx_hal.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @addtogroup STM322xG_EVAL_SD
-  * @{
-  */    
-
-/** @defgroup STM322xG_EVAL_SD_Exported_Types STM322xG EVAL SD Exported Types
-  * @{
-  */
-
-/** 
-  * @brief SD Card information structure 
-  */   
-#define BSP_SD_CardInfo HAL_SD_CardInfoTypeDef
-/**
-  * @}
-  */
-   
-
-/** @defgroup STM322xG_EVAL_SD_Exported_Constants STM322xG EVAL SD Exported Constants
-  * @{
-  */
-/** 
-  * @brief  SD status structure definition  
-  */     
-#define   MSD_OK                        ((uint8_t)0x00)
-#define   MSD_ERROR                     ((uint8_t)0x01)
-
-/** 
-  * @brief  SD transfer state definition  
-  */     
-#define   SD_TRANSFER_OK                ((uint8_t)0x00)
-#define   SD_TRANSFER_BUSY              ((uint8_t)0x01)
-   
-#define SD_DETECT_PIN                    GPIO_PIN_13
-#define SD_DETECT_GPIO_PORT              GPIOH
-#define __SD_DETECT_GPIO_CLK_ENABLE()    __HAL_RCC_GPIOH_CLK_ENABLE()
-#define SD_DETECT_IRQn                   EXTI15_10_IRQn
-
-#define SD_DATATIMEOUT           ((uint32_t)100000000)
-
-#define SD_PRESENT               ((uint8_t)0x01)
-#define SD_NOT_PRESENT           ((uint8_t)0x00)
-   
-/* DMA definitions for SD DMA transfer */
-#define __DMAx_TxRx_CLK_ENABLE            __HAL_RCC_DMA2_CLK_ENABLE
-#define SD_DMAx_Tx_CHANNEL                DMA_CHANNEL_4
-#define SD_DMAx_Rx_CHANNEL                DMA_CHANNEL_4
-#define SD_DMAx_Tx_STREAM                 DMA2_Stream6  
-#define SD_DMAx_Rx_STREAM                 DMA2_Stream3  
-#define SD_DMAx_Tx_IRQn                   DMA2_Stream6_IRQn
-#define SD_DMAx_Rx_IRQn                   DMA2_Stream3_IRQn
-#define BSP_SD_IRQHandler                 SDIO_IRQHandler
-#define BSP_SD_DMA_Tx_IRQHandler          DMA2_Stream6_IRQHandler
-#define BSP_SD_DMA_Rx_IRQHandler          DMA2_Stream3_IRQHandler
-#define SD_DetectIRQHandler()             HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13)
-
-/**
-  * @}
-  */
-  
-/** @defgroup STM322xG_EVAL_SD_Exported_Functions STM322xG EVAL SD Exported Functions
-  * @{
-  */  
-uint8_t BSP_SD_Init(void);
-uint8_t BSP_SD_ITConfig(void);
-void    BSP_SD_DetectIT(void);
-void    BSP_SD_DetectCallback(void);
-uint8_t BSP_SD_ReadBlocks(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t Timeout);
-uint8_t BSP_SD_WriteBlocks(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32_t Timeout);
-uint8_t BSP_SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks);
-uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks);
-uint8_t BSP_SD_Erase(uint32_t StartAddr, uint32_t EndAddr);
-uint8_t BSP_SD_GetCardState(void);
-void    BSP_SD_GetCardInfo(HAL_SD_CardInfoTypeDef *CardInfo);
-uint8_t BSP_SD_IsDetected(void);
-
-/* These functions can be modified in case the current settings (e.g. DMA stream)
-   need to be changed for specific application needs */
-void    BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params);
-void    BSP_SD_Detect_MspInit(SD_HandleTypeDef *hsd, void *Params);
-void    BSP_SD_MspDeInit(SD_HandleTypeDef *hsd, void *Params);
-void    BSP_SD_AbortCallback(void);
-void    BSP_SD_WriteCpltCallback(void);
-void    BSP_SD_ReadCpltCallback(void); 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-  
-/**
-  * @}
-  */ 
-  
-/**
-  * @}
-  */ 
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_SD_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 325
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sram.c

@@ -1,325 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_sram.c
-  * @author  MCD Application Team
-  * @brief   This file includes the SRAM driver for the IS61WV102416BLL-10MLI memory 
-  *          device mounted on STM322xG-EVAL evaluation board.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-  
-/* File Info : -----------------------------------------------------------------
-                                   User NOTES
-1. How To use this driver:
---------------------------
-   - This driver is used to drive the IS61WV102416BLL-10MLI SRAM external memory mounted
-     on STM322xG-EVAL evaluation board.
-   - This driver does not need a specific component driver for the SRAM device
-     to be included with.
-
-2. Driver description:
----------------------
-  + Initialization steps:
-     o Initialize the SRAM external memory using the BSP_SRAM_Init() function. This 
-       function includes the MSP layer hardware resources initialization and the
-       FSMC controller configuration to interface with the external SRAM memory.
-
-  + SRAM read/write operations
-     o SRAM external memory can be accessed with read/write operations once it is
-       initialized.
-       Read/write operation can be performed with AHB access using the functions
-       BSP_SRAM_ReadData()/BSP_SRAM_WriteData(), or by DMA transfer using the functions
-       BSP_SRAM_ReadData_DMA()/BSP_SRAM_WriteData_DMA().
-     o The AHB access is performed with 16-bit width transaction, the DMA transfer
-       configuration is fixed at single (no burst) halfword transfer 
-       (see the SRAM_MspInit() static function).
-     o User can implement his own functions for read/write access with his desired 
-       configurations.
-     o If interrupt mode is used for DMA transfer, the function BSP_SRAM_DMA_IRQHandler()
-       is called in IRQ handler file, to serve the generated interrupt once the DMA 
-       transfer is complete.
- 
-------------------------------------------------------------------------------*/
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval_sram.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-
-/** @defgroup STM322xG_EVAL_SRAM STM322xG EVAL SRAM
-  * @{
-  */
-
-
-/** @defgroup STM322xG_EVAL_SRAM_Private_Variables STM322xG EVAL SRAM Private Variables
-  * @{
-  */
-static SRAM_HandleTypeDef sramHandle;
-static FSMC_NORSRAM_TimingTypeDef Timing;
-/**
-  * @}
-  */ 
-    
-/** @defgroup STM322xG_EVAL_SRAM_Private_Functions STM322xG EVAL SRAM Private Functions
-  * @{
-  */
-
-/**
-  * @brief  Initializes the SRAM device.
-  * @retval SRAM status
-  */
-uint8_t BSP_SRAM_Init(void)
-{ 
-  sramHandle.Instance = FSMC_NORSRAM_DEVICE;
-  sramHandle.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
-  
-  /* SRAM device configuration */  
-  Timing.AddressSetupTime      = 2;
-  Timing.AddressHoldTime       = 1;
-  Timing.DataSetupTime         = 2;
-  Timing.BusTurnAroundDuration = 1;
-  Timing.CLKDivision           = 2;
-  Timing.DataLatency           = 2;
-  Timing.AccessMode            = FSMC_ACCESS_MODE_A;
-  
-  sramHandle.Init.NSBank             = FSMC_NORSRAM_BANK2;
-  sramHandle.Init.DataAddressMux     = FSMC_DATA_ADDRESS_MUX_DISABLE;
-  sramHandle.Init.MemoryType         = FSMC_MEMORY_TYPE_SRAM;
-  sramHandle.Init.MemoryDataWidth    = SRAM_MEMORY_WIDTH;
-  sramHandle.Init.BurstAccessMode    = SRAM_BURSTACCESS;
-  sramHandle.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
-  sramHandle.Init.WrapMode           = FSMC_WRAP_MODE_DISABLE;
-  sramHandle.Init.WaitSignalActive   = FSMC_WAIT_TIMING_BEFORE_WS;
-  sramHandle.Init.WriteOperation     = FSMC_WRITE_OPERATION_ENABLE;
-  sramHandle.Init.WaitSignal         = FSMC_WAIT_SIGNAL_DISABLE;
-  sramHandle.Init.ExtendedMode       = FSMC_EXTENDED_MODE_DISABLE;
-  sramHandle.Init.AsynchronousWait   = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
-  sramHandle.Init.WriteBurst         = SRAM_WRITEBURST;
-    
-  /* SRAM controller initialization */
-  BSP_SRAM_MspInit();
-  if(HAL_SRAM_Init(&sramHandle, &Timing, &Timing) != HAL_OK)
-  {
-    return SRAM_ERROR;
-  }
-  else
-  {
-    return SRAM_OK;
-  }
-}
-
-/**
-  * @brief  Reads an amount of data from the SRAM device in polling mode.
-  * @param  uwStartAddress : Read start address
-  * @param  pData: Pointer to data to be read
-  * @param  uwDataSize: Size of read data from the memory
-  * @retval SRAM status
-  */
-uint8_t BSP_SRAM_ReadData(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize)
-{ 
-  if(HAL_SRAM_Read_16b(&sramHandle, (uint32_t *)uwStartAddress, pData, uwDataSize) != HAL_OK)
-  {
-    return SRAM_ERROR;
-  }
-  else
-  {
-    return SRAM_OK;
-  }
-}
-
-/**
-  * @brief  Reads an amount of data from the SRAM device in DMA mode.
-  * @param  uwStartAddress : Read start address
-  * @param  pData: Pointer to data to be read
-  * @param  uwDataSize: Size of read data from the memory   
-  * @retval SRAM status
-  */
-uint8_t BSP_SRAM_ReadData_DMA(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize)
-{
-  if(HAL_SRAM_Read_DMA(&sramHandle, (uint32_t *)uwStartAddress, (uint32_t *)pData, uwDataSize) != HAL_OK)
-  {
-    return SRAM_ERROR;
-  }
-  else
-  {
-    return SRAM_OK;
-  }
-}
-
-/**
-  * @brief  Writes an amount of data from the SRAM device in polling mode.
-  * @param  uwStartAddress: Write start address
-  * @param  pData: Pointer to data to be written
-  * @param  uwDataSize: Size of written data from the memory   
-  * @retval SRAM status
-  */
-uint8_t BSP_SRAM_WriteData(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize) 
-{ 
-  if(HAL_SRAM_Write_16b(&sramHandle, (uint32_t *)uwStartAddress, pData, uwDataSize) != HAL_OK)
-  {
-    return SRAM_ERROR;
-  }
-  else
-  {
-    return SRAM_OK;
-  }
-}
-
-/**
-  * @brief  Writes an amount of data from the SRAM device in DMA mode.
-  * @param  uwStartAddress: Write start address
-  * @param  pData: Pointer to data to be written
-  * @param  uwDataSize: Size of written data from the memory   
-  * @retval SRAM status
-  */
-uint8_t BSP_SRAM_WriteData_DMA(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize) 
-{
-  if(HAL_SRAM_Write_DMA(&sramHandle, (uint32_t *)uwStartAddress, (uint32_t *)pData, uwDataSize) != HAL_OK)
-  {
-    return SRAM_ERROR;
-  }
-  else
-  {
-    return SRAM_OK;
-  } 
-}
-
-/**
-  * @brief  Handles SRAM DMA transfer interrupt request.
-  */
-void BSP_SRAM_DMA_IRQHandler(void)
-{
-  HAL_DMA_IRQHandler(sramHandle.hdma); 
-}
-
-/**
-  * @brief  Initializes SRAM MSP.
-  */
-__weak void BSP_SRAM_MspInit(void)
-{
-  static DMA_HandleTypeDef dmaHandle;
-  GPIO_InitTypeDef GPIO_Init_Structure;
-  SRAM_HandleTypeDef *hsram = &sramHandle;
-    
-  /* Enable FSMC clock */
-  __HAL_RCC_FSMC_CLK_ENABLE();
-  
-  /* Enable chosen DMAx clock */
-  __SRAM_DMAx_CLK_ENABLE();
-
-  /* Enable GPIOs clock */
-  __HAL_RCC_GPIOD_CLK_ENABLE();
-  __HAL_RCC_GPIOE_CLK_ENABLE();
-  __HAL_RCC_GPIOF_CLK_ENABLE();
-  __HAL_RCC_GPIOG_CLK_ENABLE();
-  
-  /* Common GPIO configuration */
-  GPIO_Init_Structure.Mode      = GPIO_MODE_AF_PP;
-  GPIO_Init_Structure.Pull      = GPIO_PULLUP;
-  GPIO_Init_Structure.Speed     = GPIO_SPEED_HIGH;
-  GPIO_Init_Structure.Alternate = GPIO_AF12_FSMC;
-  
-  /* GPIOD configuration */
-  GPIO_Init_Structure.Pin   = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8     |\
-                              GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 |\
-                              GPIO_PIN_14 | GPIO_PIN_15;
-   
-  HAL_GPIO_Init(GPIOD, &GPIO_Init_Structure);
-
-  /* GPIOE configuration */  
-  GPIO_Init_Structure.Pin   = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_3| GPIO_PIN_4 | GPIO_PIN_7     |\
-                              GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 |\
-                              GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;
-  HAL_GPIO_Init(GPIOE, &GPIO_Init_Structure);
-  
-  /* GPIOF configuration */  
-  GPIO_Init_Structure.Pin   = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2| GPIO_PIN_3 | GPIO_PIN_4     |\
-                              GPIO_PIN_5 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;
-  HAL_GPIO_Init(GPIOF, &GPIO_Init_Structure);
-  
-  /* GPIOG configuration */  
-  GPIO_Init_Structure.Pin   = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2| GPIO_PIN_3 | GPIO_PIN_4     |\
-                              GPIO_PIN_5 | GPIO_PIN_9;
-  
-  HAL_GPIO_Init(GPIOG, &GPIO_Init_Structure);  
-  
-
-  /* Configure common DMA parameters */
-  dmaHandle.Init.Channel             = SRAM_DMAx_CHANNEL;
-  dmaHandle.Init.Direction           = DMA_MEMORY_TO_MEMORY;
-  dmaHandle.Init.PeriphInc           = DMA_PINC_ENABLE;
-  dmaHandle.Init.MemInc              = DMA_MINC_ENABLE;
-  dmaHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
-  dmaHandle.Init.MemDataAlignment    = DMA_MDATAALIGN_HALFWORD;
-  dmaHandle.Init.Mode                = DMA_NORMAL;
-  dmaHandle.Init.Priority            = DMA_PRIORITY_HIGH;
-  dmaHandle.Init.FIFOMode            = DMA_FIFOMODE_DISABLE;         
-  dmaHandle.Init.FIFOThreshold       = DMA_FIFO_THRESHOLD_FULL;
-  dmaHandle.Init.MemBurst            = DMA_MBURST_INC8;
-  dmaHandle.Init.PeriphBurst         = DMA_PBURST_INC8; 
-  
-  dmaHandle.Instance = SRAM_DMAx_STREAM;
-  
-   /* Associate the DMA handle */
-  __HAL_LINKDMA(hsram, hdma, dmaHandle);
-  
-  /* Deinitialize the stream for new transfer */
-  HAL_DMA_DeInit(&dmaHandle);
-  
-  /* Configure the DMA stream */
-  HAL_DMA_Init(&dmaHandle);
-    
-  /* NVIC configuration for DMA transfer complete interrupt */
-  HAL_NVIC_SetPriority(SRAM_DMAx_IRQn, 0x0F, 0);
-  HAL_NVIC_EnableIRQ(SRAM_DMAx_IRQn);   
-}
-
-/**
-  * @}
-  */  
-  
-/**
-  * @}
-  */ 
-  
-/**
-  * @}
-  */ 
-  
-/**
-  * @}
-  */ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 124
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_sram.h

@@ -1,124 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_sram.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm322xg_eval_sram.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_SRAM_H
-#define __STM322xG_EVAL_SRAM_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif 
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f2xx_hal.h"
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @addtogroup STM322xG_EVAL_SRAM
-  * @{
-  */    
-   
-/** @defgroup STM322xG_EVAL_SRAM_Exported_Constants STM322xG EVAL SRAM Exported Constants
-  * @{
-  */
-   
-/** 
-  * @brief  SD status structure definition  
-  */     
-#define SRAM_OK         0x00
-#define SRAM_ERROR      0x01
-   
-#define SRAM_DEVICE_ADDR  ((uint32_t)0x64000000)
-#define SRAM_DEVICE_SIZE  ((uint32_t)0x200000)  /* SRAM device size in Bytes */  
-  
-/* #define SRAM_MEMORY_WIDTH    FSMC_NORSRAM_MEM_BUS_WIDTH_8 */
-#define SRAM_MEMORY_WIDTH    FSMC_NORSRAM_MEM_BUS_WIDTH_16
-
-#define SRAM_BURSTACCESS    FSMC_BURST_ACCESS_MODE_DISABLE  
-/* #define SRAM_BURSTACCESS    FSMC_BURST_ACCESS_MODE_ENABLE */
-  
-#define SRAM_WRITEBURST    FSMC_WRITE_BURST_DISABLE  
-/* #define SRAM_WRITEBURST   FSMC_WRITE_BURST_ENABLE */
-
-/* DMA definitions for SRAM DMA transfer */
-#define __SRAM_DMAx_CLK_ENABLE            __HAL_RCC_DMA2_CLK_ENABLE
-#define SRAM_DMAx_CHANNEL                 DMA_CHANNEL_0
-#define SRAM_DMAx_STREAM                  DMA2_Stream0  
-#define SRAM_DMAx_IRQn                    DMA2_Stream0_IRQn
-#define SRAM_DMAx_IRQHandler              DMA2_Stream0_IRQHandler
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_SRAM_Exported_Functions STM322xG EVAL SRAM Exported Functions
-  * @{
-  */     
-uint8_t BSP_SRAM_Init(void);
-uint8_t BSP_SRAM_ReadData(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize);
-uint8_t BSP_SRAM_ReadData_DMA(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize);
-uint8_t BSP_SRAM_WriteData(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize);
-uint8_t BSP_SRAM_WriteData_DMA(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize);
-void    BSP_SRAM_DMA_IRQHandler(void);
-void    BSP_SRAM_MspInit(void);
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_SRAM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 236
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_ts.c

@@ -1,236 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_ts.c
-  * @author  MCD Application Team
-  * @brief   This file provides a set of functions needed to manage the touch 
-  *          screen on STM322xG-EVAL evaluation board.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-  
-/* File Info : -----------------------------------------------------------------
-                                   User NOTES
-1. How To use this driver:
---------------------------
-   - This driver is used to drive the touch screen module of the STM322xG-EVAL 
-     evaluation board on the ILI9325 LCD mounted on MB785 daughter board .
-   - The STMPE811 IO expander device component driver must be included with this 
-     driver in order to run the TS module commanded by the IO expander device 
-     mounted on the evaluation board.
-
-2. Driver description:
----------------------
-  + Initialization steps:
-     o Initialize the TS module using the BSP_TS_Init() function. This 
-       function includes the MSP layer hardware resources initialization and the
-       communication layer configuration to start the TS use. The LCD size properties
-       (x and y) are passed as parameters.
-     o If TS interrupt mode is desired, you must configure the TS interrupt mode
-       by calling the function BSP_TS_ITConfig(). The TS interrupt mode is generated
-       as an external interrupt whenever a touch is detected. 
-  
-  + Touch screen use
-     o The touch screen state is captured whenever the function BSP_TS_GetState() is 
-       used. This function returns information about the last LCD touch occurred
-       in the TS_StateTypeDef structure.
-     o If TS interrupt mode is used, the function BSP_TS_ITGetStatus() is needed to get
-       the interrupt status. To clear the IT pending bits, you should call the 
-       function BSP_TS_ITClear().
-     o The IT is handled using the corresponding external interrupt IRQ handler,
-       the user IT callback treatment is implemented on the same external interrupt
-       callback.
- 
-------------------------------------------------------------------------------*/   
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval_ts.h"
-
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */ 
-  
-/** @defgroup STM322xG_EVAL_TS STM322xG EVAL TS
-  * @{
-  */   
-
-/** @defgroup STM322xG_EVAL_TS_Private_Variables STM322xG EVAL TS Private Variables
-  * @{
-  */ 
-static TS_DrvTypeDef *ts_driver;
-static uint16_t ts_x_boundary, ts_y_boundary; 
-static uint8_t  ts_orientation;
-/**
-  * @}
-  */
-
-/** @defgroup STM322xG_EVAL_TS_Private_Function_Prototypes STM322xG EVAL TS Private Function Prototypes
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_TS_Private_Functions STM322xG EVAL TS Private Functions
-  * @{
-  */ 
-
-/**
-  * @brief  Initializes and configures the touch screen functionalities and 
-  *         configures all necessary hardware resources (GPIOs, clocks..).
-  * @param  xSize: Maximum X size of the TS area on LCD
-  * @param  ySize: Maximum Y size of the TS area on LCD  
-  * @retval TS_OK if all initializations are OK. Other value if error.
-  */
-uint8_t BSP_TS_Init(uint16_t xSize, uint16_t ySize)
-{
-  uint8_t ret = TS_ERROR;
-  
-  if(stmpe811_ts_drv.ReadID(TS_I2C_ADDRESS) == STMPE811_ID)
-  {
-    /* Initialize the TS driver structure */
-    ts_driver = &stmpe811_ts_drv;
-    
-    /* Initialize x and y positions boundaries */
-    ts_x_boundary  = xSize;
-    ts_y_boundary  = ySize;
-    ts_orientation = TS_SWAP_XY;
-    ret = TS_OK;
-  }
-  
-  if(ret == TS_OK)
-  {
-    /* Initialize the LL TS Driver */
-    ts_driver->Init(TS_I2C_ADDRESS);
-    ts_driver->Start(TS_I2C_ADDRESS);
-  }  
-  
-  return ret;
-}
-
-/**
-  * @brief  Configures and enables the touch screen interrupts.
-  * @retval TS_OK if all initializations are OK. Other value if error.
-  */
-uint8_t BSP_TS_ITConfig(void)
-{ 
-  /* Call component driver to enable TS ITs */
-  ts_driver->EnableIT(TS_I2C_ADDRESS);
-  
-  return TS_OK;  
-}
-
-/**
-  * @brief  Gets the touch screen interrupt status.
-  * @retval TS_OK if all initializations are OK. Other value if error.
-  */
-uint8_t BSP_TS_ITGetStatus(void)
-{
-  /* Call component driver to enable TS ITs */
-  return (ts_driver->GetITStatus(TS_I2C_ADDRESS));
-}
-
-/**
-  * @brief  Returns status and positions of the touch screen.
-  * @param  TS_State: Pointer to touch screen current state structure
-  * @retval TS_OK if all initializations are OK. Other value if error.
-  */
-uint8_t BSP_TS_GetState(TS_StateTypeDef *TS_State)
-{
-  static uint32_t _x = 0, _y = 0;
-  uint16_t xDiff, yDiff , x , y;
-  uint16_t swap;
-  
-  TS_State->TouchDetected = ts_driver->DetectTouch(TS_I2C_ADDRESS);
-  
-  if(TS_State->TouchDetected)
-  {
-    ts_driver->GetXY(TS_I2C_ADDRESS, &x, &y); 
-    
-    if(ts_orientation & TS_SWAP_X)
-    {
-      x = 4096 - x;  
-    }
-    
-    if(ts_orientation & TS_SWAP_Y)
-    {
-      y = 4096 - y;
-    }
-    
-    if(ts_orientation & TS_SWAP_XY)
-    {
-      swap = y; 
-      y = x;      
-      x = swap;      
-    }
-    
-    xDiff = x > _x? (x - _x): (_x - x);
-    yDiff = y > _y? (y - _y): (_y - y); 
-    
-    if (xDiff + yDiff > 5)
-    {
-      _x = x;
-      _y = y; 
-    }
-    
-    TS_State->x = (ts_x_boundary * _x) >> 12;
-    TS_State->y = (ts_y_boundary * _y) >> 12; 
-  }  
-  
-  return TS_OK;
-}
-
-/**
-  * @brief  Clears all touch screen interrupts.
-  */
-void BSP_TS_ITClear(void)
-{
-  ts_driver->ClearIT(TS_I2C_ADDRESS); 
-}
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 125
app/Drivers/BSP/STM322xG_EVAL/stm322xg_eval_ts.h

@@ -1,125 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm322xg_eval_ts.h
-  * @author  MCD Application Team
-  * @brief   This file contains the common defines and functions prototypes for
-  *          the stm322xg_eval_ts.c driver.
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM322xG_EVAL_TS_H
-#define __STM322xG_EVAL_TS_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif   
-   
-/* Includes ------------------------------------------------------------------*/
-#include "stm322xg_eval.h"  
-/* Include IOExpander(STMPE811) component Driver */ 
-#include "../Components/stmpe811/stmpe811.h" 
-
-/** @addtogroup BSP
-  * @{
-  */ 
-
-/** @addtogroup STM322xG_EVAL
-  * @{
-  */
-    
-/** @addtogroup STM322xG_EVAL_TS
-  * @{
-  */    
-
-/** @defgroup STM322xG_EVAL_TS_Exported_Types STM322xG EVAL TS Exported Types
-  * @{
-  */
-typedef struct
-{
-  uint16_t TouchDetected;
-  uint16_t x;
-  uint16_t y;
-  uint16_t z;
-}TS_StateTypeDef; 
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_TS_Exported_Constants STM322xG EVAL TS Exported Constants
-  * @{
-  */
-#define TS_SWAP_NONE                    0x00
-#define TS_SWAP_X                       0x01
-#define TS_SWAP_Y                       0x02
-#define TS_SWAP_XY                      0x04
-
-typedef enum 
-{
-  TS_OK       = 0x00,
-  TS_ERROR    = 0x01,
-  TS_TIMEOUT  = 0x02
-}TS_StatusTypeDef;
-/**
-  * @}
-  */ 
-
-/** @defgroup STM322xG_EVAL_TS_Exported_Functions STM322xG EVAL TS Exported Functions
-  * @{
-  */
-uint8_t BSP_TS_Init(uint16_t xSize, uint16_t ySize);
-uint8_t BSP_TS_GetState(TS_StateTypeDef *TS_State);
-uint8_t BSP_TS_ITConfig(void);
-uint8_t BSP_TS_ITGetStatus(void);
-void    BSP_TS_ITClear(void);
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM322xG_EVAL_TS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 168
app/Drivers/BSP/STM32F2xx_Nucleo_144/Release_Notes.html


BIN
app/Drivers/BSP/STM32F2xx_Nucleo_144/STM32F2xx_Nucleo_144_BSP_User_Manual.chm


+ 0 - 881
app/Drivers/BSP/STM32F2xx_Nucleo_144/stm32f2xx_nucleo_144.c

@@ -1,881 +0,0 @@
-/**
-  ******************************************************************************
-  * @file    stm32f2xx_nucleo_144.c
-  * @author  MCD Application Team
-  * @brief   This file provides set of firmware functions to manage:
-  *          - LEDs and push-button available on STM32F2XX-Nucleo-144 Kit 
-  *            from STMicroelectronics
-  *          - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD 
-  *            shield (reference ID 802)
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
-  
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f2xx_nucleo_144.h"
-
-
-/** @defgroup BSP BSP
-  * @{
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144 STM32F2XX NUCLEO 144
-  * @{
-  */   
-    
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL STM32F2XX NUCLEO 144 LOW LEVEL
-  * @brief This file provides set of firmware functions to manage Leds and push-button
-  *        available on STM32F2xx-Nucleo Kit from STMicroelectronics.
-  * @{
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Private_TypesDefinitions STM32F2XX NUCLEO 144 LOW LEVEL Private TypesDefinitions
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Private_Defines STM32F2XX NUCLEO 144 LOW LEVEL Private Defines
-  * @{
-  */ 
-
-/**
-  * @brief STM32F2xx NUCLEO BSP Driver version number V1.0.2
-  */
-#define __STM32F2xx_NUCLEO_BSP_VERSION_MAIN   (0x01) /*!< [31:24] main version */
-#define __STM32F2xx_NUCLEO_BSP_VERSION_SUB1   (0x00) /*!< [23:16] sub1 version */
-#define __STM32F2xx_NUCLEO_BSP_VERSION_SUB2   (0x02) /*!< [15:8]  sub2 version */
-#define __STM32F2xx_NUCLEO_BSP_VERSION_RC     (0x00) /*!< [7:0]  release candidate */ 
-#define __STM32F2xx_NUCLEO_BSP_VERSION        ((__STM32F2xx_NUCLEO_BSP_VERSION_MAIN << 24) |\
-                                               (__STM32F2xx_NUCLEO_BSP_VERSION_SUB1 << 16) |\
-                                               (__STM32F2xx_NUCLEO_BSP_VERSION_SUB2 << 8 ) |\
-                                               (__STM32F2xx_NUCLEO_BSP_VERSION_RC))
-
-/**
-  * @brief LINK SD Card
-  */
-#define SD_DUMMY_BYTE            0xFF
-#define SD_NO_RESPONSE_EXPECTED  0x80
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Private_Macros STM32F2XX NUCLEO 144 LOW LEVEL Private Macros
-  * @{
-  */ 
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Private_Variables STM32F2XX NUCLEO 144 LOW LEVEL Private Variables
-  * @{
-  */ 
-GPIO_TypeDef* GPIO_PORT[LEDn] = {LED1_GPIO_PORT, LED2_GPIO_PORT, LED3_GPIO_PORT};
-
-const uint16_t GPIO_PIN[LEDn] = {LED1_PIN, LED2_PIN, LED3_PIN};
-
-GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {USER_BUTTON_GPIO_PORT}; 
-const uint16_t BUTTON_PIN[BUTTONn] = {USER_BUTTON_PIN}; 
-const uint8_t BUTTON_IRQn[BUTTONn] = {USER_BUTTON_EXTI_IRQn};
-
-/**
- * @brief BUS variables
- */
-
-#ifdef ADAFRUIT_TFT_JOY_SD_ID802
-#ifdef HAL_SPI_MODULE_ENABLED
-uint32_t SpixTimeout = NUCLEO_SPIx_TIMEOUT_MAX; /*<! Value of Timeout when SPI communication fails */
-static SPI_HandleTypeDef hnucleo_Spi; 
-#endif /* HAL_SPI_MODULE_ENABLED */
-
-#ifdef HAL_ADC_MODULE_ENABLED
-static ADC_HandleTypeDef hnucleo_Adc;
-/* ADC channel configuration structure declaration */
-static ADC_ChannelConfTypeDef sConfig;
-#endif /* HAL_ADC_MODULE_ENABLED */
-#endif /* ADAFRUIT_TFT_JOY_SD_ID802 */
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Private_FunctionPrototypes STM32F2XX NUCLEO 144 LOW LEVEL Private FunctionPrototypes
-  * @{
-  */
-#ifdef ADAFRUIT_TFT_JOY_SD_ID802
-
-#ifdef HAL_SPI_MODULE_ENABLED
-static void SPIx_Init(void);
-static void SPIx_Write(uint8_t Value);
-static void SPIx_Error(void);
-static void SPIx_MspInit(SPI_HandleTypeDef *hspi);
-
-/* SD IO functions */
-void SD_IO_Init(void);
-void SD_IO_CSState(uint8_t state);
-void SD_IO_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength);
-uint8_t SD_IO_WriteByte(uint8_t Data);
-
-/* LCD IO functions */
-void LCD_IO_Init(void);
-void LCD_IO_WriteData(uint8_t Data);
-void LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size);
-void LCD_IO_WriteReg(uint8_t LCDReg);
-void LCD_Delay(uint32_t delay);
-#endif /* HAL_SPI_MODULE_ENABLED */
-
-#ifdef HAL_ADC_MODULE_ENABLED
-static void ADCx_Init(void);
-static void ADCx_DeInit(void);
-static void ADCx_MspInit(ADC_HandleTypeDef *hadc);
-static void ADCx_MspDeInit(ADC_HandleTypeDef *hadc);
-#endif /* HAL_ADC_MODULE_ENABLED */
-
-#endif /* ADAFRUIT_TFT_JOY_SD_ID802 */
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Private_Functions STM32F2XX NUCLEO 144 LOW LEVEL Private Functions
-  * @{
-  */ 
-
-/**
-  * @brief  This method returns the STM32F2xx NUCLEO BSP Driver revision
-  * @retval version: 0xXYZR (8bits for each decimal, R for RC)
-  */
-uint32_t BSP_GetVersion(void)
-{
-  return __STM32F2xx_NUCLEO_BSP_VERSION;
-}
-
-/**
-  * @brief  Configures LED GPIO.
-  * @param  Led: Specifies the Led to be configured. 
-  *   This parameter can be one of following parameters:
-  *     @arg  LED1
-  *     @arg  LED2
-  *     @arg  LED3
-  */
-void BSP_LED_Init(Led_TypeDef Led)
-{
-  GPIO_InitTypeDef  GPIO_InitStruct;
-  
-  /* Enable the GPIO_LED Clock */
-  LEDx_GPIO_CLK_ENABLE(Led);
-  
-  /* Configure the GPIO_LED pin */
-  GPIO_InitStruct.Pin = GPIO_PIN[Led];
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
-  
-  HAL_GPIO_Init(GPIO_PORT[Led], &GPIO_InitStruct);
-  HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_RESET); 
-}
-
-/**
-  * @brief  DeInit LEDs.
-  * @param  Led: LED to be de-init. 
-  *   This parameter can be one of the following values:
-  *     @arg  LED1
-  *     @arg  LED2
-  *     @arg  LED3
-  * @note Led DeInit does not disable the GPIO clock nor disable the Mfx 
-  */
-void BSP_LED_DeInit(Led_TypeDef Led)
-{
-  GPIO_InitTypeDef  gpio_init_structure;
-
-  /* Turn off LED */
-  HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_RESET);
-  /* DeInit the GPIO_LED pin */
-  gpio_init_structure.Pin = GPIO_PIN[Led];
-  HAL_GPIO_DeInit(GPIO_PORT[Led], gpio_init_structure.Pin);
-}
-
-/**
-  * @brief  Turns selected LED On.
-  * @param  Led: Specifies the Led to be set on. 
-  *   This parameter can be one of following parameters:
-  *     @arg LED2
-  */
-void BSP_LED_On(Led_TypeDef Led)
-{
-  HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_SET); 
-}
-
-/**
-  * @brief  Turns selected LED Off.
-  * @param  Led: Specifies the Led to be set off. 
-  *   This parameter can be one of following parameters:
-  *     @arg  LED1
-  *     @arg  LED2
-  *     @arg  LED3
-  */
-void BSP_LED_Off(Led_TypeDef Led)
-{
-  HAL_GPIO_WritePin(GPIO_PORT[Led], GPIO_PIN[Led], GPIO_PIN_RESET); 
-}
-
-/**
-  * @brief  Toggles the selected LED.
-  * @param  Led: Specifies the Led to be toggled. 
-  *   This parameter can be one of following parameters:
-  *     @arg  LED1
-  *     @arg  LED2
-  *     @arg  LED3 
-  */
-void BSP_LED_Toggle(Led_TypeDef Led)
-{
-  HAL_GPIO_TogglePin(GPIO_PORT[Led], GPIO_PIN[Led]);
-}
-
-/**
-  * @brief  Configures Button GPIO and EXTI Line.
-  * @param  Button: Specifies the Button to be configured.
-  *   This parameter should be: BUTTON_USER
-  * @param  ButtonMode: Specifies Button mode.
-  *   This parameter can be one of following parameters:   
-  *     @arg BUTTON_MODE_GPIO: Button will be used as simple IO 
-  *     @arg BUTTON_MODE_EXTI: Button will be connected to EXTI line with interrupt
-  *                            generation capability  
-  */
-void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode)
-{
-  GPIO_InitTypeDef GPIO_InitStruct;
-  
-  /* Enable the BUTTON Clock */
-  BUTTONx_GPIO_CLK_ENABLE(Button);
-  
-  if(ButtonMode == BUTTON_MODE_GPIO)
-  {
-    /* Configure Button pin as input */
-    GPIO_InitStruct.Pin = BUTTON_PIN[Button];
-    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
-    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
-    GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
-    HAL_GPIO_Init(BUTTON_PORT[Button], &GPIO_InitStruct);
-  }
-  
-  if(ButtonMode == BUTTON_MODE_EXTI)
-  {
-    /* Configure Button pin as input with External interrupt */
-    GPIO_InitStruct.Pin = BUTTON_PIN[Button];
-    GPIO_InitStruct.Pull = GPIO_NOPULL;
-    GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; 
-    HAL_GPIO_Init(BUTTON_PORT[Button], &GPIO_InitStruct);
-    
-    /* Enable and set Button EXTI Interrupt to the lowest priority */
-    HAL_NVIC_SetPriority((IRQn_Type)(BUTTON_IRQn[Button]), 0x0F, 0x00);
-    HAL_NVIC_EnableIRQ((IRQn_Type)(BUTTON_IRQn[Button]));
-  }
-}
-
-/**
-  * @brief  Push Button DeInit.
-  * @param  Button: Button to be configured
-  *   This parameter should be: BUTTON_USER
-  * @note PB DeInit does not disable the GPIO clock
-  */
-void BSP_PB_DeInit(Button_TypeDef Button)
-{
-  GPIO_InitTypeDef gpio_init_structure;
-
-  gpio_init_structure.Pin = BUTTON_PIN[Button];
-  HAL_NVIC_DisableIRQ((IRQn_Type)(BUTTON_IRQn[Button]));
-  HAL_GPIO_DeInit(BUTTON_PORT[Button], gpio_init_structure.Pin);
-}
-
-/**
-  * @brief  Returns the selected Button state.
-  * @param  Button: Specifies the Button to be checked.
-  *   This parameter should be: BUTTON_USER  
-  * @retval The Button GPIO pin value.
-  */
-uint32_t BSP_PB_GetState(Button_TypeDef Button)
-{
-  return HAL_GPIO_ReadPin(BUTTON_PORT[Button], BUTTON_PIN[Button]);
-}
-
-/******************************************************************************
-                            BUS OPERATIONS
-*******************************************************************************/
-#ifdef ADAFRUIT_TFT_JOY_SD_ID802
-
-/******************************* SPI ********************************/
-#ifdef HAL_SPI_MODULE_ENABLED
-
-/**
-  * @brief  Initializes SPI MSP.
-  */
-static void SPIx_MspInit(SPI_HandleTypeDef *hspi)
-{
-  GPIO_InitTypeDef  GPIO_InitStruct;  
-  
-  /*** Configure the GPIOs ***/  
-  /* Enable GPIO clock */
-  NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE();
-  NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE();
-  
-  /* Configure SPI SCK */
-  GPIO_InitStruct.Pin = NUCLEO_SPIx_SCK_PIN;
-  GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
-  GPIO_InitStruct.Pull  = GPIO_PULLUP;
-  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
-  GPIO_InitStruct.Alternate = NUCLEO_SPIx_SCK_AF;
-  HAL_GPIO_Init(NUCLEO_SPIx_SCK_GPIO_PORT, &GPIO_InitStruct);
-
-  /* Configure SPI MISO and MOSI */ 
-  GPIO_InitStruct.Pin = NUCLEO_SPIx_MOSI_PIN;
-  GPIO_InitStruct.Alternate = NUCLEO_SPIx_MISO_MOSI_AF;
-  GPIO_InitStruct.Pull  = GPIO_PULLDOWN;
-  HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &GPIO_InitStruct);
-  
-  GPIO_InitStruct.Pin = NUCLEO_SPIx_MISO_PIN;
-  GPIO_InitStruct.Pull  = GPIO_PULLDOWN;
-  HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &GPIO_InitStruct);
-
-  /*** Configure the SPI peripheral ***/ 
-  /* Enable SPI clock */
-  NUCLEO_SPIx_CLK_ENABLE();
-}
-
-/**
-  * @brief  Initializes SPI HAL.
-  */
-static void SPIx_Init(void)
-{
-  if(HAL_SPI_GetState(&hnucleo_Spi) == HAL_SPI_STATE_RESET)
-  {
-    /* SPI Config */
-    hnucleo_Spi.Instance = NUCLEO_SPIx;
-    /* SPI configuration contraints
-          - ST7735 LCD SPI interface max baudrate is 15MHz for write and 6.66MHz for read
-            Since the provided driver doesn't use read capability from LCD, only constraint 
-            on write baudrate is considered.
-          - SD card SPI interface max baudrate is 25MHz for write/read
-       to feat these constraints SPI baudrate is set to:
-	      - For STM32F207xx devices: 10,5 MHz maximum (PCLK2/SPI_BAUDRATEPRESCALER_8 = 84 MHz/8 = 10,5 MHz)
-    */ 
-    hnucleo_Spi.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
-    hnucleo_Spi.Init.Direction = SPI_DIRECTION_2LINES;
-    hnucleo_Spi.Init.CLKPhase = SPI_PHASE_2EDGE;
-    hnucleo_Spi.Init.CLKPolarity = SPI_POLARITY_HIGH;
-    hnucleo_Spi.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED;
-    hnucleo_Spi.Init.CRCPolynomial = 7;
-    hnucleo_Spi.Init.DataSize = SPI_DATASIZE_8BIT;
-    hnucleo_Spi.Init.FirstBit = SPI_FIRSTBIT_MSB;
-    hnucleo_Spi.Init.NSS = SPI_NSS_SOFT;
-    hnucleo_Spi.Init.TIMode = SPI_TIMODE_DISABLED;
-    hnucleo_Spi.Init.Mode = SPI_MODE_MASTER;
-
-    SPIx_MspInit(&hnucleo_Spi);
-    HAL_SPI_Init(&hnucleo_Spi);
-  }
-}
-
-/**
-  * @brief  SPI Write a byte to device
-  * @param  DataIn: value to be written
-  * @param  DataOut: value to read
-  * @param  DataLegnth: length of data
-  */
-static void SPIx_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLegnth)
-{
-  HAL_StatusTypeDef status = HAL_OK;
-
-  status = HAL_SPI_TransmitReceive(&hnucleo_Spi, (uint8_t*) DataIn, DataOut, DataLegnth, SpixTimeout);
-    
-  /* Check the communication status */
-  if(status != HAL_OK)
-  {
-    /* Execute user timeout callback */
-    SPIx_Error();
-  }
-}
-
-/**
-  * @brief  SPI Write a byte to device.
-  * @param  Value: value to be written
-  */
-static void SPIx_Write(uint8_t Value)
-{
-  HAL_StatusTypeDef status = HAL_OK;
-  uint8_t data;
-
-  status = HAL_SPI_TransmitReceive(&hnucleo_Spi, (uint8_t*) &Value, &data, 1, SpixTimeout);
-  
-  /* Check the communication status */
-  if(status != HAL_OK)
-  {
-    /* Execute user timeout callback */
-    SPIx_Error();
-  }
-}
-
-/**
-  * @brief  SPI error treatment function
-  */
-static void SPIx_Error (void)
-{
-  /* De-initialize the SPI communication BUS */
-  HAL_SPI_DeInit(&hnucleo_Spi);
-  
-  /* Re-Initiaize the SPI communication BUS */
-  SPIx_Init();
-}
-
-/******************************************************************************
-                            LINK OPERATIONS
-*******************************************************************************/
-
-/********************************* LINK SD ************************************/
-/**
-  * @brief  Initializes the SD Card and put it into StandBy State (Ready for 
-  *         data transfer).
-  */
-void SD_IO_Init(void)
-{
-  GPIO_InitTypeDef  GPIO_InitStruct;
-  uint8_t counter;
-
-  /* SD_CS_GPIO Periph clock enable */
-  SD_CS_GPIO_CLK_ENABLE();
-
-  /* Configure SD_CS_PIN pin: SD Card CS pin */
-  GPIO_InitStruct.Pin = SD_CS_PIN;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_PULLUP;
-  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
-  HAL_GPIO_Init(SD_CS_GPIO_PORT, &GPIO_InitStruct);
-
-
-  /*  LCD chip select line perturbs SD also when the LCD is not used */
-  /*  this is a workaround to avoid sporadic failures during r/w operations */ 
-  LCD_CS_GPIO_CLK_ENABLE();
-  GPIO_InitStruct.Pin = LCD_CS_PIN;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
-  HAL_GPIO_Init(LCD_CS_GPIO_PORT, &GPIO_InitStruct);
-  LCD_CS_HIGH();
-
-  /*------------Put SD in SPI mode--------------*/
-  /* SD SPI Config */
-  SPIx_Init();
-  
-  /* SD chip select high */
-  SD_CS_HIGH();
-  
-  /* Send dummy byte 0xFF, 10 times with CS high */
-  /* Rise CS and MOSI for 80 clocks cycles */
-  for (counter = 0; counter <= 9; counter++)
-  {
-    /* Send dummy byte 0xFF */
-    SD_IO_WriteByte(SD_DUMMY_BYTE);
-  }
-}
-
-/**
-  * @brief  Set the SD_CS pin.
-  * @param  val: pin value.
-  */
-void SD_IO_CSState(uint8_t val)
-{
-  if(val == 1) 
-  {
-    SD_CS_HIGH();
-  }
-  else
-  {
-    SD_CS_LOW();
-  }
-}
-
-/**
-  * @brief  Write a byte on the SD.
-  * @param  DataIn: byte to send.
-  * @param  DataOut: byte to read
-  * @param  DataLength: length of data
-  */
-void SD_IO_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength)
-{
-  /* Send the byte */
-  SPIx_WriteReadData(DataIn, DataOut, DataLength);
-}
-
-/**
-  * @brief  Writes a byte on the SD.
-  * @param  Data: byte to send.
-  */
-uint8_t SD_IO_WriteByte(uint8_t Data)
-{
-  uint8_t tmp;
-  /* Send the byte */
-  SPIx_WriteReadData(&Data,&tmp,1);
-  return tmp;
-}
-
-/********************************* LINK LCD ***********************************/
-/**
-  * @brief  Initializes the LCD
-  */
-void LCD_IO_Init(void)
-{
-  GPIO_InitTypeDef  GPIO_InitStruct;
-   
-  /* LCD_CS_GPIO and LCD_DC_GPIO Periph clock enable */
-  LCD_CS_GPIO_CLK_ENABLE();
-  LCD_DC_GPIO_CLK_ENABLE();
-  
-  /* Configure LCD_CS_PIN pin: LCD Card CS pin */
-  GPIO_InitStruct.Pin = LCD_CS_PIN;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
-  HAL_GPIO_Init(LCD_CS_GPIO_PORT, &GPIO_InitStruct);
-
-  /* Configure LCD_DC_PIN pin: LCD Card DC pin */
-  GPIO_InitStruct.Pin = LCD_DC_PIN;
-  HAL_GPIO_Init(LCD_DC_GPIO_PORT, &GPIO_InitStruct);
-  
-  /* LCD chip select high */
-  LCD_CS_HIGH();
-  
-  /* LCD SPI Config */
-  SPIx_Init();
-}
-
-/**
-  * @brief  Writes command to select the LCD register.
-  * @param  LCDReg: Address of the selected register.
-  */
-void LCD_IO_WriteReg(uint8_t LCDReg)
-{
-  /* Reset LCD control line CS */
-  LCD_CS_LOW();
-  
-  /* Set LCD data/command line DC to Low */
-  LCD_DC_LOW();
-    
-  /* Send Command */
-  SPIx_Write(LCDReg);
-  
-  /* Deselect : Chip Select high */
-  LCD_CS_HIGH();
-}
-
-/**
-  * @brief  Writes data to select the LCD register.
-  *         This function must be used after st7735_WriteReg() function
-  * @param  Data: data to write to the selected register.
-  */
-void LCD_IO_WriteData(uint8_t Data)
-{
-  /* Reset LCD control line CS */
-  LCD_CS_LOW();
-  
-  /* Set LCD data/command line DC to High */
-  LCD_DC_HIGH();
-
-  /* Send Data */
-  SPIx_Write(Data);
-  
-  /* Deselect : Chip Select high */
-  LCD_CS_HIGH();
-}
-
-/**
-  * @brief  Write register value.
-  * @param  pData Pointer on the register value
-  * @param  Size Size of byte to transmit to the register
-  */
-void LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size)
-{
-  uint32_t counter = 0;
-  __IO uint32_t data = 0;
-  
-  /* Reset LCD control line CS */
-  LCD_CS_LOW();
-  
-  /* Set LCD data/command line DC to High */
-  LCD_DC_HIGH();
-
-  if (Size == 1)
-  {
-    /* Only 1 byte to be sent to LCD - general interface can be used */
-    /* Send Data */
-    SPIx_Write(*pData);
-  }
-  else
-  {
-    /* Several data should be sent in a raw */
-    /* Direct SPI accesses for optimization */
-    for (counter = Size; counter != 0; counter--)
-    {
-      while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
-      {
-      }  
-      /* Need to invert bytes for LCD*/
-      *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *(pData+1);
-      
-      while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
-      {
-      }  
-      *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *pData;
-      counter--;
-      pData += 2;
-    }
-    
-    /* Wait until the bus is ready before releasing Chip select */ 
-    while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_BSY) != RESET)
-    {
-    }  
-  } 
-
-  /* Empty the Rx fifo */
-  data = *(&hnucleo_Spi.Instance->DR);
-  UNUSED(data);  /* Remove GNU warning */
-
-  /* Deselect : Chip Select high */
-  LCD_CS_HIGH();
-}
-
-/**
-  * @brief  Wait for loop in ms.
-  * @param  Delay in ms.
-  */
-void LCD_Delay(uint32_t Delay)
-{
-  HAL_Delay(Delay);
-}
-#endif /* HAL_SPI_MODULE_ENABLED */
-
-/******************************* ADC driver ********************************/
-#ifdef HAL_ADC_MODULE_ENABLED
-
-/**
-  * @brief  Initializes ADC MSP.
-  */
-static void ADCx_MspInit(ADC_HandleTypeDef *hadc)
-{
-  GPIO_InitTypeDef  GPIO_InitStruct;
-  
-  /*** Configure the GPIOs ***/  
-  /* Enable GPIO clock */
-  NUCLEO_ADCx_GPIO_CLK_ENABLE();
-  
-  /* Configure the selected ADC Channel as analog input */
-  GPIO_InitStruct.Pin = NUCLEO_ADCx_GPIO_PIN ;
-  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
-  GPIO_InitStruct.Pull = GPIO_NOPULL;
-  HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &GPIO_InitStruct);
-
-  /*** Configure the ADC peripheral ***/ 
-  /* Enable ADC clock */
-  NUCLEO_ADCx_CLK_ENABLE(); 
-}
-
-/**
-  * @brief  DeInitializes ADC MSP.
-  * @note ADC DeInit does not disable the GPIO clock
-  */
-static void ADCx_MspDeInit(ADC_HandleTypeDef *hadc)
-{
-  GPIO_InitTypeDef  GPIO_InitStruct;
-
-  /*** DeInit the ADC peripheral ***/ 
-  /* Disable ADC clock */
-  NUCLEO_ADCx_CLK_DISABLE(); 
-
-  /* Configure the selected ADC Channel as analog input */
-  GPIO_InitStruct.Pin = NUCLEO_ADCx_GPIO_PIN ;
-  HAL_GPIO_DeInit(NUCLEO_ADCx_GPIO_PORT, GPIO_InitStruct.Pin);
-
-  /* Disable GPIO clock has to be done by the application*/
-  /* NUCLEO_ADCx_GPIO_CLK_DISABLE(); */
-}
-
-/**
-  * @brief  Initializes ADC HAL.
-  */
-static void ADCx_Init(void)
-{
-  if(HAL_ADC_GetState(&hnucleo_Adc) == HAL_ADC_STATE_RESET)
-  {
-    /* ADC Config */
-    hnucleo_Adc.Instance                   = NUCLEO_ADCx;
-    hnucleo_Adc.Init.ClockPrescaler        = ADC_CLOCKPRESCALER_PCLK_DIV4; /* (must not exceed 36MHz) */
-    hnucleo_Adc.Init.Resolution            = ADC_RESOLUTION12b;
-    hnucleo_Adc.Init.DataAlign             = ADC_DATAALIGN_RIGHT;
-    hnucleo_Adc.Init.ContinuousConvMode    = DISABLE;
-    hnucleo_Adc.Init.DiscontinuousConvMode = DISABLE;
-    hnucleo_Adc.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_NONE;
-    hnucleo_Adc.Init.EOCSelection          = EOC_SINGLE_CONV;
-    hnucleo_Adc.Init.NbrOfConversion       = 1;
-    hnucleo_Adc.Init.DMAContinuousRequests = DISABLE;    
-    
-    ADCx_MspInit(&hnucleo_Adc);
-    HAL_ADC_Init(&hnucleo_Adc);
-  }
-}
-
-/**
-  * @brief  Initializes ADC HAL.
-  */
-static void ADCx_DeInit(void)
-{
-  hnucleo_Adc.Instance   = NUCLEO_ADCx;
-    
-  HAL_ADC_DeInit(&hnucleo_Adc);
-  ADCx_MspDeInit(&hnucleo_Adc);
-}
-
-/******************************* LINK JOYSTICK ********************************/
-
-/**
-  * @brief  Configures joystick available on adafruit 1.8" TFT shield 
-  *         managed through ADC to detect motion.
-  * @retval Joystickstatus (0=> success, 1=> fail) 
-  */
-uint8_t BSP_JOY_Init(void)
-{
-  uint8_t status = HAL_ERROR;
-   
-  ADCx_Init();
-   
-  /* Select the ADC Channel to be converted */
-  sConfig.Channel      = NUCLEO_ADCx_CHANNEL;
-  sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
-  sConfig.Rank         = 1;
-  status = HAL_ADC_ConfigChannel(&hnucleo_Adc, &sConfig);
-  
-  /* Return Joystick initialization status */
-  return status;
-}
-
-/**
-  * @brief  DeInit joystick GPIOs.
-  * @note   JOY DeInit does not disable the Mfx, just set the Mfx pins in Off mode
-  */
-void BSP_JOY_DeInit(void)
-{
-  ADCx_DeInit();
-}
-
-/**
-  * @brief  Returns the Joystick key pressed.
-  * @note   To know which Joystick key is pressed we need to detect the voltage
-  *         level on each key output
-  *           - None  : 3.3 V / 4095
-  *           - SEL   : 1.055 V / 1308
-  *           - DOWN  : 0.71 V / 88
-  *           - LEFT  : 3.0 V / 3720 
-  *           - RIGHT : 0.595 V / 737
-  *           - UP    : 1.65 V / 2046
-  * @retval JOYState_TypeDef: Code of the Joystick key pressed.
-  */
-JOYState_TypeDef BSP_JOY_GetState(void)
-{
-  JOYState_TypeDef state;
-  uint16_t  keyconvertedvalue = 0;
-  
-  /* Start the conversion process */
-  HAL_ADC_Start(&hnucleo_Adc);
-  
-  /* Wait for the end of conversion */
-  HAL_ADC_PollForConversion(&hnucleo_Adc, 10);
-  
-  /* Check if the continuous conversion of regular channel is finished */
-  if((HAL_ADC_GetState(&hnucleo_Adc) & HAL_ADC_STATE_EOC_REG) == HAL_ADC_STATE_EOC_REG)
-  {
-    /* Get the converted value of regular channel */
-    keyconvertedvalue = HAL_ADC_GetValue(&hnucleo_Adc);
-  }
-  
-  if((keyconvertedvalue > 2010) && (keyconvertedvalue < 2090))
-  {
-    state = JOY_UP;
-  }
-  else if((keyconvertedvalue > 680) && (keyconvertedvalue < 780))
-  {
-    state = JOY_RIGHT;
-  }
-  else if((keyconvertedvalue > 1270) && (keyconvertedvalue < 1350))
-  {
-    state = JOY_SEL;
-  }
-  else if((keyconvertedvalue > 50) && (keyconvertedvalue < 130))
-  {
-    state = JOY_DOWN;
-  }
-  else if((keyconvertedvalue > 3680) && (keyconvertedvalue < 3760))
-  {
-    state = JOY_LEFT;
-  }
-  else
-  {
-    state = JOY_NONE;
-  }
-  
-  /* Loop while a key is pressed */
-  if(state != JOY_NONE)
-  { 
-    keyconvertedvalue = HAL_ADC_GetValue(&hnucleo_Adc);  
-  }
-  /* Return the code of the Joystick key pressed */
-  return state;
-}
-#endif /* HAL_ADC_MODULE_ENABLED */
-
-#endif /* ADAFRUIT_TFT_JOY_SD_ID802 */
-
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */    
-
-/**
-  * @}
-  */ 
-    
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 0 - 345
app/Drivers/BSP/STM32F2xx_Nucleo_144/stm32f2xx_nucleo_144.h

@@ -1,345 +0,0 @@
-/** 
-  ******************************************************************************
-  * @file    stm32f2xx_nucleo_144.h
-  * @author  MCD Application Team
-  * @brief   This file contains definitions for:
-  *          - LEDs and push-button available on STM32F2XX-Nucleo-144 Kit 
-  *            from STMicroelectronics
-  *          - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD 
-  *            shield (reference ID 802)
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************  
-  */ 
-  
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32F2XX_NUCLEO_144_H
-#define __STM32F2XX_NUCLEO_144_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f2xx_hal.h"
-   
-/* To be defined only if the board is provided with the related shield */
-/* https://www.adafruit.com/products/802 */
-#ifndef ADAFRUIT_TFT_JOY_SD_ID802
-#define ADAFRUIT_TFT_JOY_SD_ID802
-#endif
-   
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup STM32F2XX_NUCLEO_144
-  * @{
-  */
-
-/** @addtogroup STM32F2XX_NUCLEO_144_LOW_LEVEL
-  * @{
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Exported_Types STM32F2XX NUCLEO 144 LOW LEVEL Exported Types
-  * @{
-  */
-typedef enum 
-{
-  LED1 = 0,
-  LED_GREEN = LED1,
-  LED2 = 1,
-  LED_BLUE = LED2,
-  LED3 = 2,
-  LED_RED = LED3
-}Led_TypeDef;
-
-typedef enum 
-{  
-  BUTTON_USER = 0,
-  /* Alias */
-  BUTTON_KEY = BUTTON_USER
-}Button_TypeDef;
-
-typedef enum 
-{  
-  BUTTON_MODE_GPIO = 0,
-  BUTTON_MODE_EXTI = 1
-}ButtonMode_TypeDef;
-
-typedef enum 
-{ 
-  JOY_NONE  = 0,
-  JOY_SEL   = 1,
-  JOY_DOWN  = 2,
-  JOY_LEFT  = 3,
-  JOY_RIGHT = 4,
-  JOY_UP    = 5
-}JOYState_TypeDef;
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Exported_Constants STM32F2XX NUCLEO 144 LOW LEVEL Exported Constants
-  * @{
-  */ 
-
-/** 
-  * @brief Define for STM32F2XX_NUCLEO_144 board  
-  */ 
-#if !defined (USE_STM32F2XX_NUCLEO_144)
- #define USE_STM32F2XX_NUCLEO_144
-#endif
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_LED STM32F2XX NUCLEO 144 LOW LEVEL LED
-  * @{
-  */
-#define LEDn                                    3
-
-#define LED1_PIN                                GPIO_PIN_0
-#define LED1_GPIO_PORT                          GPIOB
-#define LED1_GPIO_CLK_ENABLE()                  __HAL_RCC_GPIOB_CLK_ENABLE()
-#define LED1_GPIO_CLK_DISABLE()                 __HAL_RCC_GPIOB_CLK_DISABLE()  
-
-#define LED2_PIN                                GPIO_PIN_7
-#define LED2_GPIO_PORT                          GPIOB
-#define LED2_GPIO_CLK_ENABLE()                  __HAL_RCC_GPIOB_CLK_ENABLE()
-#define LED2_GPIO_CLK_DISABLE()                 __HAL_RCC_GPIOB_CLK_DISABLE()  
-
-#define LED3_PIN                                GPIO_PIN_14
-#define LED3_GPIO_PORT                          GPIOB
-#define LED3_GPIO_CLK_ENABLE()                  __HAL_RCC_GPIOB_CLK_ENABLE()
-#define LED3_GPIO_CLK_DISABLE()                 __HAL_RCC_GPIOB_CLK_DISABLE()  
-
-#define LEDx_GPIO_CLK_ENABLE(__INDEX__)   do { if((__INDEX__) == 0) {__HAL_RCC_GPIOB_CLK_ENABLE();} else\
-                                                                    {__HAL_RCC_GPIOB_CLK_ENABLE();   }} while(0)	
-#define LEDx_GPIO_CLK_DISABLE(__INDEX__)  do { if((__INDEX__) == 0) {__HAL_RCC_GPIOB_CLK_DISABLE();} else\
-                                                                    {__HAL_RCC_GPIOB_CLK_DISABLE();   }} while(0)	
-/**
-  * @}
-  */ 
-  
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_BUTTON STM32F2XX NUCLEO 144 LOW LEVEL BUTTON
-  * @{
-  */  
-#define BUTTONn                                 1  
-
-/**
- * @brief Key push-button
- */
-#define USER_BUTTON_PIN                          GPIO_PIN_13
-#define USER_BUTTON_GPIO_PORT                    GPIOC
-#define USER_BUTTON_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOC_CLK_ENABLE()
-#define USER_BUTTON_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOC_CLK_DISABLE()
-#define USER_BUTTON_EXTI_LINE                    GPIO_PIN_13
-#define USER_BUTTON_EXTI_IRQn                    EXTI15_10_IRQn
-
-#define BUTTONx_GPIO_CLK_ENABLE(__INDEX__)      USER_BUTTON_GPIO_CLK_ENABLE()
-#define BUTTONx_GPIO_CLK_DISABLE(__INDEX__)     USER_BUTTON_GPIO_CLK_DISABLE() 
-
-/* Aliases */
-#define KEY_BUTTON_PIN                       USER_BUTTON_PIN
-#define KEY_BUTTON_GPIO_PORT                 USER_BUTTON_GPIO_PORT
-#define KEY_BUTTON_GPIO_CLK_ENABLE()         USER_BUTTON_GPIO_CLK_ENABLE()
-#define KEY_BUTTON_GPIO_CLK_DISABLE()        USER_BUTTON_GPIO_CLK_DISABLE()
-#define KEY_BUTTON_EXTI_LINE                 USER_BUTTON_EXTI_LINE
-#define KEY_BUTTON_EXTI_IRQn                 USER_BUTTON_EXTI_IRQn
-
-
-/**
-  * @brief OTG_FS1 OVER_CURRENT and POWER_SWITCH Pins definition
-  */
-
-
-#define OTG_FS1_OVER_CURRENT_PIN                  GPIO_PIN_7
-#define OTG_FS1_OVER_CURRENT_PORT                 GPIOG
-#define OTG_FS1_OVER_CURRENT_PORT_CLK_ENABLE()     __HAL_RCC_GPIOG_CLK_ENABLE()
-
-#define OTG_FS1_POWER_SWITCH_PIN                  GPIO_PIN_6
-#define OTG_FS1_POWER_SWITCH_PORT                 GPIOG
-#define OTG_FS1_POWER_SWITCH_PORT_CLK_ENABLE()     __HAL_RCC_GPIOG_CLK_ENABLE()
-
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_BUS STM32F2XX NUCLEO 144 LOW LEVEL BUS
-  * @{
-  */
-/*############################### SPI_A #######################################*/
-#ifdef HAL_SPI_MODULE_ENABLED
-
-#define NUCLEO_SPIx                                     SPI1
-#define NUCLEO_SPIx_CLK_ENABLE()                        __HAL_RCC_SPI1_CLK_ENABLE()
-
-#define NUCLEO_SPIx_SCK_AF                              GPIO_AF5_SPI1
-#define NUCLEO_SPIx_SCK_GPIO_PORT                       GPIOA
-#define NUCLEO_SPIx_SCK_PIN                             GPIO_PIN_5
-#define NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE()               __HAL_RCC_GPIOA_CLK_ENABLE()
-#define NUCLEO_SPIx_SCK_GPIO_CLK_DISABLE()              __HAL_RCC_GPIOA_CLK_DISABLE()
-
-#define NUCLEO_SPIx_MISO_MOSI_AF                        GPIO_AF5_SPI1
-#define NUCLEO_SPIx_MISO_MOSI_GPIO_PORT                 GPIOA
-#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOA_CLK_ENABLE()
-#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOA_CLK_DISABLE()
-#define NUCLEO_SPIx_MISO_PIN                            GPIO_PIN_6
-#define NUCLEO_SPIx_MOSI_PIN                            GPIO_PIN_7
-/* Maximum Timeout values for flags waiting loops. These timeout are not based
-   on accurate values, they just guarantee that the application will not remain
-   stuck if the SPI communication is corrupted.
-   You may modify these timeout values depending on CPU frequency and application
-   conditions (interrupts routines ...). */   
-#define NUCLEO_SPIx_TIMEOUT_MAX                   1000
-
-#define NUCLEO_SPIx_CS_GPIO_PORT                        GPIOD
-#define NUCLEO_SPIx_CS_PIN                              GPIO_PIN_14
-#define NUCLEO_SPIx_CS_GPIO_CLK_ENABLE()                __HAL_RCC_GPIOD_CLK_ENABLE()
-#define NUCLEO_SPIx_CS_GPIO_CLK_DISABLE()               __HAL_RCC_GPIOD_CLK_DISABLE()
-
-#define SPIx__CS_LOW()       HAL_GPIO_WritePin(NUCLEO_SPIx_CS_GPIO_PORT, NUCLEO_SPIx_CS_PIN, GPIO_PIN_RESET)
-#define SPIx__CS_HIGH()      HAL_GPIO_WritePin(NUCLEO_SPIx_CS_GPIO_PORT, NUCLEO_SPIx_CS_PIN, GPIO_PIN_SET)
-
-/**
-  * @brief  SD Control Lines management
-  */
-#define SD_CS_LOW()       HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_RESET)
-#define SD_CS_HIGH()      HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_SET)
-
-/**
-  * @brief  LCD Control Lines management
-  */
-#define LCD_CS_LOW()      HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_RESET)
-#define LCD_CS_HIGH()     HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_SET)
-#define LCD_DC_LOW()      HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_RESET)
-#define LCD_DC_HIGH()     HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_SET)
-     
-/**
-  * @brief  SD Control Interface pins (shield D4)
-  */
-#define SD_CS_PIN                                 GPIO_PIN_14
-#define SD_CS_GPIO_PORT                           GPIOF
-#define SD_CS_GPIO_CLK_ENABLE()                 __HAL_RCC_GPIOF_CLK_ENABLE()
-#define SD_CS_GPIO_CLK_DISABLE()                __HAL_RCC_GPIOF_CLK_DISABLE()
-
-/**
-  * @brief  LCD Control Interface pins (shield D10)
-  */
-#define LCD_CS_PIN                                 GPIO_PIN_14
-#define LCD_CS_GPIO_PORT                           GPIOD
-#define LCD_CS_GPIO_CLK_ENABLE()                 __HAL_RCC_GPIOD_CLK_ENABLE()
-#define LCD_CS_GPIO_CLK_DISABLE()                __HAL_RCC_GPIOD_CLK_DISABLE()
-    
-/**
-  * @brief  LCD Data/Command Interface pins (shield D8)
-  */
-#define LCD_DC_PIN                                 GPIO_PIN_12
-#define LCD_DC_GPIO_PORT                           GPIOF
-#define LCD_DC_GPIO_CLK_ENABLE()                 __HAL_RCC_GPIOF_CLK_ENABLE()
-#define LCD_DC_GPIO_CLK_DISABLE()                __HAL_RCC_GPIOF_CLK_DISABLE()
-
-#endif /* HAL_SPI_MODULE_ENABLED */
-
-/*################################ ADCx for Nucleo 144 board ######################################*/
-/**
-  * @brief  ADCx Interface pins
-  *         used to detect motion of Joystick available on Adafruit 1.8" TFT shield
-  */
-  
-#ifdef HAL_ADC_MODULE_ENABLED
-  
-#define NUCLEO_ADCx                        ADC3
-#define NUCLEO_ADCx_CLK_ENABLE()         __HAL_RCC_ADC3_CLK_ENABLE()
-#define NUCLEO_ADCx_CLK_DISABLE()        __HAL_RCC_ADC3_CLK_DISABLE()
-
-#define NUCLEO_ADCx_CHANNEL                ADC_CHANNEL_9
-   
-#define NUCLEO_ADCx_GPIO_PORT              GPIOF
-#define NUCLEO_ADCx_GPIO_PIN               GPIO_PIN_3
-#define NUCLEO_ADCx_GPIO_CLK_ENABLE()    __HAL_RCC_GPIOF_CLK_ENABLE()
-#define NUCLEO_ADCx_GPIO_CLK_DISABLE()   __HAL_RCC_GPIOF_CLK_DISABLE()
-
-#endif /* HAL_ADC_MODULE_ENABLED */
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Exported_Macros STM32F2XX NUCLEO 144 LOW LEVEL Exported Macros
-  * @{
-  */  
-/**
-  * @}
-  */ 
-
-/** @defgroup STM32F2XX_NUCLEO_144_LOW_LEVEL_Exported_Functions STM32F2XX NUCLEO 144 LOW LEVEL Exported Functions
-  * @{
-  */
-uint32_t         BSP_GetVersion(void);  
-void             BSP_LED_Init(Led_TypeDef Led);
-void             BSP_LED_DeInit(Led_TypeDef Led);
-void             BSP_LED_On(Led_TypeDef Led);
-void             BSP_LED_Off(Led_TypeDef Led);
-void             BSP_LED_Toggle(Led_TypeDef Led);
-void             BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
-void             BSP_PB_DeInit(Button_TypeDef Button);
-uint32_t         BSP_PB_GetState(Button_TypeDef Button);
-#ifdef HAL_ADC_MODULE_ENABLED
-uint8_t          BSP_JOY_Init(void);
-JOYState_TypeDef BSP_JOY_GetState(void);
-void             BSP_JOY_DeInit(void);
-#endif /* HAL_ADC_MODULE_ENABLED */
-
-  
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-  */
-
-/**
-  * @}
-  */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM32F2XX_NUCLEO_144_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

File diff suppressed because it is too large
+ 0 - 1961
app/Drivers/STM32F2xx_HAL_Driver/Release_Notes.html


BIN
app/Drivers/STM32F2xx_HAL_Driver/STM32F215xx_User_Manual.chm


BIN
app/Drivers/STM32F2xx_HAL_Driver/STM32F217xx_User_Manual.chm


File diff suppressed because it is too large
+ 0 - 1700
app/Drivers/STM32F2xx_HAL_Driver/_htmresc/mini-st.css


BIN
app/Drivers/STM32F2xx_HAL_Driver/_htmresc/st_logo.png