极海APM32F107V6 + 合宙Air780E

一、前言

本来4G模块是想用移远的EC800M的,刚好上年买了块叫宇的开发板闲置。结果经常没信号,然后很多AT指令都回的error,固件都刷不了,不知道是我这板子坏的还是怎么样,折腾好久都用不了,最后还是用比较熟悉的合宙,同样是很久之前买的闲置。

二、串口底层处理

1、选用串口

看了下原理图,串口123都被用了,4用作调试串口,所以选用串口5。(其实我一开始打算用串口1,但是这块开发板原理图上串口1的TX脚有拉出来,实际上我在开发板上找不到PA9,不知道是不是因为我这块不是最新的)

注意UART5不支持DMA,刚好我也不用就是了

2、修改极海提供的board

然后官方sdk给的com_init只有串口1~4,我就直接在他们的底层把5的也加上好了。

数组长度由4改成5

结构体接上COM5

这里都加上UART5的

这里简单再提一下我的框架:

我建了一个user文件夹,user文件夹下有driver和app2个文件夹,但因为keil不能再细分,所以这里只能看到User,我将串口这些底层处理的放在driver,4g部分放在app

3、初始化

发送和接收都使用了中断,接收跟上一篇调试串口一样使用了空闲中断。

宏定义如下:

4、串口中断处理

这里没有用多级缓存,就是很普通的发送和接收。接收完毕后将标志位置1

发送完成时将busy标志位清零

5、发送接收处理

这里就封装成Module4G_TXBufIn和Module4G_RXBufOut给应用层使用

三、Air780E通讯处理

1、用串口助手跑通流程

跟之前esp8266那样,先用usb转串口,在电脑先跑通整个流程,再去写程序会事半功倍。

后边还有mqtt部分的就不截了

四、Air780E接口

1、发送底层部分

都是直接调用

2、AT指令发送部分

我这里做了一个发送表

然后根据当前的cmd_type发送

然后这个发送任务调用发送命令的函数就好,因为模块mqtt连接部分的回复的时长不一样,所以需要区分一下发送间隔时间,时间管理是我做了一个简单的裸机OS,就不多说了

3、接收底层部分

将底层收到的数据收过来处理

4、AT指令接收解析部分

我同样也做了一个表,同时带处理事件

处理事件如下:

AT处理函数如下:

5、mqtt数据发送部分

这里跟我之前做的esp32C3和stm32+ESP8266连接腾讯云其实一样的,也不重复说了,我这里跟ESP32C3的项目一样用了cJSON库而已

但注意这里合宙的转义字符处理

6、mqtt数据解析部分:

比较收到SUB的信息,然后就进入mqtt解析

然后就是解析mqtt,这里我只截到led1,后边都一样的,收到控制指令马上再发送当前状态就好

五、测试

串口打印的通讯流程:

在腾讯云平台上操作,下发开灯后马上上传当前状态

因为之前做的这种灯的视频太多,就不上传了

六、总结

这次我AT的发送和接收都用了映射表,但实际上,如果你是第一次用一个不熟悉的模块,AT指令接收解析部分我还是建议用我之前写的这样STM32+Cubemx+Esp8266(三)ESP8266连接腾讯IOT_esp8266连接腾讯云-CSDN博客

虽然这样写很多if,else比较长,但是调试方便。你卡在哪一步没过去比较好打断点。我这样写是因为我用得比较多了,想写得简单清晰点,发送部分就没所谓

还有就是这里例程初始堆栈配置比较小,记得改一下

我改成8K和4K了,如下:

相关推荐
Wave8454 小时前
基于 STM32 + ESP8266 + W25Q64 的双核 OTA 底层架构总结
stm32·嵌入式硬件·架构
xiangw@GZ5 小时前
WiFi 全世代(WiFi1~WiFi7)技术规范与核心参数总结
嵌入式硬件
振南的单片机世界5 小时前
CPU时钟:频率越高跑越快,但物理极限在“拖后腿”
stm32·单片机·嵌入式硬件
普中科技6 小时前
【普中 51-Ai8051 开发攻略】-- 第 20 章 输入捕获实验
单片机·嵌入式硬件·输入捕获·pca·普中科技·ai8051u·aicube
d111111111d6 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
云里物里8 小时前
1000个物联网电子标签刷新完需要多久?
物联网·电子价签·电子标签·云里物里·电子墨水屏标签·蓝牙电子标签·电子标签系统
d111111111d9 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
三佛科技-134163842129 小时前
主控FT32F031便携式吸尘器方案,迷你手持吸尘器MCU控制方案开发
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
新新学长搞科研10 小时前
【高质量能源会议推荐】第十一届能源与环境研究进展国际学术会议(ICAEER 2026)
人工智能·物联网·算法·机器学习·能源·环境·新能源
一个平凡而乐于分享的小比特10 小时前
一文读懂MCU与FPGA:核心区别、协同之道与双修秘籍
单片机·fpga开发·职场发展·mcu开发