基于STM32单片机与wifi模块串口结合进行PC端或手机端无线通信(附项目资料包)

news/2025/2/23 3:01:40/

项目所需材料:

  • stm32f103系列最小系统开发板一块。
  • WiFi模块。
  • 具有WiFi功能的手机及PC机。
  • 达普电池一包(或者学生电源一台)。.
  • 1k电阻4个,杜邦线若干。

一.硬件环境搭建

1.1-----主控芯片采用的是stm32f103c8t6芯片。
1.2----- wifi模块采用ESP8266安可信-12F。
1.3-----通过c8t6的串口2(PA2,PA3)与WiFi模块有线连接。

接线图

stm32f103最小系统开发板

  • PB.9 为wifi使能端口。
  • PA.2/PA.3为串口2端口。

wifi模块连线图
按照上图将WiFi的RST、EN等引脚上拉电阻,且与c8t6串口2有线连接即可

二.设备连接

2.1-----首先运行MDK。并且配置好stm32f103c8t6串口2的初始化及中断函数。(可参考正点原子的串口实验例程)
ESP模式配置说明
2.2-----由上表模式说明将wifi模块配置为运行模式。
2.3-----将WiFi配置为AP模式,具体步骤如下:

  1. 测试指令:AT

检查WiFi模块是否在线,若是则退出透传,且发送指令 **AT+CIPMODE=0**关闭透传。
退出透传:通过向wifi模块连续发送3个+(每个+号之间 超过10ms,这样认为是连续三次发送+)

  1. 设置工作模式:AT+CWMODE=2

数字1表示为STA模式,只能加入到已有的无线网络
数字2表示AP模式,相当于路由器创建一个无线网络,可让其他的终端连接此网络
数字3表示同时兼容AP和STA模式

  1. 重启模块:AT+RST

此处应延时2~4秒等待WiFi模块重启完成

  1. 配置AP模式无线参数:AT+CWSAP=“WiFi名称”,“WiFi密码”
  2. 检测IP是否获得:AT+CIFSR
  3. 启动多路连接模式:AT+CIPMUX=1
  4. 配置服务器:AT+CIPSERVER=1
  5. 设置服务器超时时间:AT+CIPSTO=时间(单位为s秒)

注意第6,7步完成之后需要延时500ms

2.4-----下载运行后,手机或者笔记本可看见自定义名称的WiFi网络,输入密码即可连接。

串口有线连接
无线网络
WiFi模块
stm32单片机
手机或者PC机

2.5-----由上图知三个设备之间的连接方式。到此步骤我们已经完成了硬件环境配置及基本连接,下面将对数据处理进行讲解。

三.数据处理

  • 序言

     我采用的是正点原子资料包中的网络调试助手。因为之前一直不知道数据传输格式,所以困扰了一下午。最后总结了两种方法。方法1:将串口2收到的WiFi数据用串口1打印在串口调试助手上面。方法2:直接用MDK软件debug然后将WiFi数据打印出来。(不会的可以参考正点原子stm32视频教程)经过实践,个人推荐大家使用方法2,数据观察更直观形象。
    

数据格式说明:
1.wifi数据结尾为\r\n,其ASCII码值为0x0D、0x0A。
2.网络调试助手端数据格式–> 数组第8位为字符逗号(0x2C),
第9位开始为数据长度(以每个数字为一个字节存储),一直到字符冒号(0x3A)结束.
原始数据从数组第(10+数据长度)位开始.

#include "WifiDataDeal.h"char wifi_data[Max_data_len];//提取数据值
u8 wifi_data_len=0;
u8 flag=0;
/*****************************************************************
*Module Name: LJH_1999
*Module Date:	2019/07/06
*Function: Wifi_Data_parsing(void)
*Description: 对串口2接收到的原始数据进行解析,并且将实际数据提取出来。
*Called By: /*此处为调用WiFi数据的各函数*/
*Input: 无
*Output:  wifi_data[Max_data_len]数组中存储网络调试助手端发送的数据
*Return://函数返回值的说明
*Others://其他说明
*****************************************************************/
void Wifi_Data_parsing()
{u8 post=9;//取初始数据位置u8 i;if(USART2_RX_STA&(1<<15))	//接收到数据{	wifi_data_len = USART2_RX_BUF[post]-48;while(USART2_RX_BUF[++post] != 0x3A)		//求出数据长度(int型){wifi_data_len = wifi_data_len*10 + USART2_RX_BUF[post]-48;}for(i=0 ; i<wifi_data_len ; i++){wifi_data[i] = USART2_RX_BUF[++post];}wifi_data[wifi_data_len] = 0;//字符串结束标志flag = 1;//标志接收到数据USART2_RX_STA=0;}
}

前面提过,串口接收到的数据其长度值以十六进制从数组的第9位开始存储,直到遇见字符冒号(0x3A)截止。故开始先从原始数据的第九位开始去获取本次数据的长度wifi_data_len,再从字符冒号之后开始**取实际数据**。(例如:数据长度为2,则原始数据第九位为0x32,实际数据从第11位开始;数据长度为12,则原始数据第九位为0x31,第十位为0x32,实际数据从第12位开始;其他情况以此类推)

注:
1.wifi_data_len = USART2_RX_BUF[post]-48;一句中减轻48是因为字符0其十进制表示为48,故此语句是将字符型数字转化为int整型数据。
2.在数据提取完成之后一定要在最后加一个0;否则数据拿去进行字符串判断时可能会出错。

四.附表及项目资料包

资料包的密码为:wifi
请点击此处转到百度云盘下载提取码为e89i

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/832503.html

相关文章

51单片机总线扩展外设 -- 外部RAM测试

现在ARM芯片的内部存储和外设资源很丰富了&#xff0c;最近翻出了几个老旧芯片&#xff0c;设计个测试板来学习下51单片机总线的使用。 一、硬件方面 51单片机是学习MCU入门的基础&#xff0c;之前在教程上学习过外部总线的扩展方式。我设计这个板子主要是了解外设总线…

FSMC外设接口来外扩SRAM芯片、flash芯片

1、STM32学习笔记-FSMC外扩SRAM_行之无边的博客-CSDN博客_stm32外扩sram STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间&#xff0c;但当程序较大&#xff0c;内存和程序空间不足时&#xff0c;就需要在STM32芯片的外部扩展存储器了。STM32F407系列芯片可…

STM32MP157实现串口接收数据上云-MP157连接4G模块和电脑

文章目录 前言一.打开设备文件二.串口初始化三.多线程四.程序的移植和执行五.源码(转载请注明出处)结语 前言 本篇分享&#xff1a; 这次将会用几篇博客分享STM32MP157实现串口接收数据上云的一个基础功能&#xff0c;实现STM32MP157的串口在接收到数据时能上传至服务器&…

基于高速51单片机的模拟USB接口设计

基于高速51单片机的模拟USB接口设计 作者&#xff1a;廖颂文 摘要&#xff1a;参照AVRUSB技术给出了51单片机通过模拟USB通信的实现方法。用VC编写了上位机软件&#xff0c;通过libusb驱动实现了PC与ST12LE5608AD的通信。 关键字&#xff1a;AVRUSB&#xff0c;模拟USB&…

基于STC15W4K32S4单片机仿真《任意IO口组合4*4矩阵键盘》

1、 编 程 软 件&#xff1a;keil5版本。 2、仿 真 软 件&#xff1a;Proteus8.12 3、单片机选型&#xff1a;STC15W4K32S4 4、学 习 目 标&#xff1a;1、学习矩阵键盘扫描 2、不同端口组合使用&#xff0c;跟同一8个IO口一样。 5、程 序 …

4、Kubernetes 架构、理解 k8s 架构

kubeadm 用于初始化 Cluster。 kubectl 是 Kubernetes 命令行工具。通过 kubectl 可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。 kubelet 运行在 Cluster 所有节点上,负责启动 Pod 和容器。 Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Ku…

ABAP调用阿里云接口-短信服务-HTTP协议及签名(abap版本)<转载>

原文链接&#xff1a;https://blog.csdn.net/xiefireworks/article/details/113037650 阿里云接口文档请参考官网地址 https://help.aliyun.com/document_detail/59210.html?spm5176.8195934.J_5834642020.5.11ba4378DLVi4O 此处仅介绍使用ABAP完成阿里云短信服务签名请求的…

如果你正在打算入手一台5G手机,不妨考虑一下3798元的iQOO Pro 5G

vivo旗下的iQOO Pro 5G自8月22日发布以来&#xff0c;备受市场追捧&#xff0c;堪称迄今为止性价比最强悍的5G手机。 一、iQOO Pro 5G&#xff0c;不止5G&#xff0c;不止性价比 1、iQOO Pro 5G最直观就是5G 和性价比 今年是“5G元年”&#xff0c;各厂商都竞相推出自家的首款…