[APM32F4] APM32F427如何使用ESP8266模块实现WIFI联网功能
由于自己使用APM32F427做物联网项目需要使用到ESP8266进行联网远程控制。RT-Thread有着丰富的网络组件包所以基于RT-Thread的组件进行ESP8666 WIFI联网控制。RT-Thread Studio可以图形可视化的进行各种组件的配置比RT-Thread的ENV命令行工具更好用也有人更喜欢ENV的命令行个人习惯。所以下面的开发介绍是基于 RT-Thread Studio 环境下使用的。1. 基于APM42F4系列芯片支持包新建工程1.1 安装APM32F4系列SDK包打开RT-Thread Studio的SDK管理器然后找到Geehy厂商的软件支持包安装我们所需要的APM32F4系列芯片支持包如下图1.2 新建APM32F407的项目工程我的项目使用的芯片是APM32F427但是由于官方可能还没有添加APM32F427芯片的支持所以我找不到这个APM32F427的型号进行创建工程。但是没关系我查阅了下APM32F427的手册与407的差异不大我所使用的就算把系统运行的主频代码修改为官方可以支持的跑到240MHz即可。下面介绍下如何创建1、点击创建RT-Thread项目2、然后结合自己的硬件板子选择合适的配置创建项目即可。1.3 把APM32F407项目修改为APM32F427项目我们需要把新建的APM32F407工程修改为适用于运行在APM32F427芯片型号上。对于我的项目只要修改一下芯片运行的频率即可。1、打开工程中的drv_clk.c文件修改 clk_init 函数对于时钟的初始化函数。2、修改clk_init函数调用 SystemInit 函数的实现。我们把该函数修改为时钟可以运行240MHz就行可以参考官方SDK进行修改。修改代码如下复制voidSystemInit(void){/* FPU settings */#if (__FPU_PRESENT 1) (__FPU_USED 1)SCB-CPACR | ((3UL 10*2)|(3UL 11*2));//! set CP10 and CP11 Full Access#endif/* Reset the RCM clock configuration to the default reset state *//* Set HSIEN bit */RCM-CTRL_B.HSIEN BIT_SET;/* Reset CFG register */RCM-CFG 0x00000000;/* Reset HSEEN, CSSEN and PLL1EN bits */RCM-CTRL (uint32_t)0xFEF6FFFF;/* Reset PLL1CFG register */RCM-PLL1CFG 0x24003010;/* Reset HSEBCFG bit */RCM-CTRL (uint32_t)0xFFFBFFFF;/* Disable all interrupts */RCM-INT 0x00000000;#if defined(DATA_IN_ExtSRAM)SystemInit_ExtSRAM();#endif/* DATA_IN_ExtSRAM */SystemClockConfig();/* Configure the Vector Table location add offset address */#ifdef VECT_TAB_SRAMSCB-VTOR SRAM_BASE | VECT_TAB_OFFSET;/* Vector Table Relocation in Internal SRAM */#elseSCB-VTOR FMC_BASE | VECT_TAB_OFFSET;/* Vector Table Relocation in Internal FLASH */#endif}2. 编译测试生成的APM32F427基本工程没有错误下载完成之后我们编译刚创建完成的工程然后再下载到我们的硬件板子运行。可以看到编译完成没有任何的警告和错误。然后下载到板子运 行刚创建好的工程main函数时不断想串口输出字符串的打开串口终端打印信息如下可以看到串口已经正常打印字符以及接收串口输入的命令说明我们新建的工程已经正常运行。3. APM32F427添加ESP8266组件RT-Thread Studio有非常丰富的组件可以使用其中就包括ESP8266的组件。我们可以在配置界面直接点击使能ESP8266软件包就可以使用了。所以说在RT-Thread上使用ESP8266非常的简单主要是人家帮我们把ESP8266的驱动AT命令解析等代码都写好了。1、双击 RT-Thread Settings 文件打开配置界面然后找到软件包 - IoT物联网 - AT设备... 如下图2、使能AT客户端以及配置相关选项。实际上我们开启了ESP8266软件包之后会自动帮我们使能AT客户端组件的因为ESP8266软件包要依赖该组件。如下图4. 使能APM32F427连接ESP8266的UART24.1 使能UART2上面我们使能了ESP8266软件包然后就可以编译下载到板子看看运行情况了。这个时候是可以正常编译通过的。下载到板子的运行情况如下很明显提示说没有开启UART2设备这是因为我们上一步配置时使用的是串口2连接ESP8266模块但是我们却没有使能串口2所以才有这样的报错。下面使能串口2其实很简单只要在board.h定义串口2的宏即可使能串口2。不过我看了APM32的串口驱动代码串口引脚的初始化代码是要用户编写的当然如果做的更完善的话串口引脚的初始化代码都不需要用户编写。但是没关系只是串口引脚的初始化代码而已我们在apm32_msp.c文件中厂商提供的驱动函数中已经初始化了UART1和UART2的串口引脚了如下图也就是说我们使用这两个串口的话那就不用我们自己写引脚的初始化代码了。当然如果你使用的是其他的串口根据这里的示例代码自己对着编写一下也没什么。4.2 添加使能ESP8266引脚的初始化代码我所使用的ESP8266模块还需要向该模块的使能引脚输出高电平ESP8266模块才能正常工作。这个引脚使用普通的GPIO口即可我的引脚板子连接到模块的是PA0所以初始化代码如下复制voidESP8266_EN_GPIO_Init(void){GPIO_Config_T GPIO_ConfigStruct;RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);GPIO_ConfigStruct.mode GPIO_MODE_OUT;GPIO_ConfigStruct.pin GPIO_PIN_0;GPIO_ConfigStruct.speed GPIO_SPEED_50MHz;GPIO_ConfigStruct.outtype GPIO_OUT_TYPE_PP;GPIO_ConfigStruct.pupd GPIO_PUPD_NO;GPIO_Config(GPIOA, GPIO_ConfigStruct);/* PA0 1, enable esp8266 */GPIO_SetBit(GPIOA, GPIO_PIN_0);}我们把该函数编写到drv_common.c文件中然后在该文件的 hw_board_init 函数中调用该函数如下图5. 验证测试使能了UART2以及添加了ESP8266模块使能引脚拉高的代码之后这个时候再次编译下载就可以正常运行了。可以看到AT Client初始化成功然后把ESP8266模块的版本信息给打印出来如下图当然我们可以看到一个错误说一行数据溢出了。关于这个问题我看了很多网上的说法是ESP8266模块在启动的时候有一个复位命令该命令会返回一串很长的字符串从而导致有这个错误但是我们可以忽略该错误因为不影响我们使用。如果我们填写的WIFI名称和密码正确的话那么可以正常连上WIFI的如下图我们可以使用ifconfig命令查看IP地址如果我们的路由器能正常上网那么我们使用ping命令就可以正常平台百度的网址如下图可以看到有数据返回说明ESP8266模块已经能正常联网了。上面就是基于APM32F427使用ESP8266实现了联网功能主要还是使用了RT-Thread的组件这样很多代码不用自己写。后面我需要基于这个工程实现MQTT协议的物联网控制。后面再写。。---------------------作者luobeihai链接https://bbs.21ic.com/icview-3501385-1-1.html来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。

相关新闻

从“问卷迷雾”到“AI灯塔”:书匠策AI如何重塑科研问卷设计新范式

从“问卷迷雾”到“AI灯塔”:书匠策AI如何重塑科研问卷设计新范式

在科研的浩瀚海洋中,问卷设计如同探索未知的航船,既承载着研究者的智慧与期待,也时常因暗礁密布而陷入困境。传统问卷设计,往往依赖研究者的个人经验与反复试错,如同在迷雾中摸索前行,稍有不慎便可能迷失方…

2026/7/5 7:21:55 阅读更多 →
AI教材生成工具大揭秘!低查重教材一键快速编写!

AI教材生成工具大揭秘!低查重教材一键快速编写!

教材修改与AI工具的重要性 教材的初稿完成后,进入修改和优化的阶段真的是一场“考验”!通读全文,寻找逻辑上的漏洞和知识点的错误,确实需要耗费许多时间。调整章节结构时,往往会影响到后面的多个部分,导致…

2026/7/5 0:19:05 阅读更多 →
2.Lora微调原理详解

2.Lora微调原理详解

Ch2 Lora微调原理详解 1.为什么需要Lora 全参微调的难点: 大型语言模型的微调成本高昂:完整微调需要存储和更新所有模型参数的副本部署困难:每个任务都需要存储完整的模型副本,占用大量存储空间计算资源要求高:完整微调需要大量计…

2026/7/4 23:57:33 阅读更多 →

最新新闻

Python测试实战指南:从assert到pytest,构建高质量代码防线

Python测试实战指南:从assert到pytest,构建高质量代码防线

1. 项目概述 如果你已经能用Python写出一些功能性的代码,比如一个计算器、一个简单的爬虫,或者一个数据处理脚本,那么恭喜你,你已经迈出了第一步。但接下来,你可能会遇到一个所有开发者都无法回避的“灵魂拷问”&#…

2026/7/5 9:44:42 阅读更多 →
性能测试全流程解析:从核心指标到JMeter、Locust实战调优

性能测试全流程解析:从核心指标到JMeter、Locust实战调优

1. 性能测试:从“能用”到“好用”的必经之路 在软件研发的江湖里,性能测试常常被新手视为“玄学”,被老手当作“压箱底的绝活”。很多团队在项目初期疯狂赶工,功能测试一过就急着上线,结果一到活动大促或者用户量稍微…

2026/7/5 9:42:41 阅读更多 →
从零手写DES算法:深入理解Feistel网络与位运算实现

从零手写DES算法:深入理解Feistel网络与位运算实现

1. 项目概述与核心价值 最近在整理一些老项目的代码,发现很多同学对DES(Data Encryption Standard)算法的理解还停留在“调用 javax.crypto.Cipher ”的层面,一旦面试官问起“能不能手写一个DES?”,或者遇…

2026/7/5 9:38:40 阅读更多 →
JMeter+Jenkins自动化测试实战:SSE流式响应处理全攻略

JMeter+Jenkins自动化测试实战:SSE流式响应处理全攻略

1. 项目概述:当自动化测试遇上流式数据最近在做一个智能客服项目的自动化回归测试,后端接口从传统的JSON响应,全面升级到了SSE流式输出。这下可好,之前用JMeter写的那些接口测试脚本,跑起来要么直接超时,要…

2026/7/5 9:36:39 阅读更多 →
AI大模型驱动自动化测试:Claude+Playwright+MCP架构实战解析

AI大模型驱动自动化测试:Claude+Playwright+MCP架构实战解析

1. 项目概述:当AI大模型遇上自动化测试最近在测试圈子里,一个组合开始频繁被提及:Claude Playwright MCP。这听起来像是一堆技术名词的堆砌,但如果你深入了解一下,会发现它正在悄然改变我们编写和执行自动化测试脚本…

2026/7/5 9:34:39 阅读更多 →
NCM加密音乐文件本地化转换方案:从原理到自动化实践

NCM加密音乐文件本地化转换方案:从原理到自动化实践

1. 项目概述:从“加密枷锁”到“自由播放”如果你是一个音乐爱好者,尤其是网易云音乐的重度用户,那么你大概率在电脑的某个角落发现过一些以.ncm为后缀的奇怪文件。这些文件直接双击无法用常规播放器打开,想导入手机或车载U盘更是…

2026/7/5 9:32:39 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻