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

查看: 8110|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版