Files
player/Project/Src/MyApp/nrf.h

151 lines
2.8 KiB
C
Raw Normal View History

2025-06-27 00:32:57 +08:00
#ifndef NRF_H__
#define NRF_H__
#include "stm32f4xx.h"
2025-07-05 19:47:28 +08:00
/* ++++++++++++++++++++++ <20><>Ҫ<EFBFBD><D2AA>ʾ +++++++++++++++++++++ */
/* ++++++++++<2B><>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ն˶<D5B6><CBB6><EFBFBD>С<EFBFBD><D0A1>ģʽ+++++++++++++ */
/* ++++++++++++++++û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B4A6>+++++++++++++++++ */
/* ++++++++++++++++++++ <20><>Ҫ<EFBFBD><D2AA>ʾEnd ++++++++++++++++++++ */
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
/* ͨ<><CDA8>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD> */
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
2025-06-28 18:16:25 +08:00
typedef struct __packed
2025-06-27 00:32:57 +08:00
{
u8 len;
u8 magic_number;
u8 type;
u8 load[29];
}nrf_load_struct;
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
#define NRF_TYPE_NULL 0x00 //<2F>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NRF_TYPE_CONN 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NRF_TYPE_CHAN 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>
#define NRF_TYPE_TIME 0x03 //<2F><><EFBFBD>ó<EFBFBD>ʱʱ<CAB1><CAB1>
#define NRF_TYPE_ASK 0x04 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NRF_TYPE_ANSWER 0x05 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻظ<DDBB>
#define NRF_TYPE_DATA 0x06 //<2F><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
#define NRF_TYPE_BROAD 0x07 //<2F>
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NRF_OK 0x00 //<2F>޴<EFBFBD><DEB4><EFBFBD>
#define NRF_ERR 0x01 //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NRF_REFUSE 0x02 //<2F>ܾ<EFBFBD>
#define NRF_TIMEOUT 0x03 //<2F><>ʱ
#define NRF_MISMATCH 0x04 //ħ<><C4A7><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5>
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
#define NRF_ANSWER_OK (u8 []){NRF_OK},1
#define NRF_ANSWER_ERR (u8 []){NRF_ERR},1
#define NRF_ANSWER_REFUSE (u8 []){NRF_REFUSE},1
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-28 18:16:25 +08:00
typedef struct __packed
{
2025-07-05 19:47:28 +08:00
u8 addr_src[5]; //<2F><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>addr
u8 addr_dst[5]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>addr
2025-06-27 00:32:57 +08:00
u8 chan;
}nrf_conn_struct;
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-28 18:16:25 +08:00
typedef struct __packed
{
2025-06-27 00:32:57 +08:00
u8 chan;
u8 times;
}nrf_chan_struct;
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD>ʱʱ<CAB1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-28 18:16:25 +08:00
typedef struct __packed
{
2025-06-27 00:32:57 +08:00
int connect_time_out;
int interaction_time_out;
}nrf_time_struct;
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD>ͨ<EFBFBD>ų<EFBFBD>ʼ<EFBFBD><CABC>
2025-06-27 00:32:57 +08:00
int nrf_init(void);
2025-07-05 19:47:28 +08:00
// ȥ<><C8A5>ʼ<EFBFBD><CABC>
2025-06-27 00:32:57 +08:00
int nrf_deinit(void);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
2025-06-27 00:32:57 +08:00
int nrf_set_connect_state(int s);
2025-07-05 19:47:28 +08:00
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
2025-06-27 00:32:57 +08:00
int nrf_get_connect_state(void);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD>ͨ<EFBFBD>ŵ<EFBFBD>ַ
2025-06-27 00:32:57 +08:00
int nrf_set_addr(const u8 *my,const u8 *dst);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_set_retry_times(int times);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_set_chan(u8 chan);
2025-07-05 19:47:28 +08:00
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD>ŵ<EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_get_chan(void);
2025-07-05 19:47:28 +08:00
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_get_packet_num(int *all,int *failed);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD>ͼ<EFBFBD>¼
2025-06-27 00:32:57 +08:00
int nrf_clear_packet_num(void);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD>ó<EFBFBD>ʱʱ<CAB1><CAB1>
2025-06-27 00:32:57 +08:00
int nrf_set_time_out(int connect_time_ms,int interaction_time_us);
2025-07-05 19:47:28 +08:00
// <20><>ȡһ<C8A1><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ݣ<EFBFBD>NRF_OK<4F>ɹ<EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_read_byte(uint8_t *data);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD>ս<EFBFBD><D5BD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_clear(void);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>NRF_OK
2025-06-27 00:32:57 +08:00
int nrf_send(void *data,int size,int *rs);
2025-07-05 19:47:28 +08:00
// ͨ<><CDA8>Э<EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD> NRF_OK
2025-06-27 00:32:57 +08:00
int nrf_send_load(nrf_load_struct *load);
2025-07-05 19:47:28 +08:00
// <20>ڽ<EFBFBD><DABD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>ظ<EFBFBD><D8B8>Է<EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_respond(nrf_load_struct *load);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ӧ,1,<2C><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>0<EFBFBD><30><EFBFBD><EFBFBD>Ӧ
2025-06-27 00:32:57 +08:00
int nrf_set_no_respond(int power);
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD>֡,<2C><><EFBFBD><EFBFBD>NRF_OK<4F>ɹ<EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_packet_pack(nrf_load_struct *load,u8 type,void *data,int data_len);
2025-07-05 19:47:28 +08:00
// ͬ<><CDAC>ͨ<EFBFBD><CDA8><EFBFBD>ŵ<EFBFBD>
2025-06-27 00:32:57 +08:00
int nrf_ctrl_chan(u8 chan);
#endif