API-RF-CASE1:RF BLE 2M TX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
volatile unsigned int tx_cnt=0;
unsigned char ble_tx_packet[48] __attribute__ ((aligned (4))) = {0x23,0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
API-RF-CASE2:RF BLE 2M RX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
volatile unsigned int rx_cnt=0;
unsigned char rx_packet[64] __attribute__ ((aligned (4)));
API-RF-CASE3:RF BLE 1M TX
refer to
API-RF-CASE1:RF BLE 2M TXAPI-RF-CASE4:RF BLE 1M RX
refer to
API-RF-CASE2:RF BLE 2M RXAPI-RF-CASE5:RF BLE 1M NO PN TX
refer to
API-RF-CASE1:RF BLE 2M TXAPI-RF-CASE6:RF BLE 1M NO PN RX
refer to
API-RF-CASE2:RF BLE 2M RXAPI-RF-CASE7:RF ZIGBEE 250K TX
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | none | Interrupt handler function | 2019-1-10 |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_ZIGBEE_250K) | RF mode initialization: RF_MODE_ZIGBEE_250K |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | rf_set_power_level_index() | rf_set_power_level_index (RF_POWER) | set tx power level |
rf_set_tx_rx_off() | reset RF Tx/Rx mode |
rf_set_channel() | rf_set_channel(RF_FREQ,0) | set channel for RF |
rf_access_code_comm() | rf_access_code_comm(ACCESS_CODE) | set access code for RF |
rf_set_txmode() | start Tx mode |
main_loop() | rf_tx_pkt() | rf_tx_pkt(Zigbee_tx_packet) | send packet in manual mode |
rf_tx_finish() | while(!rf_tx_finish()) | wait for tx packet being finished |
rf_tx_finish_clear_flag() | clear the flag of tx finished |
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
volatile unsigned int tx_cnt=0;
unsigned char Zigbee_tx_packet[48] __attribute__ ((aligned (4))) = {0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
API-RF-CASE8:RF ZIGBEE 250K RX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
volatile unsigned int rx_cnt=0;
unsigned char rx_packet[64] __attribute__ ((aligned (4)));
API-RF-CASE9:RF LR S2 500K TX
refer to
API-RF-CASE1:RF BLE 2M TXAPI-RF-CASE10:RF LR S2 500K RX
refer to
API-RF-CASE2:RF BLE 2M RXAPI-RF-CASE11:RF LR S8 125K TX
refer to
API-RF-CASE1:RF BLE 2M TXAPI-RF-CASE912:RF LR S8 125K RX
refer to
API-RF-CASE2:RF BLE 2M RXAPI-RF-CASE13:RF PRIVATE 250K TX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
#define RX_PAYLOAD_LEN 32
volatile unsigned int tx_cnt=0;
unsigned char Private_SB_tx_packet[48] __attribute__ ((aligned (4))) = {0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
unsigned char Private_ESB_tx_packet[48] __attribute__ ((aligned (4))) = {0x21,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
API-RF-CASE14:RF PRIVATE 250K RX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
#define RX_PAYLOAD_LEN 32
volatile unsigned int rx_cnt=0;
unsigned char rx_packet[64] __attribute__ ((aligned (4)));
API-RF-CASE15:RF PRIVATE 500K TX
refer to
API-RF-CASE13:RF PRIVATE 250K TXAPI-RF-CASE16:RF PRIVATE 500K RX
refer to
API-RF-CASE14:RF PRIVATE 250K RXAPI-RF-CASE17:RF PRIVATE 1M TX
refer to
API-RF-CASE13:RF PRIVATE 250K TXAPI-RF-CASE18:RF PRIVATE 1M RX
refer to
API-RF-CASE14:RF PRIVATE 250K RXAPI-RF-CASE19:RF PRIVATE 2M TX
refer to
API-RF-CASE13:RF PRIVATE 250K TXAPI-RF-CASE20:RF PRIVATE 2M RX
refer to
API-RF-CASE14:RF PRIVATE 250K RXAPI-RF-CASE21:RF ANT TX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
#define RX_PAYLOAD_LEN 32
volatile unsigned int tx_cnt=0;
unsigned char Ant_tx_packet[48] __attribute__ ((aligned (4))) = {RX_PAYLOAD_LEN-2,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
API-RF-CASE22:RF ANT RX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
#define RX_PAYLOAD_LEN 32
volatile unsigned int rx_cnt=0;
API-RF-CASE23:RF BLE 2M AUTO TX
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | none | Interrupt handler function | 2019-1-10 |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_BLE_2M) | RF mode initialization: RF_MODE_BLE_2M |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | rf_set_power_level_index() | rf_set_power_level_index (RF_POWER) | set tx power level |
rf_set_tx_rx_off() | reset RF Tx/Rx mode |
rf_set_channel() | rf_set_channel(RF_FREQ,0) | set channel for RF |
rf_access_code_comm() | rf_access_code_comm(ACCESS_CODE) | set access code for RF |
main_loop() | rf_start_stx() | rf_start_stx(ble_tx_packet, clock_time() + 16*1000*TX_INTERVAL_MS) | send one packet every 1ms in auto mode and close |
rf_tx_finish() | while(!rf_tx_finish()) | wait for tx packet being finished |
rf_tx_finish_clear_flag() | clear the flag of tx finished |
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
#define TX_INTERVAL_MS 1
volatile unsigned int tx_cnt=0;
unsigned char ble_tx_packet[48] __attribute__ ((aligned (4))) = {0x23,0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
API-RF-CASE24:RF BLE 2M AUTO RX
Variables above are defined as below
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
volatile unsigned int rx_cnt=0;
__attribute__ ((aligned (4))) unsigned char rx_packet[64];
API-RF-CASE25:RF BLE 2M AUTO TX2RX
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | Tx IRQ | if(rf_irq_src_get()&FLD_RF_IRQ_TX==FLD_RF_IRQ_TX) | rf_irq_src_get() | determine whether interrupt flag is generated by Tx | 2019-1-10 |
>rf_irq_clr_src(FLD_RF_IRQ_TX) | rf_irq_clr_src() | clear the interrupt flag | 2019-1-10 |
>tx_state = 1 | get tx state | 2019-1-10 |
Rx IRQ | if(rf_irq_src_get()&FLD_RF_IRQ_RX==FLD_RF_IRQ_RX) | rf_irq_src_get() | determine whether interrupt flag is generated by Rx | 2019-1-10 |
>rf_irq_clr_src(FLD_RF_IRQ_RX) | rf_irq_clr_src() | clear the interrupt flag | 2019-1-10 |
>rx_state = 1 | get rx state | 2019-1-10 |
TX2RX Rx TIMEOUT IRQ | if(rf_irq_src_get()&FLD_RF_IRQ_RX_TIMEOUT==FLD_RF_IRQ_RX_TIMEOUT) | determine whether interrupt flag is generated by Rx timeout | 2019-1-10 |
>rf_irq_clr_src(FLD_RF_IRQ_RX_TIMEOUT) | rf_irq_clr_src() | clear the interrupt flag | 2019-1-10 |
>timeout_state = 1 | get timeout state | 2019-1-10 |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_BLE_2M) | RF mode initialization: RF_MODE_BLE_2M |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | rf_set_power_level_index() | rf_set_power_level_index (RF_POWER) | set tx power level |
rf_trx_state_set() | rf_set_trx_state(RF_MODE_AUTO,RF_FREQ) | set Tx/Rx auto mode |
rf_access_code_comm() | rf_access_code_comm(ACCESS_CODE) | set access code for RF |
rf_rx_buffer_set() | rf_rx_buffer_set(rx_packet,64, 0) | set buffer for rx packet |
irq_disable() | disable global interrupt |
irq_clr_src() | clear global interrupt flag |
irq_enable_type() | irq_set_mask(FLD_IRQ_ZB_RT_EN) | set global interrupt mask |
rf_irq_disable() | rf_irq_disable(FLD_RF_IRQ_ALL) | clear all rf irq mask |
rf_irq_enable() | rf_irq_enable(FLD_RF_IRQ_TX
Ι FLD_RF_IRQ_RX
Ι FLD_RF_IRQ_RX_TIMEOUT) | set rf interrupt mask |
irq_enable() | enable global interrupt |
main_loop() | tx_state=0
rx_state=0
timeout_state=0 | initiate the Tx/Rx/timeout state |
sleep_ms(100) | sleep_ms() | delay 100ms |
rf_start_stx2rx (ble_tx_packet,
clock_time()+16*TX_DELAY_US,STX_WAITTIME_US) | rf_start_stx2rx() | start Tx2Rx |
... | for more details , please refer to Driver Demo |
Variables above are defined as below
#define STX_WAITTIME_US 4000
#define SRX_WAITTIME_US 100000
#define TX_DELAY_US 10
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
volatile unsigned int tx_state=0;
volatile unsigned int rx_state=0;
volatile unsigned int timeout_state=0;
unsigned char rx_packet[64] __attribute__ ((aligned (4)));
unsigned char ble_tx_packet[48] __attribute__ ((aligned (4))) = {0x23,0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
API-RF-CASE26:RF BLE 2M AUTO RX2TX
Function | Sub-Function | APIs | Description | Update Status |
irq_handler() | Tx IRQ | if(rf_irq_src_get()&FLD_RF_IRQ_TX==FLD_RF_IRQ_TX) | rf_irq_src_get() | determine whether interrupt flag is generated by Tx | 2019-1-10 |
>rf_irq_clr_src(FLD_RF_IRQ_TX) | rf_irq_clr_src() | clear the interrupt flag |
>tx_state = 1 | get tx state |
Rx IRQ | if(rf_irq_src_get()&FLD_RF_IRQ_RX==FLD_RF_IRQ_RX) | rf_irq_src_get() | determine whether interrupt flag is generated by Rx |
>rf_irq_clr_src(FLD_RF_IRQ_RX) | rf_irq_clr_src() | clear the interrupt flag |
>rx_state = 1 | get rx state |
RX2TX Rx TIMEOUT IRQ | if(rf_irq_src_get()&FLD_RF_IRQ_FIRST_TIMEOUT==FLD_RF_IRQ_FIRST_TIMEOUT) | determine whether interrupt flag is generated by Rx timeout |
>rf_irq_clr_src(FLD_RF_IRQ_FIRST_TIMEOUT) | rf_irq_clr_src() | clear the interrupt flag |
>timeout_state = 1 | get timeout state |
main() | cpu_wakeup_init() | CPU initialization function [Mandatory] |
clock_init() | clock_init(SYS_CLK_24M_Crystal) | Clock initialization function, System Clock is 24M RC by default [optional] |
rf_drv_init() | rf_drv_init(RF_MODE_BLE_2M) | RF mode initialization: RF_MODE_BLE_2M |
gpio_init() | gpio_init(1) | GPIO initialization: set the initialization status of all GPIOs [optional] |
user_init() | rf_set_power_level_index() | rf_set_power_level_index (RF_POWER) | set tx power level |
rf_trx_state_set() | rf_set_trx_state(RF_MODE_AUTO,RF_FREQ) | set Tx/Rx auto mode |
rf_access_code_comm() | rf_access_code_comm(ACCESS_CODE) | set access code for RF |
rf_rx_buffer_set() | rf_rx_buffer_set(rx_packet,64, 0) | set buffer for rx packet |
irq_disable() | disable global interrupt |
irq_clr_src() | clear global interrupt flag |
irq_enable_type() | irq_enable_type(FLD_IRQ_ZB_RT_EN) | set global interrupt mask |
rf_irq_disable() | rf_irq_disable(FLD_RF_IRQ_ALL) | clear all rf irq mask |
rf_irq_enable() | rf_irq_enable(FLD_RF_IRQ_TX
Ι FLD_RF_IRQ_RX
Ι FLD_RF_IRQ_FIRST_TIMEOUT) | set rf interrupt mask |
irq_enable() | enable global interrupt |
main_loop() | tx_state=0
rx_state=0
timeout_state=0 | initiate the Tx/Rx/timeout state |
rf_start_srx2tx(ble_tx_packet,
clock_time()+16*TX_DELAY_US ,SRX_WAITTIME_US) | rf_start_srx2tx() | start Tx2Rx |
... | for more details , please refer to Driver Demo |
Variables above are defined as below
#define STX_WAITTIME_US 4000
#define SRX_WAITTIME_US 100000
#define TX_DELAY_US 10
#define RF_FREQ 35
#define RF_POWER RF_POWER_P10p46dBm
#define ACCESS_CODE 0x29417671
volatile unsigned int tx_state=0;
volatile unsigned int rx_state=0;
volatile unsigned int timeout_state=0;
unsigned char rx_packet[64] __attribute__ ((aligned (4)));
unsigned char ble_tx_packet[48] __attribute__ ((aligned (4))) = {0x23,0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x00,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
History Record
Date | Description | Author |
2019-1-10 | initial release | LJW |