你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 8106|回复: 11

[Lora] 【LoRa模块测评】-基于STM32的LoRa双机通信

[复制链接]

9

主题

735

回帖

287

蝴蝶豆

论坛元老

最后登录
2020-11-20
发表于 2018-5-1 22:17:05 | 显示全部楼层 |阅读模式
本帖最后由 す疯Ⅱ恒す 于 2018-5-1 22:18 编辑

接上篇。【LoRa模块测评】-串口助手实现双机通信

本篇主要完成两个STM32开发板通过LoRa模块进行双向通信,开发板1:STM32F0308-DISCOVERY;开发板2:NULCLEO-F302R8;
IMG_20180501_214420.jpg
主要实现功能:按开发板1上的B1按键,可以向开发板2发送操作命令,控制开发板2上LED灯的开关或闪烁。同样,按开发板2的B1按键亦可控制开发板1上LED灯的开关或闪烁。通过LoRa模块进行双向通信。

由之前的测评我们知道,模块之间实现通信的方式有好几种,这里我们使用点对点的方式,即把地址都设置为0x0000,信道是0x17,即433Mhz,选用模式0透传模式。配置好之后连接到开发板上去。
LoRa模块我们需要用串口通信,同时需要控制M0,M1引脚,直接接到IO即可,暂时没用到LoRa模块唤醒主机的功能,不接即可。最后接上GND与3.3V电源。


硬件连接:
开发板1   STM32F030R8:
M0: PB4      M1:  PB5       串口使用usart1,PB6  PB7
按键B1:PA0(按键另一端连接到VDD,所以IO需要配置下来输入)       绿LED:PC9
开发板2   STM32F302R8:
M0:  PD2      M1:  PC12       串口使用usart3,PC10  PC11
按键B1:PC13(上拉输入)      绿LED:PB13

串口配置为9600波特率,中断接收串口数据。

主要程序(两个开发板的应用程序都是一样的,只是底层不一样):
  1. void LoRa_Func(void)
  2. {
  3. if ( Get_Key())
  4.     {
  5.         SendKeyValue %= 3;
  6.         SendKeyValue ++;
  7.         LoRa_SendData(1, &SendKeyValue);
  8.     }

  9.     if ( *lora.reccnt != 0)
  10.     {
  11.         switch ( lora.buf[0] )
  12.         {
  13.             case 0x01 :
  14.                 LedFlag = 0;
  15.                 Set_LedGreen();
  16.                 break;
  17.                
  18.             case 0x02 :
  19.                 LedFlag = 0;
  20.                 Reset_LedGreen();
  21.                 break;
  22.             case 0x03 :
  23.                 LedFlag = 1;
  24.                 break;
  25.             default:
  26.                 break;
  27.         }
  28.         *lora.reccnt = 0;
  29.     }
  30. }
复制代码
通过按按键,发命令代码到对面板,命令代码为01-03,轮流发送。开发板收到01打开LED,收到02关闭LED,收到03闪烁LED(500ms一次)。

实验现象:按开发板1的按键一下,开发板2的LED点亮;再按开发板1的按键,开发板2LED灭;再按开发板1的按键,开发板2的LED开始闪烁。同样操作开发板2的按键,开发板1的LED也能得到同样的效果。
至此,STM32通过LoRa模块实现双机通信成功。附上代码。

code.rar

下载

7.5 MB, 下载次数: 2643, 下载积分: ST金币 -1

code2.rar

下载

16.27 MB, 下载次数: 452, 下载积分: ST金币 -1

回复

使用道具 举报

9

主题

735

回帖

287

蝴蝶豆

论坛元老

最后登录
2020-11-20
 楼主| 发表于 2018-5-1 22:27:31 | 显示全部楼层
一点小插曲:STM32F302R8开发板之前是做电机实验用的,这次只用NUCLEO进行实验,开始用烧录程序怎么都烧不进去,后来折腾一会发现需要把JP5的短路帽接到U5V这边,用USB供电,就可以烧录了,小问题也要多注意。
另外刚开始是选用usart1的,接线接到右下角的D0 D1处的,但是死活没有数据发出来,检查了半天的程序无果。然后开始翻原理图,原来要用到这里需要短接SB62\SB63的,但是板上并没有短起来,当然用不了了。所以后来改用了usart3.
看似是小问题,也能耽误半天,以后遇到问题,不一定是程序的问题。有可能是电源或硬件呢、多留个心眼。
回复 支持 反对

使用道具 举报

36

主题

1996

回帖

32

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2018-5-2 09:36:52 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

6

主题

227

回帖

82

蝴蝶豆

金牌会员

最后登录
2019-11-12
发表于 2018-5-3 11:48:18 | 显示全部楼层
小插曲总结的不错,期待楼主后续的 Lora 测评实验!
回复 支持 反对

使用道具 举报

1

主题

60

回帖

0

蝴蝶豆

中级会员

最后登录
2020-7-6
发表于 2018-5-13 23:24:49 | 显示全部楼层
学习一下.
回复 支持 反对

使用道具 举报

0

主题

15

回帖

0

蝴蝶豆

初级会员

最后登录
2018-10-17
发表于 2018-6-4 11:47:24 | 显示全部楼层

谢谢分享,学习了
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
2018-9-22
发表于 2018-9-22 15:57:45 | 显示全部楼层
占楼学习一下
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
2019-4-18
发表于 2019-4-18 17:10:36 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

0

主题

87

回帖

0

蝴蝶豆

初级会员

最后登录
2019-12-8
发表于 2019-4-18 23:53:46 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
2019-8-29
发表于 2019-8-20 17:28:57 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版