sx126x.h具体内容
时间: 2023-07-24 07:15:32 浏览: 57
以下是 SX126x.h 文件的具体内容,它是 SX126x 驱动程序的头文件,包含了所有的函数定义和相关的结构体定义。
```
#ifndef __SX126X_H__
#define __SX126X_H__
#include "driver/spi_master.h"
#include "driver/gpio.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
spi_device_handle_t spi;
gpio_num_t nss_pin;
gpio_num_t busy_pin;
gpio_num_t dio1_pin;
void (*cad_detected)(struct sx126x_s *);
} sx126x_t;
typedef enum {
SX126X_REGULATOR_LDO = 0x00,
SX126X_REGULATOR_DCDC = 0x01
} sx126x_regulator_mode_t;
typedef enum {
SX126X_CHIP_MODE_RESET = 0x00,
SX126X_CHIP_MODE_STANDBY_RC = 0x01,
SX126X_CHIP_MODE_STANDBY_XOSC = 0x02,
SX126X_CHIP_MODE_FS = 0x03,
SX126X_CHIP_MODE_RX = 0x04,
SX126X_CHIP_MODE_TX = 0x05,
SX126X_CHIP_MODE_CAD = 0x06
} sx126x_chip_mode_t;
typedef enum {
SX126X_TCXO_CTRL_1_7V = 0x00,
SX126X_TCXO_CTRL_2_2V = 0x01,
SX126X_TCXO_CTRL_1_6V = 0x02,
SX126X_TCXO_CTRL_1_1V = 0x03
} sx126x_tcxo_ctrl_v_t;
typedef enum {
SX126X_PA_CONFIG_HP_MAX = 0x00,
SX126X_PA_CONFIG_HP_BOOST = 0x01,
SX126X_PA_CONFIG_HP_LOW = 0x02,
SX126X_PA_CONFIG_LP_MAX = 0x03,
SX126X_PA_CONFIG_LP_BOOST = 0x04,
SX126X_PA_CONFIG_LP_LOW = 0x05
} sx126x_pa_config_t;
typedef enum {
SX126X_PA_RAMP_10_US = 0x00,
SX126X_PA_RAMP_20_US = 0x01,
SX126X_PA_RAMP_40_US = 0x02,
SX126X_PA_RAMP_80_US = 0x03,
SX126X_PA_RAMP_200_US = 0x04,
SX126X_PA_RAMP_800_US = 0x05,
SX126X_PA_RAMP_1700_US = 0x06,
SX126X_PA_RAMP_3400_US = 0x07
} sx126x_pa_ramp_t;
typedef enum {
SX126X_LORA_SF5 = 0x05,
SX126X_LORA_SF6 = 0x06,
SX126X_LORA_SF7 = 0x07,
SX126X_LORA_SF8 = 0x08,
SX126X_LORA_SF9 = 0x09,
SX126X_LORA_SF10 = 0x0A,
SX126X_LORA_SF11 = 0x0B,
SX126X_LORA_SF12 = 0x0C
} sx126x_lora_spreading_factor_t;
typedef enum {
SX126X_LORA_BW_125_KHZ = 0x00,
SX126X_LORA_BW_250_KHZ = 0x01,
SX126X_LORA_BW_500_KHZ = 0x02
} sx126x_lora_bandwidth_t;
typedef enum {
SX126X_LORA_CR_4_5 = 0x01,
SX126X_LORA_CR_4_6 = 0x02,
SX126X_LORA_CR_4_7 = 0x03,
SX126X_LORA_CR_4_8 = 0x04
} sx126x_lora_coding_rate_t;
void sx126x_reset(sx126x_t *dev);
void sx126x_write_command(sx126x_t *dev, uint8_t cmd);
void sx126x_write_command_payload(sx126x_t *dev, uint8_t cmd, const uint8_t *payload, uint8_t size);
void sx126x_read_command_payload(sx126x_t *dev, uint8_t cmd, uint8_t *payload, uint8_t size);
void sx126x_write_register(sx126x_t *dev, uint16_t addr, const uint8_t *data, uint8_t size);
void sx126x_read_register(sx126x_t *dev, uint16_t addr, uint8_t *data, uint8_t size);
void sx126x_set_sleep(sx126x_t *dev, uint8_t sleep_cfg);
void sx126x_set_standby(sx126x_t *dev, sx126x_chip_mode_t chip_mode);
void sx126x_set_fs(sx126x_t *dev);
void sx126x_set_tx(sx126x_t *dev, uint32_t timeout);
void sx126x_set_rx(sx126x_t *dev, uint32_t timeout);
void sx126x_set_cad(sx126x_t *dev);
void sx126x_set_buffer_base_address(sx126x_t *dev, uint8_t tx_base_addr, uint8_t rx_base_addr);
void sx126x_set_lora_sync_word(sx126x_t *dev, uint8_t sync_word);
void sx126x_set_lora_symb_num_timeout(sx126x_t *dev, uint16_t symb_num);
void sx126x_set_lora_preamble_length(sx126x_t *dev, uint16_t preamble_length);
void sx126x_set_lora_payload_length(sx126x_t *dev, uint8_t payload_length);
void sx126x_set_lora_crc(sx126x_t *dev, bool enable_crc);
void sx126x_set_lora_coding_rate(sx126x_t *dev, sx126x_lora_coding_rate_t coding_rate);
void sx126x_set_lora_bandwidth(sx126x_t *dev, sx126x_lora_bandwidth_t bandwidth);
void sx126x_set_lora_spreading_factor(sx126x_t *dev, sx126x_lora_spreading_factor_t spreading_factor);
void sx126x_set_tx_params(sx126x_t *dev, int8_t power, sx126x_pa_ramp_t ramp_time);
void sx126x_set_cad_params(sx126x_t *dev, uint8_t cad_symb_num, uint8_t cad_detect_peak);
void sx126x_set_pa_config(sx126x_t *dev, sx126x_pa_config_t pa_config, uint8_t pa_duty_cycle, uint8_t hp_max, uint8_t device_sel);
void sx126x_set_regulator_mode(sx126x_t *dev, sx126x_regulator_mode_t mode);
void sx126x_set_tcxo_mode(sx126x_t *dev, bool use_ext, sx126x_tcxo_ctrl_v_t v_tcxo);
void sx126x_set_dio2_as_rf_sw_ctrl(sx126x_t *dev, bool enable);
void sx126x_set_dio3_as_tcxo_ctrl(sx126x_t *dev, sx126x_tcxo_ctrl_v_t tcxo_voltage);
void sx126x_set_dio3_as_int_ctrl(sx126x_t *dev, bool enable);
void sx126x_set_dio4_as_pll_lock(sx126x_t *dev);
void sx126x_set_dio5_as_mode_ready(sx126x_t *dev);
bool sx126x_get_irq_status_lora_rx_done(sx126x_t *dev);
bool sx126x_get_irq_status_lora_tx_done(sx126x_t *dev);
bool sx126x_get_irq_status_cad_detected(sx126x_t *dev);
bool sx126x_is_tx_done(sx126x_t *dev);
bool sx126x_is_rx_done(sx126x_t *dev);
bool sx126x_is_cad_detected(sx126x_t *dev);
void sx126x_clear_irq_status(sx126x_t *dev);
void sx126x_process_irq(sx126x_t *dev);
#ifdef __cplusplus
}
#endif
#endif /* __SX126X_H__ */
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)