gpio.h
上传用户:yyyd609
上传日期:2022-07-18
资源大小:183k
文件大小:4k
源码类别:

微处理器开发

开发平台:

C/C++

  1. /******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
  2. * File Name          : gpio.h
  3. * Author             : MCD Application Team
  4. * Date First Issued  : 08/06/2003
  5. * Description        : This file contains all the functions prototypes for the
  6. *                      GPIO software library.
  7. ********************************************************************************
  8. * History:
  9. *  01/01/2004 : V1.2
  10. *  14/07/2004 : V1.3
  11. *******************************************************************************/
  12. #ifndef __gpio_H
  13. #define __gpio_H
  14. #include "71x_lib.h"
  15. typedef enum
  16. {
  17.   GPIO_HI_AIN_TRI,
  18.   GPIO_IN_TRI_TTL,
  19.   GPIO_IN_TRI_CMOS,
  20.   GPIO_INOUT_WP,
  21.   GPIO_OUT_OD,
  22.   GPIO_OUT_PP,
  23.   GPIO_AF_OD,
  24.   GPIO_AF_PP
  25. } GpioPinMode_TypeDef;
  26. #define GPIO_LSB  0x00
  27. #define GPIO_MSB  0x08
  28. /*******************************************************************************
  29. * Function Name  : GPIO_Config
  30. * Description    : Configure the GPIO port pins
  31. * Input 1        : GPIOx (x can be 0,1 or 2) the desired port
  32. * Input 2        : Port_Pins : pins placements
  33. * Input 3        : Pins Mode
  34. * Output         : None
  35. * Return         : None
  36. *******************************************************************************/
  37. void GPIO_Config (GPIO_TypeDef *GPIOx, u16 Port_Pins, GpioPinMode_TypeDef GPIO_Mode);
  38. /*******************************************************************************
  39. * Function Name  : GPIO_Read
  40. * Description    : Read the desired port pin value
  41. * Input 1        : Selected GPIO port
  42. * Input 2        : Pin number
  43. * Output         : None
  44. * Return         : The selected pin value
  45. *******************************************************************************/
  46. inline u8 GPIO_BitRead(GPIO_TypeDef *GPIOx, u8 Port_Pin)
  47. {
  48.   return (GPIOx->PD >> Port_Pin) & 0x0001;
  49. }
  50. /*******************************************************************************
  51. * Function Name  : GPIO_ByteRead
  52. * Description    : Read the desired port Byte value
  53. * Input 1        : Selected GPIO port
  54. * Input 2        : GPIO_MSB or GPIO_LSB
  55. * Output         : None
  56. * Return         : The GPIO_MSB or GPIO_LSB of the selected PD register
  57. *******************************************************************************/
  58. inline u8 GPIO_ByteRead(GPIO_TypeDef *GPIOx, u8 Port_Byte)
  59. {
  60.   return (u8)(GPIOx->PD >> Port_Byte);
  61. }
  62. /*******************************************************************************
  63. * Function Name  : GPIO_WordRead
  64. * Description    : Read the desired port word value
  65. * Input 1        : Selected GPIO port
  66. * Output         : None
  67. * Return         : The selected PD register value
  68. *******************************************************************************/
  69. inline u16 GPIO_WordRead(GPIO_TypeDef *GPIOx)
  70. {
  71.   return GPIOx->PD;
  72. }
  73. /*******************************************************************************
  74. * Function Name  : GPIO_BitWrite
  75. * Description    : Set or reset the selected port pin
  76. * Input 1        : Selected GPIO port
  77. * Input 2        : Pin number
  78. * Input 3        : bit value
  79. * Output         : None
  80. * Return         : None
  81. *******************************************************************************/
  82. void GPIO_BitWrite(GPIO_TypeDef *GPIOx, u8 Port_Pin, u8 Port_Val);
  83. /*******************************************************************************
  84. * Function Name  : GPIO_ByteWrite
  85. * Description    : Write byte value to the selected PD register
  86. * Input 1        : Selected GPIO port
  87. * Input 2        : GPIO_MSB or GPIO_LSB
  88. * Input 3        : Byte value
  89. * Output         : None
  90. * Return         : None
  91. *******************************************************************************/
  92. void GPIO_ByteWrite(GPIO_TypeDef *GPIOx, u8 Port_Byte, u8 Port_Val);
  93. /*******************************************************************************
  94. * Function Name  : GPIO_WordWrite
  95. * Description    : Write word value to the selected PD register
  96. * Input 1        : Selected GPIO port
  97. * Input 2        : Value
  98. * Output         : None
  99. * Return         : None
  100. *******************************************************************************/
  101. inline void GPIO_WordWrite(GPIO_TypeDef *GPIOx, u16 Port_Val)
  102. {
  103.   GPIOx->PD = Port_Val;
  104. }
  105. #endif /* __gpio_H */
  106. /******************* (C) COPYRIGHT 2003 STMicroelectronics *****END OF FILE****/