Reference
Last revision 2026/01/06
This guide provides detailed API descriptions for initializing and configuring LoRa modules for efficient RF communication.
API Description
/**
* @fn init
* @brief 初始化 lora模块
* @param NSSPin 输出引脚,从属选择引脚
* @param NRESETPin 输出引脚,低驱动时进入关机模式
* @return 返回true代表成功,false 代表失败
*/
bool init(uint8_t NSSPin = NSS_PIN, uint8_t NRESETPin = RESET_PIN);
/**
* @fn rxInit
* @brief 初始化接收模式
* @return 返回true代表成功,false 代表失败
*/
bool rxInit();
/**
* @fn sendPackage
* @brief 通过射频发送数据包
* @param sendbuf 需要发送的数据
* @param sendLen 要发送的数据长度,不超过64字节
* @return 返回true代表成功,false 代表失败
*/
bool sendPackage(uint8_t* sendbuf,uint8_t sendLen);
/**
* @fn receivePackage
* @brief 接收射频报文
* @param recvbuf 存接受数据的缓存区
* @return 接收数据的长度
*/
uint8_t receivePackage(uint8_t* recvbuf);
/**
* @fn waitIrq
* @brief 查询中断。
* @param irqMask 中断标志
* @return 返回true代表有中断,false 代表没中断
*/
bool waitIrq(uint8_t irqMask = LR_RXDONE_MASK);
/**
* @fn idle
* @brief 进入待机模式。
*/
void idle();
/**
* @fn sleep
* @brief 进入睡眠模式。
*/
void sleep();
/**
* @fn clearIRQFlags
* @brief 清中断标志指令
*/
void clearIRQFlags();
/**
* @fn setFrequency
* @brief 设置射频频率。
* @param freq 频率
* @return 返回true代表成功,false 代表失败
* @note 范围是137~1020Mhz lora1276,137~525Mhz lora1278
*/
bool setFrequency(uint32_t freq);
/**
* @fn setRFpara
* @brief 射频参数设置。
* @param BW 带宽,范围从7.8k到500k
* @param CR 编码率:4/5 ~ 4/8
* @param SF 扩散因子,范围为6 ~ 12
* @param CRC 校验
* @n LR_PAYLOAD_CRC_ON:带CRC校验,
* @n LR_PAYLOAD_CRC_OFF:不带CRC校验
* @return 返回true代表成功,false 代表失败
* @note 射频数据速率依赖于带宽,而传播因子编码速率则影响广播时间。如果SF=6,它将在这个函数中转为隐式模式
*/
bool setRFpara(uint8_t BW,uint8_t CR,uint8_t SF,uint8_t CRC);
/**
* @fn setPreambleLen
* @brief 设置 Preamble 长度
* @param len 长度
* @return 返回true代表成功,false 代表失败
*/
bool setPreambleLen(uint16_t length);
/**
* @fn setHeaderMode
* @brief 设置包头模式
* @param mode LR_IMPLICIT_HEADER_MODE or LR_EXPLICIT_HEADER_MODE
* @note if SF=6 ,it must be implicit header mode
*/
bool setHeaderMode(uint8_t mode);
/**
* @fn readRSSI
* @brief 读取 rssi
* @param mode 0:读取当前rssi, 1:读取接收到的最后一个包的rssi
* @return rssi
*/
uint8_t readRSSI(uint8_t mode = 0);
/**
* @fn setTxPower
* @brief 设置发射功率
* @param power 功率等级,0到15
* @return 返回true代表成功,false 代表失败
*/
bool setTxPower(uint8_t power);
/**
* @fn setPayloadLength
* @brief 设置负载长度
* @param len 负载长度
* @note 在隐式报头模式下,必须先设置有效载荷长度。length在隐式报头模式下是固定的
*/
bool setPayloadLength(uint8_t len);
Was this article helpful?
