串口应用例子笔记

本文详细介绍了如何配置Wi-Fi模块作为热点,通过手机TCP控制实现串口通信,包括AT指令的发送与解析,语音指令控制,以及与阿里云物联网平台的集成,涉及MQTT协议和设备数据交换。还提到了固件烧录、设备订阅发布和字符串处理技巧。
摘要由CSDN通过智能技术生成

****1wifi模块开热点 手机TCP控制

先按照步骤配置串口2(TxD是PA2,复用推挽输出,RxD是PA3,浮空输入

连接串口线 检查电脑设备驱动;配置串口设置,并发送指令(AT指令要勾选发送新行)

手机接入热点后,打开APP并选择端口即可进行字符传输控制,发到串口的文字会显示到串口助手界面,若strstr函数检测到发送文段中有“关键字”则会执行指令操作

在字符中有”双引号时,需要在双引号前加上/反斜杠

****2语音指令控制

先按照步骤配置串口3(TxD是PB10,复用推挽输出,RxD是PB11,浮空输入

参考《HLK-V20固件命令词与播报词格式20210827.xlsx》文件中固定的“命令词”

需要注意的是返回值是四组两位十六进制数据,而且第三组不同,可以通过设置strstr函数检测不同的“关键词”控制不同的指令

先唤醒“小盈小盈”,唤醒成功的反馈“4F 00 AA F4”

****3wifi模块连接热点 访问天气网站API端口

先按照步骤配置串口2(TxD是PA2,复用推挽输出,RxD是PA3,浮空输入

连接串口线 检查电脑设备驱动;配置串口设置,并发送指令(AT指令要勾选发送新行)

模块接入网站后,网站返回的数据流会显示到串口助手界面,若strstr函数检测到发送文段中有“关键字”则会执行指令操作,提取数据流中的天气信息等

在字符中有”双引号时,需要在双引号前加上/反斜杠

信息提取操作逻辑

char *p;

int temp;

If(接收标志位=1)

{接收标志位=0;

Printf{,Buff数组}

If(strstr(Buff数组)“?”){}// #include "string.h"

p=strstr(Buff数组,"?"));

if(p)

 {

p=p+x;//位置偏移

temp=atoi(p);//字符转整型,去除多余字符 #include "stdlib.h"

printf("",temp);

}}

****4wifi模块连热点 阿里云物联网(MQTT协议+AT指令)

前期准备——搜阿里云,生活物联网平台(飞燕),创建项目产品设备,将三元组转换

按照步骤配置串口2(TxD是PA2,复用推挽输出,RxD是PA3,浮空输入

连接串口线 检查电脑设备驱动;配置串口设置,并发送指令(AT指令要勾选发送新行)

发送AT指令和三元组转换这一过程,可以用软件手动操作

也可以用哈希转换.c+阿里云初始化程序编写运行后自动进行 如下

AT指令发送及等待响应函数,等到关键字则跳出;失败则将a改值并提示重新初始化

阿里云逐步初始化函数,每一步完成都判断a的值,异常则goto回去重新开始初始化

131行——Sprintf()字符串拼接功能

设备成功匹配接入后,使用APP即可进行信息流传输控制(开关或文本框)并显示到串口助手界面,若strstr函数检测到发送文段中有“关键字”则会执行指令操作

函数中的AT指令要在字符结尾加上\r\n;在字符中有”双引号时,需要在双引号前加上\反斜杠;更换面板或者是更换设备绑定需要先本地删除再重新扫配网二维码;注意加上延时函数

****WiFi模块烧固件——MQTT固件

刚买回来的WiFi模块可以进行AT指令操作,但MQTT需要进行烧固件才能通信

1.烧录时,串口助手需要关闭,不然会占用

2.TxRx反接,模块io口接地烧录模式,RST复位电平

3.波特率要看固件文件有没有提醒,或者默认115200

****阿里云设备订阅和发布

设备发布代码——Set是定制  post是发布


在字符中有”和/时,需要在双引号前加上\反斜杠

串口发送字符函数代码段中字符串太长可以加反斜杠回车换行顶格,防止界面跳转太烦
对于主函数while循环中,实时和条件触发的代码放一起时,要避免阻塞段对运行的影响

Sprintf可以用来拼接字符,但缓存空间过大会卡住,注意内核缓存大小(可以修改)

Spritf将传感器采集到的数值拼接放入AT指令字符内然后存入新字符数组内,串口发送数组

参考学习,望有助

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值