LORA-B1 实现点对点通信

上一节针对lora的驱动移植工作已经完成,而本节就要实现lora-b1开发板的点对点通信。一块儿板子作为发送端,另一块儿作为接收端。上电以后发送端每个500ms发送一次数据,接收端接收到以后进行解析分析如果和发送的数据一样LED进行一次亮灭切换。

开发环境准备:

硬件:

  • Lora-B1开发板两块(一发一收)
  • DAPLINK(或STLINK、Jlink)调试器

软件:

  • stm32cubemx
  • MDK5
  • 基于上节移植好驱动的代码

修改Lora参数配置:

Sx1278芯片无线通信支持lora、fsk、ook等通信模式。而我们就只讨论lora模式下的配置,而针对lora模式又有很多参数可以配置。

打开sx1276-lora.c文件,如下图所示地方就是默认的参数配置,这里一共有13个参数,而我们要修改lora模式下通信参数也是在这里修改。

这13个参数从上到下分别表示:

  • 无线通信频率
  • 功率
  • 带宽
  • 扩频因子
  • 纠错码
  • CRC校验开关
  • 隐藏头部信息开关
  • 接收单次模式、连续模式配置
  • 跳频模式开关
  • 跳频之间的周期长度
  • 发送包超时时间
  • 接收包超时时间
  • 负载信息长度

无线通信频率,我们使用的是sx1278芯片,和sx1276芯片在频率上有区别,所以这里我们要配置在sx1278范围内的频率。可参考下图:

扩频因子可能不太好理解,可以简单的先理解为lora的一种提高传输可靠性的技术,其他参数不变的情况下扩频因子越大,传输固定量数据需要的时间越长,抗干扰性越好。相反,扩频因子越小,传输的速度快但抗干扰性会降低。

关于跳频我们本节不会使用,所以把跳频可以关掉。

还有个单次接收和连续接收的配置,我们把他修改为连续接收,也就是一直处于接收状态。在一定时间内没有收到数据也不会产生接收超时。

所以最终我们需要在默认值的基础上修改两个参数,频率改为429000000;RxSingleOn设置为0即为连续接收模式。

编写lora发送接收应用:

一上电初始化完成之后进入while循环,发送端会每500ms发送一包数据,发送完成LED闪烁一次。

接收端接收到数据以后,进行比对,如果和发送端发送的数据一样就让led闪烁一次。

代码如下:

实验结果:

分别把发送端程序和接收到程序烧录到两块儿LORA-B1开发板。上电可以看到两块儿板上led等都开始闪烁,当按下发送端板子复位按键停止运行时,接收端的LED也不再会闪烁。

您可能还喜欢...

2 条回复

  1. leiyou说道:

    loratx 这个是变量吗