3.24_433_RX版本:封装RF433模块,完成开机进入TX/RX模式并在开发板验证成功

This commit is contained in:
2026-03-24 16:59:20 +08:00
commit e439dd465e
1311 changed files with 692196 additions and 0 deletions

119
Core/Inc/rf433_rx_app.h Normal file
View File

@ -0,0 +1,119 @@
/**
******************************************************************************
* @file rf433_rx_app.h
* @brief RF433 RX应用层接口
******************************************************************************
*/
#ifndef __RF433_RX_APP_H__
#define __RF433_RX_APP_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "rf433.h"
#include <stdint.h>
#include <stdbool.h>
/* ============================================================================
* 数据类型定义
* ============================================================================ */
/**
* @brief RX状态机状态
*/
typedef enum {
RX_STATE_INIT = 0, /**< 初始化状态 */
RX_STATE_RECEIVING, /**< 接收中状态 */
RX_STATE_IDLE, /**< 空闲状态 */
} rx_state_t;
/**
* @brief RX统计结构体
*/
typedef struct {
uint32_t total_received; /**< 总接收次数 */
uint32_t total_expected; /**< 总期望次数 */
uint32_t lost_packets; /**< 丢包数 */
uint8_t lost_percent; /**< 丢包率(%) */
} rf433_rx_stats_t;
/**
* @brief RX应用结构体
*/
typedef struct {
rx_state_t state; /**< 当前状态 */
rf433_rx_stats_t stats; /**< 统计信息 */
uint32_t tx_current_number; /**< TX当前序号 */
uint32_t tx_total_number; /**< TX总次数 */
uint32_t tx_number_record; /**< TX序号记录 */
rf433_register_t config; /**< RF433配置 */
bool is_running; /**< 是否正在运行 */
} rf433_rx_app_t;
/* ============================================================================
* API函数声明
* ============================================================================ */
/**
* @brief 初始化RX应用层
* @param config RF433配置参数
* @retval RF433_OK 成功
* @retval RF433_ERROR 参数错误
*/
rf433_error_t rf433_rx_app_init(const rf433_register_t *config);
/**
* @brief 启动RX自动接收
* @retval RF433_OK 成功
*/
rf433_error_t rf433_rx_app_start(void);
/**
* @brief 停止RX自动接收
* @retval RF433_OK 成功
*/
rf433_error_t rf433_rx_app_stop(void);
/**
* @brief RX任务函数在主循环中调用
*/
void rf433_rx_app_task(void);
/**
* @brief 获取RX状态
* @return 当前RX状态
*/
rx_state_t rf433_rx_app_get_state(void);
/**
* @brief 获取RX统计信息
* @param stats 统计信息结构体指针
* @retval RF433_OK 成功
* @retval RF433_ERROR 参数错误
*/
rf433_error_t rf433_rx_app_get_stats(rf433_rx_stats_t *stats);
/**
* @brief 重置RX统计信息
*/
void rf433_rx_app_reset_stats(void);
/**
* @brief 解析数据包
* @param data 数据包指针
* @param length 数据包长度
* @param tx_total 输出TX总次数
* @param tx_current 输出TX当前序号
* @retval RF433_OK 解析成功
* @retval RF433_ERROR 数据包格式错误
*/
rf433_error_t rf433_rx_app_parse_packet(const uint8_t *data, uint16_t length,
uint32_t *tx_total, uint32_t *tx_current);
#ifdef __cplusplus
}
#endif
#endif /* __RF433_RX_APP_H__ */