庆科emw3162wifi模块作wedserver简单介绍

2023-10-13 00:50

本文主要是介绍庆科emw3162wifi模块作wedserver简单介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:概述
经过一段时间的学习,终于快要完成wifi模块的代码编写了,这里小小的总结一下。
庆科wifi模块,型号为emw3162,模块自带mcu为stm32f205还有一块射频芯片。mcu对射频芯片的驱动函数,已经被庆科封装好,比如说有关底层的TCP/IP协议层,与soket有关的代码,都被原厂写好,我们不需要关心。经过一个月的摸索,wifi模块做wedserver功能,大体需要了解这几个方面的相关知识。http协议,html语言,stm32底层。

需要注意的是,在flash的起始地址0x8000000开始,并不是放的我们自己编写的用户程序,而是庆科厂家放置的一小段bootloader,因为整个flash区域被庆科分为几个放置有不同功能的代码区,所以bootloader功能主要为协调以及跳转的一些功能,具体这里不细究了。



从图1可知,我们的用户代码是放在0x800c000开始的。那么boot肯定会有自动跳转到0x800c000段去执行的功能了。

二.wifi模块做wedserver主要原理:
主要原理:首先我们需要了解一下浏览器的工作原理。一个漂亮的网页界面都是由浏览器经过解析HTML语言得到的,简单的说也就是去解析自己收到的一段文本字符串,它们交互数据所使用的协议是HTTP协议,一般使用两中请求,POST请求和GET请求,请求头部是HTTP请求头,身体部分是HTML语言组成的网页.
请求头的抓包情况如下图2:


那么来看模块的工作原理也就简单了,就是模块启动会运行TCP服务器,开端口监听。当有客户端(也就是有浏览器)通过wifi连上模块,并通过浏览器来访问wifi模块时,
模块会根据自己接受的是什么样的请求,是POST还是GET,是请求什么东西,来给客户端去组织一段HTML的文本字符串,通过TCP发送给客户端。又因为客户端是浏览器,会按照HTML格式去解析显示,从而实现Webserver功能。当在浏览器输入wifi模块的IP地址时,敲下回车,便会给模块发送一段HTTP请求,也就是上面抓包的字符串,模块作为服务器,实际上就是处理字符串。
这样分析,原理也就简单了,接下来一起看看庆科的官方demo。(附件中)
我们需要关心的文件有:web_data.c 存放所有网页代码。http_process.c 处理请求的用户代码文件.
我们需要关心的函数:static void HandleHttpClient(int index)----处理客户端请求
这个函数中有一段代码:


可以看到处理请求的代码,实质全部是处理字符串。其中变量Index 为套接字。
wifi模块相信在嵌入式物联网会有大用途,能在这里做一些了解,我想将来肯定会受益匪浅。

这篇关于庆科emw3162wifi模块作wedserver简单介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199619

相关文章

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要