【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发送出去。
源代码:
感谢分享,请汇总到4月技术原创
https://www.stmcu.org.cn/module/forum/thread-615497-1-1.html 很棒~我的毕设就是用32来控制lora模块互相收发信息,但是导师给我的板子是广州朗威公司开发的,感觉和您的完全不一样,我的那个LoRa模块完全没有M0,M1这些接口,只有一个USB接口,目前我只能人工发送AT指令实现两个模块的PMAC、透转模式的传播、。http://www.lanvee.com/h-col-131.html 学习了 学习了学习了! 为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID cccjr 发表于 2018-6-2 16:06
为什么我我用IAR打开了代码,显示project 没有工具STLINK_ID
用STM32CubeMX重新生成一下代码在试试。 好的,我试试。
打开工程的时候提示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.
已经解决 iar版本不对== 求教,找不到stm32f1xx.h编译出错显示cannot open source file“stm32f1xx.h”,请问怎么解决
页:
[1]
2