YZL_WLE5CB_LoRa/BSP/stm32wlxx_nucleo_radio.h

161 lines
4.3 KiB
C

/**
******************************************************************************
* @file stm32wlxx_nucleo_radio.h
* @author MCD Application Team
* @brief Header for stm32wlxx_nucleo_radio.c
******************************************************************************
* @attention
*
* Copyright (c) 2020(-2021) STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef STM32WLXX_NUCLEO_RADIO_H
#define STM32WLXX_NUCLEO_RADIO_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32wlxx_nucleo_errno.h"
#include "stm32wlxx_nucleo_conf.h"
/** @addtogroup BSP
* @{
*/
/** @addtogroup STM32WLXX_NUCLEO STM32WLXX-NUCLEO
* @{
*/
/** @defgroup STM32WLXX_NUCLEO_RADIO_LOW_LEVEL RADIO LOW LEVEL
* @{
*/
/** @defgroup STM32WLXX_NUCLEO_RADIO_LOW_LEVEL_Exported_Types RADIO LOW LEVEL Exported Types
* @{
*/
typedef enum
{
RADIO_SWITCH_OFF = 0,
RADIO_SWITCH_RX = 1,
RADIO_SWITCH_RFO_LP = 2,
RADIO_SWITCH_RFO_HP = 3,
}BSP_RADIO_Switch_TypeDef;
typedef enum
{
RADIO_RFO_LP_MAXPOWER = 0,
RADIO_RFO_HP_MAXPOWER,
} BSP_RADIO_RFOMaxPowerConfig_TypeDef;
/**
* @}
*/
/** @defgroup STM32WLXX_NUCLEO_RADIO_LOW_LEVEL_Exported_Constants RADIO LOW LEVEL Exported Constants
* @{
*/
/** @defgroup STM32WLXX_NUCLEO_RADIO_LOW_LEVEL_RADIOCONFIG RADIO LOW LEVEL RADIO CONFIG Constants
* @{
*/
#define RADIO_CONF_RFO_LP_HP 0U
#define RADIO_CONF_RFO_LP 1U
#define RADIO_CONF_RFO_HP 2U
#define RADIO_CONF_TCXO_NOT_SUPPORTED 0U
#define RADIO_CONF_TCXO_SUPPORTED 1U
#define RADIO_CONF_DCDC_NOT_SUPPORTED 0U
#define RADIO_CONF_DCDC_SUPPORTED 1U
#define RADIO_CONF_RFO_HP_MAX_22_dBm ((int32_t) 22)
#define RADIO_CONF_RFO_HP_MAX_20_dBm ((int32_t) 20)
#define RADIO_CONF_RFO_HP_MAX_17_dBm ((int32_t) 17)
#define RADIO_CONF_RFO_HP_MAX_14_dBm ((int32_t) 14)
#define RADIO_CONF_RFO_LP_MAX_15_dBm ((int32_t) 15)
#define RADIO_CONF_RFO_LP_MAX_14_dBm ((int32_t) 14)
#define RADIO_CONF_RFO_LP_MAX_10_dBm ((int32_t) 10)
/**
* @}
*/
/** @defgroup STM32WLXX_NUCLEO_RADIO_LOW_LEVEL_RFSWITCH RADIO LOW LEVEL RF SWITCH Constants
* @{
*/
#define RF_SW_CTRL3_PIN GPIO_PIN_8
#define RF_SW_CTRL3_GPIO_PORT GPIOA
#define RF_SW_CTRL3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
#define RF_SW_CTRL3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
#define RF_SW_CTRL1_PIN GPIO_PIN_0
#define RF_SW_CTRL1_GPIO_PORT GPIOB
#define RF_SW_CTRL1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define RF_SW_RX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
#define RF_SW_CTRL2_PIN GPIO_PIN_15
#define RF_SW_CTRL2_GPIO_PORT GPIOA
#define RF_SW_CTRL2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
#define RF_SW_CTRL2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
//未使用
#define RF_TCXO_VCC_PIN
#define RF_TCXO_VCC_GPIO_PORT
#define RF_TCXO_VCC_CLK_ENABLE()
#define RF_TCXO_VCC_CLK_DISABLE()
/**
* @}
*/
/**
* @}
*/
/** @defgroup STM32WLXX_NUCLEO_RADIO_LOW_LEVEL_Exported_Functions RADIO LOW LEVEL Exported Functions
* @{
*/
int32_t BSP_RADIO_Init(void);
int32_t BSP_RADIO_DeInit(void);
int32_t BSP_RADIO_ConfigRFSwitch(BSP_RADIO_Switch_TypeDef Config);
int32_t BSP_RADIO_GetTxConfig(void);
int32_t BSP_RADIO_IsTCXO(void);
int32_t BSP_RADIO_IsDCDC(void);
int32_t BSP_RADIO_GetRFOMaxPowerConfig(BSP_RADIO_RFOMaxPowerConfig_TypeDef Config);
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* STM32WLXX_NUCLEO_RADIO_H */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/