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

查看: 5318|回复: 13

[Lora] 【LoRa模块_E32-TTL-100】+PC端代码实现

[复制链接]

31

主题

1696

回帖

177

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2018-4-16 23:17:04 | 显示全部楼层 |阅读模式
之前跟朋友聊天,聊到了现代农业蔬菜大棚的智能化问题,朋友希望我能够给一个建议,如何实现智能化管理和监控,我的大概思路是控制节点上安装传感器和执行器,节点间通过485总线将节点信息汇集到网关,网关通过4G网络上送到云,在监控端网络连接到云进行控制。之后了解到用户的监控和节点端的距离通常不会超过3000米,而且两者中间通常没有高大建筑物阻挡,于是考虑是否可以使用LoRa方案实现,正好社区有LoRa模块的使用机会,于是果断下手,幸运的是获得了这次试用的机会,于是果断修改方案。
完整方案的大致思路如下图所示:
0001.png
考虑到目前使用只有一对LoRa模块,暂时先实现如下图所示简易版功能:
0002.png
两个LoRa模块分别位于PC端和节点端。PC端使用STM32F103C8T6最小系统板,串口接LoRa模块,USB端连接PC,开发板实现USB CDC设备,使得连接LoRa的串口和USB CDC串口之间实现透传(串口接收到任何数据,直接由USB CDC发送给PC机;接收到PC机任何数据,直接通过串口转发给LoRa模块),波特率全部采用9600。
PC端STM32F103C8T6最小系统板的原理图如下:
0003.png
PA0、PA1分别接LoRa模块的M0和M1,PA2和PA3作为串口连接LoRa模块串口,模块电源同样取自系统板。硬件连接图如下所示:
0004.jpg
STM32CubeMX实现管脚配置和生成工程:
0005.png
在IAR中编写代码后使用ST-Link下载到最小系统板。
最小系统板连接LoRa模块和PC机,PC机上使用串口工具发送数据和接收数据。另一个LoRa使用JlinkOB做同样的事情。
0006.png
经测试,STM32F103C8T6最小系统板实现了串口与USB CDC串口之间的透传功能,PC端开发板项目完成。
附:源代码简单分析
STM32CubeMX设置好并生成IAR工程后,程序框架已经实现了所需要的大部分工作,只需要修改很少的地方就可以完成了。
0011.png
工程只需修改5处,第一处是在USB的中断文件usbd_cdc_if.c中,包含串口头文件,因为需要在USB中断中调用串口发送函数。
0012.png
第二处依然是在USB的中断文件usbd_cdc_if.c中,USB CDC接收回调函数中调用串口发送函数,把接收到的数据发送出去。
0013.png
第三处是修改main.c文件,包含USB CDC的头文件,同时定义串口的接收和发送缓冲区。
0014.png
在主函数main中初始化SX1278的M0和M1为低电平,开启串口接收中断。
0015.png
实现串口中断回调函数,在函数中把串口接收到的数据通过USB发送出去。


源代码: LoRaGetway.zip (1.64 MB, 下载次数: 239)
回复

使用道具 举报

1182

主题

3785

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-3-17
发表于 2018-4-17 14:50:42 | 显示全部楼层
感谢分享,请汇总到4月技术原创
https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html
回复 支持 反对

使用道具 举报

3

主题

11

回帖

0

蝴蝶豆

初级会员

最后登录
2018-5-17
发表于 2018-4-19 11:20:17 | 显示全部楼层
很棒~我的毕设就是用32来控制lora模块互相收发信息,但是导师给我的板子是广州朗威公司开发的,感觉和您的完全不一样,我的那个LoRa模块完全没有M0,M1这些接口,只有一个USB接口,目前我只能人工发送AT指令实现两个模块的PMAC、透转模式的传播、。
回复 支持 反对

使用道具 举报

1

主题

60

回帖

0

蝴蝶豆

中级会员

最后登录
2020-7-6
发表于 2018-5-13 23:44:25 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

1

主题

455

回帖

2

蝴蝶豆

金牌会员

最后登录
2019-5-7
发表于 2018-5-14 05:33:10 | 显示全部楼层
学习了学习了!
回复 支持 反对

使用道具 举报

0

主题

4

回帖

0

蝴蝶豆

初级会员

最后登录
2018-6-25
发表于 2018-6-2 16:06:57 | 显示全部楼层
为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID
回复 支持 反对

使用道具 举报

31

主题

1696

回帖

177

蝴蝶豆

论坛元老

最后登录
2020-12-9
 楼主| 发表于 2018-6-3 08:00:55 | 显示全部楼层
cccjr 发表于 2018-6-2 16:06
为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID

用STM32CubeMX重新生成一下代码在试试。
回复 支持 反对

使用道具 举报

0

主题

4

回帖

0

蝴蝶豆

初级会员

最后登录
2018-6-25
发表于 2018-6-3 10:20:40 | 显示全部楼层
好的,我试试。
打开工程的时候提示The project contains the unknown tool "NULINK_ID"
然后工程里面提示
LOAD: Configuration 'LoRaNode' in the project 'LoRaNode' contains broken options for tool 'STLINK_ID':
The format of this file is not supported by this version of the workbench. It appears to have been written by a newer version of the workbench.
Diagnostics: 'Settings 'STLINK_ID': unsupported version - 5'.
Options for 'STLINK_ID' will be set to default.
Creating backup of original project file.

回复 支持 反对

使用道具 举报

0

主题

4

回帖

0

蝴蝶豆

初级会员

最后登录
2018-6-25
发表于 2018-6-3 12:02:23 | 显示全部楼层
已经解决 iar版本不对  ==
回复 支持 反对

使用道具 举报

0

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
2019-5-11
发表于 2019-5-11 00:23:00 | 显示全部楼层
求教,找不到stm32f1xx.h编译出错显示cannot open source file“stm32f1xx.h”,请问怎么解决
回复 支持 反对

使用道具 举报

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