RT-Thread&BearPi 开发笔记 -- 小熊派基于RT-Thread使用ESP8266进行网络连接
Posted 工程师进阶笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RT-Thread&BearPi 开发笔记 -- 小熊派基于RT-Thread使用ESP8266进行网络连接相关的知识,希望对你有一定的参考价值。
小熊派基于RT-Thread使用ESP8266进行网络连接
物联网的概念和应用场景,最关键最必不可少的一个环节,就是联网。可以说,如果没有可靠的网络连接功能,那这个设备还不算是一个合格的物联网设备。
设备没有接入网络,就像被孤立的个体一样,只能孤独地低头做事,因此,物联网设备,首先要解决的就是网络接入问题。
无线WiFi是一种十分常用的网络连接方式,小熊派开发套件提供了一个ESP8266无线WiFi模块,用于开发板进行网络连接。ESP8266模块通过串口跟小熊派主板进行物理连接,主板通过AT指令对模块进行控制。
基于RT-Thread的小熊派BSP包链接:https://gitee.com/embediot/bearpi_rt-thread
小熊派在出厂的时候,默认是使用HUAWEI LiteOS的,为了在小熊派上使用RT-Thread,需要为其制作RT-Thread的BSP包,具体可参考以下链接:RT-Thread&BearPi 开发笔记 -- 为小熊派开发板制作 RT-Thread BSP 包
目前BSP包的功能模块还在不断完善中,以下是为BSP包添加AT组件并实现ESP8266 WiFi联网的具体操作过程,思维导图如下图所示。
使用STM32CubeMX配置芯片外设
小熊派主芯片是通过低功耗串口LPUART1跟ESP8266模块进行连接的,从原理图上看,LPUART1分别是PC0和PC1引脚,在使用低功耗串口之前,要先对LPUART1进行初始化工作。
对于BSP包里面没有添加的芯片外设,如果开发者需要把外设设备添加到BSP包里面,则需要先使用STM32CubeMX对其初始化参数进行配置,关于STM32系列外设驱动添加指南,RT-Thread提供了一份比较详细的参考文档,链接如下所示
小熊派的STM32CubeMX配置文件在bearpi_rt-thread\\BSP\\board\\CubeMX_Config目录下,对于低功耗串口LPUART1,使用STM32CubeMX的配置参数,如下图所示。
该项配置主要在stm32l4xx_hal_msp.c里面,修改HAL_UART_MspInit()函数,在该函数里面添加低功耗串口的初始化,如下图所示。
修改Kconfig文件
要使用menuconfig管理STM32芯片的外设设备,需要修改Kconfig文件,上面的操作只是对LPUART1进行初始化,但还没有把LPUART1这个芯片外设放到menuconfig进行管理,我们需要对bearpi_rt-thread\\BSP\\board\\Kconfig文件进行修改。
在Kconfig文件里面,添加LPUART1和ESP8266的配置项,添加后如下图所示,完整的内容,请查看Kconfig文件。
修改完成后,就可以对LPUART1和ESP8266进行配置,以上配置,主要是使能了宏定义BSP_USING_LPUART1以及使能AT_Client设备和ESP8266模块,BSP_USING_LPUART1这个宏定义在drv_usart.c文件里面使用,是让系统对低功耗串口进行配置的,如下图所示。
menuconfig修改配置单
在ENV命令行终端下,使用menuconfig命令打开工程的配置单,在芯片外设配置路径下,选择Enable LPUART1进行配置,如下图所示。
因为ESP8266是使用RT-Thread提供的AT组件进行管理的,因此,需要使能AT组件相关的选项,AT组件的配置路径以及配置选项,如下图所示。
1、使能AT命令。
2、使能AT命令的客户端模式、设置最大的客户端数量为1、使能标准的BSD Socket函数接口、使能AT指令的命令行模式。
3、设置AT指令的缓冲区大小为512字节。
因为需要使用标准的BSD Socket函数接口,所以,需要使能SAL组件,该组件提供了AT Socket接口的抽象,实现了标准的BSD Socket接口函数,如下图所示。
由于AT组件支持很多AT指令设备,因此,要在配置单里面开启ESP8266设备支持,配置路径是:RT-Thread online packages ---> IoT - internet of things ---> AT Device,如下图所示。
1、使能ESP8266模块。
2、设置wifi的账号和密码。
3、设置AT指令的通信串口和串口接收缓冲区的长度。
以上配置完成后,保存并退出配置菜单,在ENV命令行终端,输入scons –target=mdk5生成MDK工程,打开工程后,可以看到AT相关的组件和ESP8266模块相关的代码已经添加到工程里面,如下图所示。
测试开发板的联网情况
编译工程,并下载到小熊派开发板上运行,打开串口交互终端,准备对应的WiFi热点信号,运行应用程序,在串口交互终端可以看到AT组件初始化成功,ESP8266模块初始化成功,如下图所示。
上图提示执行“AT+CIPDNS_CUR?”命令失败,主要是ESP8266模块的出厂固件比较旧,更新模块固件即可解决该问题,更新方法在这里不再论述。
可以在ENV命令行终端,使用AT命令或netdev命令进行联网测试,使用AT命令测试的话,需要先输入“at client”让终端进入AT命令行模式;
如果要使用netdev命令测试,可以直接在命令行输入ping或ifconfig等网络指令,如下图所示。
以上是关于RT-Thread&BearPi 开发笔记 -- 小熊派基于RT-Thread使用ESP8266进行网络连接的主要内容,如果未能解决你的问题,请参考以下文章
RT-Thread&BearPi 开发笔记 -- 小熊派基于RT-Thread使用ESP8266进行网络连接
《嵌入式系统 - RT-Thread开发笔记》 第三部分 RT-Thread 移植与设备驱动开发 - 第1章 RT-Thread 开发环境搭建 (Keil+env)
CH579M移植RT-THREAD实战笔记(KEIL5环境)
CH579M移植RT-THREAD实战笔记(KEIL5环境)