赞
踩
经过前面的枯燥笔记学习,相信你除了有一个可编译的工程,为了更深一步了解LoRa,我们一起走进SX1276文件,走进LoRa的基本驱动。
void SX1276SetRxConfig( RadioModems_t modem, uint32_t bandwidth,
uint32_t datarate, uint8_t coderate,
uint32_t bandwidthAfc, uint16_t preambleLen,
uint16_t symbTimeout, bool fixLen,
uint8_t payloadLen,
bool crcOn, bool freqHopOn, uint8_t hopPeriod,
bool iqInverted, bool rxContinuous );
void SX1276SetTxConfig( RadioModems_t modem, int8_t power, uint32_t fdev,
uint32_t bandwidth, uint32_t datarate,
uint8_t coderate, uint16_t preambleLen,
bool fixLen, bool crcOn, bool freqHopOn,
uint8_t hopPeriod, bool iqInverted, uint32_t timeout )
这两个驱动程序也是LoRa最基本的驱动程序,通过这两个函数,能把LoRa芯片(SX1276)进行发送/接收的基本配置,有所不同,但可通过上个篇章慢慢继续参数对比
这五个中断函数包含了中断响应机制SyncAddress、Preamble、TxReady、RxReady等等…
依据LoRa不同的工作模式,DIO中断机制也有所不同。
LoRa芯片的FSK模式和LoRa模式,其相关的DIO中断配置在寄存器这里地方
实际上,它在这个官方驱动里面,包含了一个默认用法,存在函数里面void SX1272SetRx( uint32_t timeout );如:
SX1272Write( REG_DIOMAPPING1, ( SX1272Read( REG_DIOMAPPING1 ) & RFLR_DIOMAPPING1_DIO0_MASK & RFLR_DIOMAPPING1_DIO2_MASK ) | RFLR_DIOMAPPING1_DIO0_00 | RFLR_DIOMAPPING1_DIO2_00 );
详情里面的几个宏的定义,可以自己追踪。
设置芯片进入睡眠模式,芯片进入睡眠后,功耗极低,1ua左右;
设置芯片进入标准模式,芯片计入睡眠模式后,无法接收数据或者发送数据,可由这个函数唤醒
设置发送/接收超时时间,在该时间内,若没完成发送/接收,将无法再发送/接收,需要重新设置该函数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。