完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
例程使用官方库,但再应用上做了部分修改调整,官方例程里是针对lorawan进行了大篇幅的操作,各种函数指针骚操作,看得脑壳疼。
在官方例程的基础上,对程序进行了剥离整合,做成了最简的MAC层通信,一收一发。测试时,对应修改宏定义及底层SPI配置即可。 模块使用ASR6500S,其内部lora射频芯片也即sx1262 void LORA_Send(uint8_t* buffer, uint8_t size) { SX126xSetDioIrqParams( IRQ_TX_DONE,IRQ_TX_DONE, IRQ_RADIO_ALL, IRQ_RADIO_ALL ); SX126xSetStandby( STDBY_RC ); SX126xSetBufferBaseAddress( 0x00, 0x00 ); SX126x.PacketParams.Params.LoRa.PayloadLength = size; SX126xSetPacketParams( &SX126x.PacketParams ); SX126xSendPayload( buffer, size, 0 ); } void LORA_RxMode(void) { SX126xSetDioIrqParams( IRQ_RX_DONE, IRQ_RX_DONE,IRQ_RADIO_NONE,IRQ_RADIO_NONE ); SX126xSetStandby( STDBY_RC ); SX126xSetBufferBaseAddress( 0x00, 0x00 ); SX126xSetLoRaSymbNumTimeout(0); SX126xSetRx( 0 ); } uint8_t lora_buf[10] = {0x01,0x02,0x03,0x04,0x05,0x06,0x0a,0x0b,0x0c,0x0d}; uint8_t packet_size = 0, buf_offset = 0; uint8_t lora_rxbuf[64] = {0}; void main(void) { BSP_Init(); // 硬件初始化 SYS_Init();// 系统数据初始化 LORA_Init();// sx1262初始化配置 LORA_RxMode();// 进入接收模式 enableInterrupts();// 系统中断使能 while (1) { #if TX // 宏定义,开启发送 if(g_SysData.Send == 1) // 定时器中断,间隔5s发送一次 { g_SysData.Send = 0; LORA_Send(lora_buf, 10);// 发数据 } if(g_SysData.Irq == 1)// 发送中断 { g_SysData.Irq = 0; SX126xClearIrqStatus(IRQ_TX_DONE); // 清中断信息 } #endif #if RX 宏定义,开启接收 if(g_SysData.Irq == 1) // 接收中断 { g_SysData.Irq = 0; if(SX126xGetIrqStatus() == IRQ_RX_DONE) // 中断标志为接收中断 { SX126xGetRxBufferStatus(&packet_size, &buf_offset); // 读取接收的数据长度 SX126xReadBuffer(buf_offset, lora_rxbuf, packet_size); // 接收数据 SX126xClearIrqStatus(IRQ_RX_DONE); // 清中断信息 LORA_RxMode(); // 置为接收模式 } } #endif } } 问题点1:发送中断无法进入。再进入一次发送中断时,需对其中断标志做清除才可再下一次产生中断 问题点2:无法接收数据。在测试过程中,原板子只做了MCU+lora芯片+外围电路,没有焊接天线,数据一直无法接收。查了几个小时无果后,焊接天线尝试,居然可以了。 |
|
|
|
只有小组成员才能发言,加入小组>>
3262 浏览 9 评论
2943 浏览 16 评论
3442 浏览 1 评论
8950 浏览 16 评论
4036 浏览 18 评论
1078浏览 3评论
558浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
551浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2286浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1846浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 18:40 , Processed in 1.154642 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号