当前位置: 首页 > news >正文

[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进行修改。修改代码如下:
复制
  1. voidSystemInit(void)
  2. {
  3. /* FPU settings */
  4. #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
  5. SCB->CPACR |= ((3UL <<10*2)|(3UL <<11*2));//!< set CP10 and CP11 Full Access
  6. #endif
  7. /* Reset the RCM clock configuration to the default reset state */
  8. /* Set HSIEN bit */
  9. RCM->CTRL_B.HSIEN = BIT_SET;
  10. /* Reset CFG register */
  11. RCM->CFG =0x00000000;
  12. /* Reset HSEEN, CSSEN and PLL1EN bits */
  13. RCM->CTRL &= (uint32_t)0xFEF6FFFF;
  14. /* Reset PLL1CFG register */
  15. RCM->PLL1CFG =0x24003010;
  16. /* Reset HSEBCFG bit */
  17. RCM->CTRL &= (uint32_t)0xFFFBFFFF;
  18. /* Disable all interrupts */
  19. RCM->INT =0x00000000;
  20. #if defined(DATA_IN_ExtSRAM)
  21. SystemInit_ExtSRAM();
  22. #endif/* DATA_IN_ExtSRAM */
  23. SystemClockConfig();
  24. /* Configure the Vector Table location add offset address */
  25. #ifdef VECT_TAB_SRAM
  26. SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET;/* Vector Table Relocation in Internal SRAM */
  27. #else
  28. SCB->VTOR = FMC_BASE | VECT_TAB_OFFSET;/* Vector Table Relocation in Internal FLASH */
  29. #endif
  30. }


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的UART2
4.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,所以初始化代码如下:
复制
  1. voidESP8266_EN_GPIO_Init(void)
  2. {
  3. GPIO_Config_T GPIO_ConfigStruct;
  4. RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);
  5. GPIO_ConfigStruct.mode = GPIO_MODE_OUT;
  6. GPIO_ConfigStruct.pin = GPIO_PIN_0;
  7. GPIO_ConfigStruct.speed = GPIO_SPEED_50MHz;
  8. GPIO_ConfigStruct.outtype = GPIO_OUT_TYPE_PP;
  9. GPIO_ConfigStruct.pupd = GPIO_PUPD_NO;
  10. GPIO_Config(GPIOA, &GPIO_ConfigStruct);
  11. /* PA0 = 1, enable esp8266 */
  12. GPIO_SetBit(GPIOA, GPIO_PIN_0);
  13. }
我们把该函数编写到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所有,任何人未经允许禁止转载。

http://www.jsqmd.com/news/407059/

相关文章:

  • 从零到一:基于PyTorch与RNN的周杰伦风格歌词生成器实战
  • 能进生产环境的开源 RAG 系统,真的不多,R2R 算一个
  • 2026年评价高的定制水定制logo小瓶水/哇哈哈定制水推荐与选购指南公司 - 行业平台推荐
  • 江苏口碑家教老师哪里找?2026小学家教优选推荐,全托一对一/上门一对一/上门家教/全托冲刺/高中家教,家教老师联系方式 - 品牌推荐师
  • 2026年诚信的盾构胶,专用胶,万能胶厂家推荐及选择指南 - 品牌鉴赏师
  • 2026年质量好的KCB齿轮油泵/ZYB硬齿面齿轮油泵厂家推荐与采购指南 - 行业平台推荐
  • 2026成都正规hpv诊疗优质机构推荐榜:得了尖锐湿疣、得了梅毒怎么办、成都hpv医院、成都中科医院选择指南 - 优质品牌商家
  • 沃尔玛购物卡怎么换成现金? - 京顺回收
  • 2026年口碑好的实心光轴/油缸光轴厂家实力参考 - 行业平台推荐
  • 用 Python 下载微博嵌入的快手视频——yt-dlp 搞不定的情况
  • 2026年知名的40Cr圆钢/42crmo圆钢行业内口碑厂家推荐 - 行业平台推荐
  • 2026年口碑好的枕木加工,注油枕木,矿用枕木厂家实力优选榜 - 品牌鉴赏师
  • 2026年口碑好的配合饲料/颗粒饲料高评价厂家推荐 - 行业平台推荐
  • 多个黑客组织利用OpenClaw实例窃取API密钥并部署恶意软件
  • 2026川渝妇科诊疗优质机构推荐榜侧重隐私护理 - 优质品牌商家
  • 2026年有实力的高密度pe燃气管,中低压pe燃气管,国标pe燃气管厂家行业口碑推荐 - 品牌鉴赏师
  • 暴露的端点如何扩大LLM基础设施风险
  • 2026年专业的农机铸件,船用铸件,阀门铸件厂家专业评测推荐榜 - 品牌鉴赏师
  • 科技成果转化的未来:构建区域创新生态的新引擎
  • 2026年正规的二手高举钻机,二手光伏钻机,二手螺杆空压机公司推荐榜 - 品牌鉴赏师
  • 攻击者利用生成式AI入侵系统的13种手段
  • 高校科研转化新范式:数智服务平台引领产学研协同未来
  • 2026年知名的喷涂聚脲,聚脲防腐,防护聚脲厂家采购精选榜单 - 品牌鉴赏师
  • 2026年比较好的语音扬声器/广东线阵次低音扬声器口碑排行精选供应商推荐 - 行业平台推荐
  • 2026年质量好的潍坊景观膜结构车棚/停车场膜结构车棚品牌厂家推荐 - 行业平台推荐
  • 2026年口碑好的膜结构景观/体育看台膜结构厂家推荐与选购指南 - 行业平台推荐
  • 浅谈随机化
  • ​ 煲珠公新品推荐,点单攻略|美团更便宜,大额神券直接领 - 资讯焦点
  • 2026年全屋定制厂家推荐排行榜:整屋定制/定制家具/橱柜衣柜/榻榻米衣帽间/鞋柜酒柜书房定制,一站式空间美学解决方案 - 品牌企业推荐师(官方)
  • 2026年靠谱的架桥机挂篮/箱梁挂篮厂家口碑推荐汇总 - 行业平台推荐