SendFrame( ) //lorwan 主程序中,调用该接口开启一次数据发送请求,包括是否需要下行确认,指定应用数据,重发次数等
->LoRaMacMcpsRequest() //向协议栈中请求发送数据,包括确认协议栈是否处于Busy状态/端口合法性/应用数据长度检查
->Send() //调用PrepareFrame()打包LoRaWAN数据包,并发起发送调度
->ScheduleTx()
->RegionNextChannel() // 随机设置可使用通道 =>RegionCN470NextChannel()
->SecureFrame() //加密 keil在PrepareFrame()里
->LoRaMacCryptoSecureMessage()
->LoRaMacSerializerData() //打包PHY数据
->SendFrameOnChannel()
->RegionTxConfig()
->RegionCN470TxConfig()
RegionCommonComputeTxPower() //计算发送功率
Radio.SetChannel() //根据通道设置发送频率 => SX1276SetChannel()
Radio.SetTxConfig() //设置最大荷载长度
Radio.SetMaxPayloadLength() //设置发送配置
->Radio.Send() //向sx1278数据缓冲区FIFO填写payload,设置超时时间
LoraWAN源码学习(2)--数据发送流程
最新推荐文章于 2024-08-21 13:40:15 发布