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

查看: 5291|回复: 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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版