| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 【STM32F103精英板】使用ESP8266模组和OneOS高德云服务组件实现IP定位和天气预报 -> 正文阅读 |
|
[嵌入式]【STM32F103精英板】使用ESP8266模组和OneOS高德云服务组件实现IP定位和天气预报 |
本文将介绍如何从零开始在STM32F103开发板上,通过连接ESP8266模组实现WiFi联网,以及使用OneOS高德云服务组件,最终实现根据公网定位当前大概位置,以及获取天气预报。 一、创建项目如果你已经创建了OneOS项目,则可以跳过本节的内容,继续向下阅读。本节描述的是,还没有创建OneOS项目的情况下所需的操作。 1.1 下载OneOS代码以使用码云主线代码为例,使用如下命令下载代码:
1.2 安装OneOS-Cube从OneOS官网,下载中心→工具下载页面:https://os.iot.10086.cn/download/tool 下载OneOS-Cube。 下载完成后,参考官网开发文档→OneOS-Cube环境搭建,完成OneOS Cube鼠标右键菜单添加: https://os.iot.10086.cn/doc/quick_start/setup_env/oneos_cube.html 或者解压OneOS-Cube压缩包后,直接右击鼠标使用管理员权限运行“_添加右键菜单@以管理员身份运行.bat”,也可以完成鼠标邮件OneOS Cube菜单的添加。 1.3 创建OneOS项目OneOS源码中,预留了projects目录,可以用于创建项目、存放项目相关文件。 按照如下步骤,在OneOS源码基础上创建项目:
退出前,配置界面如下: project交互命令执行完成后,将会根据开发板的项目模板创建项目,命令行窗口中会看到一些日志输出,projects子目录中将会创建一个名为 stm32f103zet6-atk-elite 的新目录。 这里我使用的是万藕精英STM32F103开发板,因此选择的是stm32f103zet6-atk-elite。 二、配置项目2.1 申请高德API Key高德开放平台:https://developer.amap.com/ 按照如下步骤申请高德API Key:
成功申请到的API Key查看如下图所示: 2.2 配置高德云服务组件按照如下步骤配置高德云服务组件:
退出前,配置界面如下所示: 2.3 配置MoLink组件按照如下步骤配置MoLink组件:
退出前,配置界面如下所示: 2.4 配置开发板UART3及相关DMA通道上一小节中,ESP8266设备选择**配置为uart3。**这是因为万藕精英版STM32F103开发板的uart2默认连接的是RS485串口,不方便连接ESP8266模组。但OneOS项目模板默认没有启用UART3设备,本小节介绍如何为开发板配置UART3设备。 这里假设你已经安装了STM32 CubeMX、Beyond Compare,并且掌握了两个软件的基本操作。 首先,我们要用CubeMX启用UART3功能相关的引脚(可以开发板原理图和芯片手册,选择合适的引脚),以及相关的DMA通道。 按照如下步骤操作,启用开发板UART3及相关的DMA通道:
这里CubeMX修改配置、生成代码之后,CubeMX_Config子目录下会部分:
然后,需要修改projects\stm32f103zet6-atk-elite\board\peripherals.c文件,添加uart3和dma_usart3_rx的HAL设备定义。 具体添加的代码内容如下(和uart2、hdma_usart2_rx类似):
至此,UART3及相关DMA配置完成。 三、编译项目3.1 生成Keil项目CubeMX命令行中,跳转到projects\stm32f103zet6-atk-elite子目录后,使用如下命令生成Keil项目文件:
这个命令会以template.uv* 为模板,生成 project.uv* 文件。 3.2 编译Keil项目使用Keil打开project.uvprojx文件。 可以直接点击“Build”图标进行编译。 3.3 修改编译器设置由于我用的是 Keil μVision V5.37.0.0 ,里面带的编译器是 armclang V6.18,直接编译有如下报错:
因此需要修改编译器配置。 按照如下步骤,在Keil中修改OneOS项目的编译器设置:
这样项目的编译器设置就修改完成了。 3.4 解决编译问题再次编译,又有如下报错:
简单直接的解决方法是,使用文本编辑器打开project.uvprojx文件,找到 --gnu 所在行之后,整行删除,保存即可; 更好的解决方法是,在项目中用grep搜索到 --gnu 所在的SConscript文件,将其删除; 再次编译,又有如下报错:
提示SHELL_TASK_STACK_SIZE太小了,这次需要修改SHELL_TASK_STACK_SIZE配置。 解决方法:
四、下载固件4.1 修改调试器设置由于默认情况下生成OneOS Keil项目是ULINK调试器,而我实际使用的是一个基于CMSIS-DAP的DAPLink调试器,因此需要修改项目的调试器配置。 按照如下步骤,在Keil修改OneOS的调试器配置:
4.2 连接调试器这里需要参考开发板原理图,以及你的调试器实际的引脚情况。将调试器一端连接到PC,另一端连接到开发板的JTAG调试口。 4.3 下载到开发板连接好调试器后,就可以烧录了。使用Keil的Download图标,或者F8快捷键,开始烧录。 五、准备模组5.1 模组固件下载安信可AT固件: https://docs.ai-thinker.com/固件汇总 版本:v1.7.1.0 AT Firmware 5.2 模组固件烧录乐鑫官网,支持→相关下载→工具→Flash 下载工具:https://www.espressif.com.cn/zh-hans/support/download/other-tools 六、调试与测试为了方便调试和测试,可以打开一些配置项,下面分别介绍。 6.1 使能网络调试命令(ifconfig、ping)按照如下步骤配置串口原始数据打印选项:
退出前,配置界面如下图: 启用该选项后,命令行中将会多出如下命令:
6.2 使能高德云服务测试命令按照如下步骤配置高德云服务组件:
退出前,配置如下图: 启用该命令之后,命令行中会多出几个命令:
get_location获取地区码: get_weather获取实时天气: get_weather获取预报天气: 6.3 设置串口驱动的接收缓冲区大小测试过程种发现,有时候ESP8266会丢数据,再OneOS QQ群里大佬的建议下,修改了串口的接收缓冲区到2048之后,可以显著降低丢数据的可能性。 6.4 使能打印原始格式AT命令通信数据如果想查看ESP8266模组和STM32F103之间的通信具体内容,可以打开Molink的“打印原始格式AT命令通信数据”选项。具体操作如下:
退出前,配置界面如下图: 启用该选项后,主控芯片与ESP8266模组之间的串口通信原始数据可以显示出来,方便定位问题。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:34:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |