Angel_YY 发表于 2018-4-16 23:17:04

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

之前跟朋友聊天,聊到了现代农业蔬菜大棚的智能化问题,朋友希望我能够给一个建议,如何实现智能化管理和监控,我的大概思路是控制节点上安装传感器和执行器,节点间通过485总线将节点信息汇集到网关,网关通过4G网络上送到云,在监控端网络连接到云进行控制。之后了解到用户的监控和节点端的距离通常不会超过3000米,而且两者中间通常没有高大建筑物阻挡,于是考虑是否可以使用LoRa方案实现,正好社区有LoRa模块的使用机会,于是果断下手,幸运的是获得了这次试用的机会,于是果断修改方案。
完整方案的大致思路如下图所示:

考虑到目前使用只有一对LoRa模块,暂时先实现如下图所示简易版功能:

两个LoRa模块分别位于PC端和节点端。PC端使用STM32F103C8T6最小系统板,串口接LoRa模块,USB端连接PC,开发板实现USB CDC设备,使得连接LoRa的串口和USB CDC串口之间实现透传(串口接收到任何数据,直接由USB CDC发送给PC机;接收到PC机任何数据,直接通过串口转发给LoRa模块),波特率全部采用9600。
PC端STM32F103C8T6最小系统板的原理图如下:

PA0、PA1分别接LoRa模块的M0和M1,PA2和PA3作为串口连接LoRa模块串口,模块电源同样取自系统板。硬件连接图如下所示:

STM32CubeMX实现管脚配置和生成工程:

在IAR中编写代码后使用ST-Link下载到最小系统板。
最小系统板连接LoRa模块和PC机,PC机上使用串口工具发送数据和接收数据。另一个LoRa使用JlinkOB做同样的事情。

经测试,STM32F103C8T6最小系统板实现了串口与USB CDC串口之间的透传功能,PC端开发板项目完成。
附:源代码简单分析
STM32CubeMX设置好并生成IAR工程后,程序框架已经实现了所需要的大部分工作,只需要修改很少的地方就可以完成了。

工程只需修改5处,第一处是在USB的中断文件usbd_cdc_if.c中,包含串口头文件,因为需要在USB中断中调用串口发送函数。

第二处依然是在USB的中断文件usbd_cdc_if.c中,USB CDC接收回调函数中调用串口发送函数,把接收到的数据发送出去。

第三处是修改main.c文件,包含USB CDC的头文件,同时定义串口的接收和发送缓冲区。

在主函数main中初始化SX1278的M0和M1为低电平,开启串口接收中断。

实现串口中断回调函数,在函数中把串口接收到的数据通过USB发送出去。


源代码:




zero99 发表于 2018-4-17 14:50:42

感谢分享,请汇总到4月技术原创
https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html

lulululu2018 发表于 2018-4-19 11:20:17

很棒~我的毕设就是用32来控制lora模块互相收发信息,但是导师给我的板子是广州朗威公司开发的,感觉和您的完全不一样,我的那个LoRa模块完全没有M0,M1这些接口,只有一个USB接口,目前我只能人工发送AT指令实现两个模块的PMAC、透转模式的传播、。http://www.lanvee.com/h-col-131.html

andykim 发表于 2018-5-13 23:44:25

学习了

samhong 发表于 2018-5-14 05:33:10

学习了学习了!

cccjr 发表于 2018-6-2 16:06:57

为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID

Angel_YY 发表于 2018-6-3 08:00:55

cccjr 发表于 2018-6-2 16:06
为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID

用STM32CubeMX重新生成一下代码在试试。

cccjr 发表于 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.

cccjr 发表于 2018-6-3 12:02:23

已经解决 iar版本不对==

bianyang 发表于 2019-5-11 00:23:00

求教,找不到stm32f1xx.h编译出错显示cannot open source file“stm32f1xx.h”,请问怎么解决
页: [1] 2
查看完整版本: 【LoRa模块_E32-TTL-100】+PC端代码实现