Enumerations
enum nrf_esb_mode_t { NRF_ESB_MODE_PTX, NRF_ESB_MODE_PRX }选择ESB的工作模式
enum nrf_esb_packet_t { NRF_ESB_PACKET_USE_ACK, NRF_ESB_PACKET_NO_ACK }ESB工作在TX下是否使用ACK
enum nrf_esb_base_address_length_t { NRF_ESB_BASE_ADDRESS_LENGTH_2B, NRF_ESB_BASE_ADDRESS_LENGTH_3B, NRF_ESB_BASE_ADDRESS_LENGTH_4B }
用于选择ESB的基地址长度
enum nrf_esb_output_power_t {
NRF_ESB_OUTPUT_POWER_4_DBM, NRF_ESB_OUTPUT_POWER_0_DBM, NRF_ESB_OUTPUT_POWER_N4_DBM, NRF_ESB_OUTPUT_POWER_N8_DBM,
NRF_ESB_OUTPUT_POWER_N12_DBM, NRF_ESB_OUTPUT_POWER_N16_DBM, NRF_ESB_OUTPUT_POWER_N20_DBM
} 用于选择ESB作为发射模式下的功率
enum nrf_esb_datarate_t { NRF_ESB_DATARATE_250_KBPS, NRF_ESB_DATARATE_1_MBPS, NRF_ESB_DATARATE_2_MBPS }
用于选择ESB的广播收发频率
enum nrf_esb_crc_length_t { NRF_ESB_CRC_OFF, NRF_ESB_CRC_LENGTH_1_BYTE, NRF_ESB_CRC_LENGTH_2_BYTE }
用于选择ESB的CRC校验长度
enum nrf_esb_xosc_ctl_t { NRF_ESB_XOSC_CTL_AUTO, NRF_ESB_XOSC_CTL_MANUAL }
用于选择ESB工作时候的晶振16MHZ是否是自动切换还是手动切换
General API functions
bool nrf_esb_init (nrf_esb_mode_t mode)
初始化ESB
void nrf_esb_enable (void)
使能ESB
void nrf_esb_disable (void)
关闭ESB
bool nrf_esb_is_enabled (void)
ESB使能函数
functions
void nrf_esb_tx_success (uint32_t tx_pipe, int32_t rssi)
发送成功回调函数
void nrf_esb_tx_failed (uint32_t tx_pipe)
发送失败回调函数
void nrf_esb_rx_data_ready (uint32_t rx_pipe, int32_t rssi)
接受准备就绪回调函数
void nrf_esb_disabled (void)
ESB失能函数
Packet transmission and receiving functions
bool nrf_esb_add_packet_to_tx_fifo (uint32_t pipe, uint8_t *payload, uint32_t payload_length, nrf_esb_packet_t packet_type)
将数据包添加到发送队列
bool nrf_esb_fetch_packet_from_rx_fifo (uint32_t pipe, uint8_t *payload, uint32_t *payload_length)
从接受队列获取数据包
uint32_t nrf_esb_get_tx_fifo_packet_count (uint32_t pipe)
获取某个通道发送队列的数据包大小
uint32_t nrf_esb_get_rx_fifo_packet_count (uint32_t pipe)
获取某个通道的接受队列的数据包大小
void nrf_esb_flush_tx_fifo (uint32_t pipe)
为发送队列指定一个特定的通道
void nrf_esb_flush_rx_fifo (uint32_t pipe)
为接受队列制定一个特定的通道
uint16_t nrf_esb_get_tx_attempts (void)
获得在本次发送之前的数据包成功的个数
Configuration functions
bool nrf_esb_set_mode (nrf_esb_mode_t mode)
设置ESB的工作模式
nrf_esb_mode_t nrf_esb_get_mode (void)
获取当前ESB的工作模式
bool nrf_esb_set_base_address_length (nrf_esb_base_address_length_t length)
设置基地址长度
nrf_esb_base_address_length_t nrf_esb_get_base_address_length (void)
获取基地址长度
bool nrf_esb_set_base_address_0 (uint32_t base_address)
设置通道0的基地址
uint32_t nrf_esb_get_base_address_0 (void)
获取通道0的基地址
bool nrf_esb_set_base_address_1 (uint32_t base_address)
设置通道 1-7的基地址
uint32_t nrf_esb_get_base_address_1 (void)
获取通道1-7的基地址
bool nrf_esb_set_address_prefix_byte (uint32_t pipe, uint8_t address)
为每个通道设定特定的地址
bool nrf_esb_get_address_prefix_byte (uint32_t pipe, uint8_t *out_address)
获取每个通道的设定的特地地址
bool nrf_esb_set_enabled_prx_pipes (uint32_t pipes)
设置这个通道为监听模式
uint32_t nrf_esb_get_enabled_prx_pipes (void)
获取管道为监听模式的通道
bool nrf_esb_set_retransmit_delay (uint32_t delay_us)
设置中继延时
uint32_t nrf_esb_get_retransmit_delay (void)
获取中继延时
bool nrf_esb_set_max_number_of_tx_attempts (uint16_t attempts)
设置一个包最多发送多少次
uint16_t nrf_esb_get_max_number_of_tx_attempts (void)
获取设置一个包能够发送多少次
bool nrf_esb_set_channel (uint32_t channel)
设置无线电频率
uint32_t nrf_esb_get_channel (void)
获取无线电频率
bool nrf_esb_set_output_power (nrf_esb_output_power_t power)
设置发送功率
nrf_esb_output_power_t nrf_esb_get_output_power (void)
获取发送功率
bool nrf_esb_set_datarate (nrf_esb_datarate_t datarate)
设置广播传输速率
nrf_esb_datarate_t nrf_esb_get_datarate (void)
获取广播传输速率
bool nrf_esb_set_crc_length (nrf_esb_crc_length_t length)
设置CRC长度
nrf_esb_crc_length_t nrf_esb_get_crc_length (void)
获取CRC长度
bool nrf_esb_set_xosc_ctl (nrf_esb_xosc_ctl_t xosc_ctl)
设置是否启动外部晶振
void nrf_esb_enable_dyn_ack (void)
启动自动ACK
void nrf_esb_disable_dyn_ack (void)
关闭自动ACK
nrf_esb_xosc_ctl_t nrf_esb_get_xosc_ctl (void)
获取是否启动外部晶振
enum nrf_esb_mode_t { NRF_ESB_MODE_PTX, NRF_ESB_MODE_PRX }选择ESB的工作模式
enum nrf_esb_packet_t { NRF_ESB_PACKET_USE_ACK, NRF_ESB_PACKET_NO_ACK }ESB工作在TX下是否使用ACK
enum nrf_esb_base_address_length_t { NRF_ESB_BASE_ADDRESS_LENGTH_2B, NRF_ESB_BASE_ADDRESS_LENGTH_3B, NRF_ESB_BASE_ADDRESS_LENGTH_4B }
用于选择ESB的基地址长度
enum nrf_esb_output_power_t {
NRF_ESB_OUTPUT_POWER_4_DBM, NRF_ESB_OUTPUT_POWER_0_DBM, NRF_ESB_OUTPUT_POWER_N4_DBM, NRF_ESB_OUTPUT_POWER_N8_DBM,
NRF_ESB_OUTPUT_POWER_N12_DBM, NRF_ESB_OUTPUT_POWER_N16_DBM, NRF_ESB_OUTPUT_POWER_N20_DBM
} 用于选择ESB作为发射模式下的功率
enum nrf_esb_datarate_t { NRF_ESB_DATARATE_250_KBPS, NRF_ESB_DATARATE_1_MBPS, NRF_ESB_DATARATE_2_MBPS }
用于选择ESB的广播收发频率
enum nrf_esb_crc_length_t { NRF_ESB_CRC_OFF, NRF_ESB_CRC_LENGTH_1_BYTE, NRF_ESB_CRC_LENGTH_2_BYTE }
用于选择ESB的CRC校验长度
enum nrf_esb_xosc_ctl_t { NRF_ESB_XOSC_CTL_AUTO, NRF_ESB_XOSC_CTL_MANUAL }
用于选择ESB工作时候的晶振16MHZ是否是自动切换还是手动切换
General API functions
bool nrf_esb_init (nrf_esb_mode_t mode)
初始化ESB
void nrf_esb_enable (void)
使能ESB
void nrf_esb_disable (void)
关闭ESB
bool nrf_esb_is_enabled (void)
ESB使能函数
functions
void nrf_esb_tx_success (uint32_t tx_pipe, int32_t rssi)
发送成功回调函数
void nrf_esb_tx_failed (uint32_t tx_pipe)
发送失败回调函数
void nrf_esb_rx_data_ready (uint32_t rx_pipe, int32_t rssi)
接受准备就绪回调函数
void nrf_esb_disabled (void)
ESB失能函数
Packet transmission and receiving functions
bool nrf_esb_add_packet_to_tx_fifo (uint32_t pipe, uint8_t *payload, uint32_t payload_length, nrf_esb_packet_t packet_type)
将数据包添加到发送队列
bool nrf_esb_fetch_packet_from_rx_fifo (uint32_t pipe, uint8_t *payload, uint32_t *payload_length)
从接受队列获取数据包
uint32_t nrf_esb_get_tx_fifo_packet_count (uint32_t pipe)
获取某个通道发送队列的数据包大小
uint32_t nrf_esb_get_rx_fifo_packet_count (uint32_t pipe)
获取某个通道的接受队列的数据包大小
void nrf_esb_flush_tx_fifo (uint32_t pipe)
为发送队列指定一个特定的通道
void nrf_esb_flush_rx_fifo (uint32_t pipe)
为接受队列制定一个特定的通道
uint16_t nrf_esb_get_tx_attempts (void)
获得在本次发送之前的数据包成功的个数
Configuration functions
bool nrf_esb_set_mode (nrf_esb_mode_t mode)
设置ESB的工作模式
nrf_esb_mode_t nrf_esb_get_mode (void)
获取当前ESB的工作模式
bool nrf_esb_set_base_address_length (nrf_esb_base_address_length_t length)
设置基地址长度
nrf_esb_base_address_length_t nrf_esb_get_base_address_length (void)
获取基地址长度
bool nrf_esb_set_base_address_0 (uint32_t base_address)
设置通道0的基地址
uint32_t nrf_esb_get_base_address_0 (void)
获取通道0的基地址
bool nrf_esb_set_base_address_1 (uint32_t base_address)
设置通道 1-7的基地址
uint32_t nrf_esb_get_base_address_1 (void)
获取通道1-7的基地址
bool nrf_esb_set_address_prefix_byte (uint32_t pipe, uint8_t address)
为每个通道设定特定的地址
bool nrf_esb_get_address_prefix_byte (uint32_t pipe, uint8_t *out_address)
获取每个通道的设定的特地地址
bool nrf_esb_set_enabled_prx_pipes (uint32_t pipes)
设置这个通道为监听模式
uint32_t nrf_esb_get_enabled_prx_pipes (void)
获取管道为监听模式的通道
bool nrf_esb_set_retransmit_delay (uint32_t delay_us)
设置中继延时
uint32_t nrf_esb_get_retransmit_delay (void)
获取中继延时
bool nrf_esb_set_max_number_of_tx_attempts (uint16_t attempts)
设置一个包最多发送多少次
uint16_t nrf_esb_get_max_number_of_tx_attempts (void)
获取设置一个包能够发送多少次
bool nrf_esb_set_channel (uint32_t channel)
设置无线电频率
uint32_t nrf_esb_get_channel (void)
获取无线电频率
bool nrf_esb_set_output_power (nrf_esb_output_power_t power)
设置发送功率
nrf_esb_output_power_t nrf_esb_get_output_power (void)
获取发送功率
bool nrf_esb_set_datarate (nrf_esb_datarate_t datarate)
设置广播传输速率
nrf_esb_datarate_t nrf_esb_get_datarate (void)
获取广播传输速率
bool nrf_esb_set_crc_length (nrf_esb_crc_length_t length)
设置CRC长度
nrf_esb_crc_length_t nrf_esb_get_crc_length (void)
获取CRC长度
bool nrf_esb_set_xosc_ctl (nrf_esb_xosc_ctl_t xosc_ctl)
设置是否启动外部晶振
void nrf_esb_enable_dyn_ack (void)
启动自动ACK
void nrf_esb_disable_dyn_ack (void)
关闭自动ACK
nrf_esb_xosc_ctl_t nrf_esb_get_xosc_ctl (void)
获取是否启动外部晶振