NRF51822 2.4G API

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)
获取是否启动外部晶振
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值