T3298 049:441 SEGGER J-Link V6.44h Log File (0001ms, 1224ms total)
T3298 049:441 DLL Compiled: May 3 2019 17:37:09 (0001ms, 1224ms total)
T3298 049:441 Logging started @ 2023-06-13 15:42 (0001ms, 1224ms total)
T3298 049:442 JLINK_SetWarnOutHandler(...) (0000ms, 1224ms total)
T3298 049:442 JLINK_OpenEx(...)
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware: V7.00
S/N: 20090928
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDB
TELNET listener socket opened on port 19021WEBSRV
Starting webserver (0012ms, 1236ms total)
T3298 049:442 WEBSRV Webserver running on local port 19080 (0013ms, 1237ms total)
T3298 049:442 returns O.K. (0013ms, 1237ms total)
T3298 049:455 JLINK_GetEmuCaps() returns 0x88EA5833 (0000ms, 1237ms total)
T3298 049:455 JLINK_TIF_GetAvailable(...) (0001ms, 1238ms total)
T3298 049:456 JLINK_SetErrorOutHandler(...) (0000ms, 1238ms total)
T3298 049:456 JLINK_ExecCommand("ProjectFile = "D:\Cun_Files\1_Cun_Keil5_Project\5_CSDN专栏工程\4_【STM32训练—WiFi模块】第二篇、STM32借助ESP8266WiFi模块获取天气资料\STM32F1C8T6_ESP8266_Weather_dpt\USER\JLinkSettings.ini"", ...). returns 0x00 (0002ms, 1240ms total)
T3298 049:467 JLINK_ExecCommand("Device = STM32F103C8", ...). Device "STM32F103C8" selected. returns 0x00 (0007ms, 1247ms total)
T3298 049:474 JLINK_ExecCommand("DisableConnectionTimeout", ...). returns 0x01 (0000ms, 1247ms total)
T3298 049:474 JLINK_GetHardwareVersion() returns 0x11170 (0000ms, 1247ms total)
T3298 049:474 JLINK_GetDLLVersion() returns 64408 (0000ms, 1247ms total)
T3298 049:474 JLINK_GetFirmwareString(...) (0000ms, 1247ms total)
T3298 049:490 JLINK_GetDLLVersion() returns 64408 (0000ms, 1247ms total)
T3298 049:490 JLINK_GetCompileDateTime() (0000ms, 1247ms total)
T3298 049:493 JLINK_GetFirmwareString(...) (0000ms, 1247ms total)
T3298 049:495 JLINK_GetHardwareVersion() returns 0x11170 (0000ms, 1247ms total)
T3298 049:505 JLINK_TIF_Select(JLINKARM_TIF_SWD) returns 0x00 (0002ms, 1249ms total)
T3298 049:507 JLINK_SetSpeed(5000) (0001ms, 1250ms total)
T3298 049:508 JLINK_GetId() >0x10B TIF>Found SW-DP with ID 0x2BA01477 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF>
>0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x10B TIF>Found SW-DP with ID 0x2BA01477 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF>Scanning AP map to find all available APs >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF>
>0x0D TIF> >0x21 TIF>AP[1]: Stopped AP scan as end of AP map has been reachedAP[0]: AHB-AP (IDR: 0x24770011)Iterating through AP map to find AHB-AP to use >0x42 TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF> >0x42 TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF> >0x21 TIF>AP[0]: Core foundAP[0]: AHB-AP ROM base: 0xE00FF000 >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x28 TIF> >0x0D TIF> >0x21 TIF> >0x0D TIF>
>0x21 TIF>CPUID register: 0x412FC231. Implementer code: 0x41 (ARM)Found Cortex-M3 r2p1, Little endian. -- Max. mem block: 0x00002C18 -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU_ReadMem(4 bytes @ 0xE0002000)FPUnit: 6 code (BP) slots and 2 literal slots -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_WriteMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000) -- CPU_WriteMem(4 bytes @ 0xE0001000) -- CPU_ReadMem(4 bytes @ 0xE000ED88)
-- CPU_WriteMem(4 bytes @ 0xE000ED88) -- CPU_ReadMem(4 bytes @ 0xE000ED88) -- CPU_WriteMem(4 bytes @ 0xE000ED88)CoreSight components:ROMTbl[0] @ E00FF000 -- CPU_ReadMem(16 bytes @ 0xE00FF000) -- CPU_ReadMem(16 bytes @ 0xE000EFF0) -- CPU_ReadMem(16 bytes @ 0xE000EFE0)ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB000 SCS -- CPU_ReadMem(16 bytes @ 0xE0001FF0) -- CPU_ReadMem(16 bytes @ 0xE0001FE0)ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT -- CPU_ReadMem(16 bytes @ 0xE0002FF0)
-- CPU_ReadMem(16 bytes @ 0xE0002FE0)ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB -- CPU_ReadMem(16 bytes @ 0xE0000FF0) -- CPU_ReadMem(16 bytes @ 0xE0000FE0)ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM -- CPU_ReadMem(16 bytes @ 0xE00FF010) -- CPU_ReadMem(16 bytes @ 0xE0040FF0) -- CPU_ReadMem(16 bytes @ 0xE0040FE0)ROMTbl[0][4]: E0040000, CID: B105900D, PID: 003BB923 TPIU-Lite >0x0D TIF> >0x21 TIF> returns 0x2BA01477 (0221ms, 1471ms total)
T3298 049:729 JLINK_GetDLLVersion() returns 64408 (0000ms, 1471ms total)
T3298 049:729 JLINK_CORE_GetFound() returns 0x30000FF (0000ms, 1471ms total)
T3298 049:729 JLINK_GetDebugInfo(0x100 = JLINKARM_ROM_TABLE_ADDR_INDEX) -- Value=0xE00FF000 returns 0x00 (0000ms, 1471ms total)
T3298 049:732 JLINK_GetDebugInfo(0x100 = JLINKARM_ROM_TABLE_ADDR_INDEX) -- Value=0xE00FF000 returns 0x00 (0001ms, 1472ms total)
T3298 049:733 JLINK_GetDebugInfo(0x101 = JLINKARM_DEBUG_INFO_ETM_ADDR_INDEX) -- Value=0x00000000 returns 0x00 (0000ms, 1472ms total)
T3298 049:733 JLINK_ReadMemEx(0xE0041FF0, 0x0010 Bytes, ..., Flags = 0x02000004) -- CPU_ReadMem(16 bytes @ 0xE0041FF0) - Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 returns 0x10 (0000ms, 1472ms total)
T3298 049:733 JLINK_GetDebugInfo(0x102 = JLINKARM_DEBUG_INFO_MTB_ADDR_INDEX) -- Value=0x00000000 returns 0x00 (0000ms, 1472ms total)
T3298 049:733 JLINK_GetDebugInfo(0x103 = JLINKARM_DEBUG_INFO_TPIU_ADDR_INDEX) -- Value=0xE0040000 returns 0x00 (0000ms, 1472ms total)
T3298 049:733 JLINK_GetDebugInfo(0x104 = JLINKARM_DEBUG_INFO_ITM_ADDR_INDEX) -- Value=0xE0000000 returns 0x00 (0000ms, 1472ms total)
T3298 049:733 JLINK_GetDebugInfo(0x105 = JLINKARM_DEBUG_INFO_DWT_ADDR_INDEX) -- Value=0xE0001000 returns 0x00 (0000ms, 1472ms total)
T3298 049:733 JLINK_GetDebugInfo(0x106 = JLINKARM_DEBUG_INFO_FPB_ADDR_INDEX) -- Value=0xE0002000 returns 0x00 (0000ms, 1472ms total)
T3298 049:734 JLINK_GetDebugInfo(0x107 = JLINKARM_DEBUG_INFO_NVIC_ADDR_INDEX) -- Value=0xE000E000 returns 0x00 (0000ms, 1472ms total)
T3298 049:734 JLINK_GetDebugInfo(0x10C = JLINKARM_DEBUG_INFO_DBG_ADDR_INDEX) -- Value=0xE000EDF0 returns 0x00 (0000ms, 1472ms total)
T3298 049:734 JLINK_GetDebugInfo(0x01 = Unknown) -- Value=0x00000000 returns 0x00 (0000ms, 1472ms total)
T3298 049:734 JLINK_ReadMemU32(0xE000ED00, 0x0001 Items, ...) -- CPU_ReadMem(4 bytes @ 0xE000ED00) - Data: 31 C2 2F 41 returns 1 (0001ms, 1473ms total)
T3298 049:735 JLINK_GetDebugInfo(0x10F = JLINKARM_DEBUG_INFO_HAS_CORTEX_M_SECURITY_EXT_INDEX) -- Value=0x00000000 returns 0x00 (0000ms, 1473ms total)
T3298 049:735 JLINK_SetResetType(JLINKARM_CM3_RESET_TYPE_NORMAL) returns JLINKARM_CM3_RESET_TYPE_NORMAL (0000ms, 1473ms total)
T3298 049:735 JLINK_Reset() -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDFC)Reset: Halt core after reset via DEMCR.VC_CORERESET. >0x35 TIF>Reset: Reset device via AIRCR.SYSRESETREQ. -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000ED0C) >0x0D TIF> >0x28 TIF> -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU is running -- CPU_WriteMem(4 bytes @ 0xE000EDFC)
-- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU_WriteMem(4 bytes @ 0xE0002000) -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000) (0077ms, 1550ms total)
T3298 049:812 JLINK_Halt() returns 0x00 (0000ms, 15
【STM32训练-WiFi模块】第二篇、STM32驱动ESP8266WiFi模块获取天气
需积分: 0 172 浏览量
更新于2023-06-13
8
收藏 7.09MB ZIP 举报
STM32训练-WiFi模块系列的第二篇教程聚焦于如何使用STM32微控制器驱动ESP8266 WiFi模块来获取实时天气信息。在这个项目中,我们将深入了解STM32与ESP8266的通信协议,以及如何通过网络接口获取网络数据,特别是天气预报。
STM32是一款基于ARM Cortex-M内核的微控制器,广泛应用于各种嵌入式系统。它具有高性能、低功耗的特点,适合于实现复杂的控制任务,如驱动外设和处理网络通信。在本项目中,STM32将作为主控器,负责发送指令给ESP8266并解析返回的数据。
ESP8266是一款经济实惠且功能强大的WiFi模块,常用于物联网(IoT)应用。它内置TCP/IP协议栈,可以方便地连接到WiFi网络,并执行HTTP请求等网络操作。在这里,ESP8266将作为STM32的网络接口,帮助其连接到互联网,获取天气API提供的数据。
要驱动ESP8266,首先需要建立STM32与ESP8266之间的串行通信。通常使用UART(通用异步收发传输器)接口,通过配置STM32的GPIO引脚作为串口发送和接收数据。编程时,可以使用HAL库或LL(Low-Layer)库来设置波特率、数据位、停止位和校验位等参数。
一旦串口配置完成,STM32将发送AT命令给ESP8266,以进行初始化、连接WiFi网络、设置工作模式等。例如,"AT+CWJAP"命令用于连接到指定的WiFi网络,"AT+CIPSTART"命令启动TCP/UDP连接。确保正确处理ESP8266的响应,包括错误代码和确认信息。
在连接到WiFi网络后,STM32需要向天气API发送HTTP GET请求。这个请求通常包含API的URL和可能的查询参数,如城市名和API密钥。使用ESP8266的AT+CIPSEND命令发送HTTP请求,并等待ESP8266接收并转发服务器的响应。响应可能包含JSON格式的天气信息,如温度、湿度、风速等。
收到数据后,STM32需要解析JSON数据,这可能涉及字符串处理和JSON解析库。例如,可以使用开源的jsoncpp或Micro JSON库。解析完成后,这些天气信息可以显示在LCD屏上,或者通过其他接口如蓝牙或串口发送到其他设备。
在实践中,还应注意网络连接的可靠性,比如处理网络断开、重试机制以及错误恢复。此外,为了降低功耗,可能需要考虑如何优化STM32和ESP8266的工作模式,如进入休眠模式并在需要时唤醒。
STM32驱动ESP8266获取天气信息涉及STM32的串口通信、网络协议理解、HTTP请求的构建与解析,以及可能的JSON数据处理。这个项目不仅锻炼了开发者在硬件层面的技能,还强化了软件开发能力,特别是嵌入式系统和物联网领域的实践应用。通过学习和实现这样的项目,你可以更好地理解和掌握STM32和ESP8266的协同工作,为更复杂的IoT应用打下基础。

大屁桃
- 粉丝: 2w+
最新资源
- 庄河市第八届中小学教育软件制作大赛参赛作品知识课件.ppt
- python毕业实习报告.doc
- 二级C语言100道经典选择题与答案.doc
- 2023年语言程序设计阅读程序题库及答案.doc
- 软件测试环境搭建 PPT.ppt
- 计算机仿真及其在制造业中的应用.docx
- WebOfScience使用指南复习课程.pptx
- 楼宇自动化实验报告内容.docx
- Java如何屏蔽Windows按键.doc
- 检察机关信息化建设中业务管理系统的应用.docx
- 中小企业的移动互联网营销路径.doc
- 采矿工程CAD-03.ppt
- 自动化仪表试题-学习资料.ppt
- 浅析信息化在内审中的运用.docx
- 东北农业大学2021年9月《电子商务》平台及核心技术作业考核试题及答案参考12.docx
- 《大学计算机基础》教案.doc