From aa38e5c1f48e31213ee349aa5cd6f06c85bda70d Mon Sep 17 00:00:00 2001 From: android <android@lingyun.com> Date: Tue, 25 Jun 2024 21:49:39 +0800 Subject: [PATCH] Add GD32F103RCT6 ADC converter board SDK source code --- mcu_sdk/gd32f103/rk_eFire/System/Inc/gpio.h | 133 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 133 insertions(+), 0 deletions(-) diff --git a/mcu_sdk/gd32f103/rk_eFire/System/Inc/gpio.h b/mcu_sdk/gd32f103/rk_eFire/System/Inc/gpio.h new file mode 100644 index 0000000..db1912f --- /dev/null +++ b/mcu_sdk/gd32f103/rk_eFire/System/Inc/gpio.h @@ -0,0 +1,133 @@ +/** + ****************************************************************************** + * File Name : gpio.h + * Description : This file contains all the functions prototypes for + * the gpio + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2021 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __gpio_H +#define __gpio_H +#ifdef __cplusplus + extern "C" { +#endif +#include <stdint.h> + +#include "pinName-board.h" +#include "pinName-ioe.h" + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +typedef void( GpioIrqHandler )( void ); + +#define RCC_GPIO_CLK_ENABLE( __GPIO_PORT__ ) \ +do { \ + switch( __GPIO_PORT__) \ + { \ + case GPIOA_BASE: __HAL_RCC_GPIOA_CLK_ENABLE(); break; \ + case GPIOB_BASE: __HAL_RCC_GPIOB_CLK_ENABLE(); break; \ + case GPIOC_BASE: __HAL_RCC_GPIOC_CLK_ENABLE(); break; \ + case GPIOD_BASE: __HAL_RCC_GPIOD_CLK_ENABLE(); break; \ + } \ + } while(0) + +#define RCC_GPIO_CLK_DISABLE( __GPIO_PORT__ ) \ +do { \ + switch( __GPIO_PORT__) \ + { \ + case GPIOA_BASE: __HAL_RCC_GPIOA_CLK_DISABLE(); break; \ + case GPIOB_BASE: __HAL_RCC_GPIOB_CLK_DISABLE(); break; \ + case GPIOC_BASE: __HAL_RCC_GPIOC_CLK_DISABLE(); break; \ + case GPIOD_BASE: __HAL_RCC_GPIOD_CLK_DISABLE(); break; \ + } \ + } while(0) + + +void Board_GPIOInit(void); + +/*! + * @brief Initializes the given GPIO object + * + * @param GPIOx: where x can be (A..E and H) + * @param GPIO_Pin: specifies the port bit to be written. + * This parameter can be one of GPIO_PIN_x where x can be (0..15). + * All port bits are not necessarily available on all GPIOs. + * @param [IN] initStruct GPIO_InitTypeDef intit structure + * @retval none + */ +void HW_GPIO_Init( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_InitTypeDef* initStruct); +void HW_GPIO_DeInit( GPIO_TypeDef* port, uint16_t GPIO_Pin); + +/*! + * @brief Records the interrupt handler for the GPIO object + * + * @param GPIOx: where x can be (A..E and H) + * @param GPIO_Pin: specifies the port bit to be written. + * This parameter can be one of GPIO_PIN_x where x can be (0..15). + * All port bits are not necessarily available on all GPIOs. + * @param [IN] prio NVIC priority (0 is highest) + * @param [IN] irqHandler points to the function to execute + * @retval none + */ +void HW_GPIO_SetIrq( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, uint32_t prio, GpioIrqHandler *irqHandler ); + +/*! + * @brief Execute the interrupt from the object + * + * @param GPIOx: where x can be (A..E and H) + * @param GPIO_Pin: specifies the port bit to be written. + * This parameter can be one of GPIO_PIN_x where x can be (0..15). + * All port bits are not necessarily available on all GPIOs. + * @retval none + */ +void HW_GPIO_IrqHandler( uint16_t GPIO_Pin ); + +/*! + * @brief Writes the given value to the GPIO output + * + * @param GPIO_Pin: specifies the port bit to be written. + * This parameter can be one of GPIO_PIN_x where x can be (0..15). + * All port bits are not necessarily available on all GPIOs. + * @param [IN] value New GPIO output value + * @retval none + */ +void HW_GPIO_Write( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, uint32_t value ); + +/*! + * @brief Reads the current GPIO input value + * + * @param GPIOx: where x can be (A..E and H) + * @param GPIO_Pin: specifies the port bit to be written. + * This parameter can be one of GPIO_PIN_x where x can be (0..15). + * All port bits are not necessarily available on all GPIOs. + * @retval value Current GPIO input value + */ +uint32_t HW_GPIO_Read( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin ); + +#ifdef __cplusplus +} +#endif +#endif /*__ pinoutConfig_H */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ -- Gitblit v1.9.1