在龙芯1C单片机上使用ESP8266 wifi透传模块

龙芯1C既可以运行linux,也可以当作单片机用。当用作linux时,可以通过USB wifi模块RTL8192C,RTL8188ETV等,当作单片机用时,可以像STM32那样使用串口透传wifi模块,比如ESP8266 wifi透传模块。
本文重点讨论在龙芯1c单片机上如何使用ESP8266 wifi透传模块。前面已经说了ESP8266 wifi模块是串口透传模块,即ESP8266 wifi模块与龙芯1c单片机通过串口相连,龙芯1c单片机通过串口发送“AT指令”来控制ESP8266 wifi模块上的wifi状态和连接方式等。

使用的模块为安信可科技的ESP8266串口透传wifi模块,型号是ESP-01。如下

在龙芯1C单片机上使用ESP8266 wifi透传模块_第1张图片

支持AT指令控制和源代码API函数开发两种方式,本文重点讨论AT指令控制的方式。安信可科技的官网(http://wiki.ai-thinker.com)有更多更详细的资料,包括源码API开发相关的资料。

硬件连接

ESP8266模块的引脚图

需要注意以下几点:
1,我测试这个模块的串口波特率是115200,安信可的资料中说,有的模块改为9600了。当模块到手后,可以两个波特率都试一下。
2,模块的VCC接3.3V。模块在接收和发送无线信号时瞬间电流最高达到240mA,所以要确认电源是否能够满足要求。
3,模块的CH_PD引脚必须通过上拉电阻(比如5.1k或者10k)后,再接VCC。即CH_PD引脚必须上拉。

PC上用串口调试助手测试ESP8266 wifi透传模块

刚开始的时候,建议先在电脑上,用串口调试助手手动发送一条一条的AT指令,这有助于了解熟悉ESP8266 wifi模块。当熟悉了AT指令后,再写程序到龙芯1c单片机上测试。
我是用白菜板v2.1上的3.3V电源,然后把USB转TTL模块与ESP8266 wifi模块相连。

龙芯1c单片机(白菜板v2.1)上测试ESP8266 wifi透传模块

当熟悉了ESP8266 wifi模块的AT指令后,就可以直接把ESP8266 wifi模块接在白菜板(的串口)上,然后写程序来验证。

下图ESP8266 wifi模块在龙芯1c单片机开发板(白菜板v2.1)上的测试实物图,如下

接线
ESP8266模块  龙芯1c单片机
VCC     ---- 3.3V
GND     ---- GND(一定要共地)
CH_PD   ---- 经过5.1k上拉电阻后,接3.3V
UTXD    ---- CAMDATA5/GPIO55/UART8_RX
URXD    ---- CAMDATA4/GPIO54/UART8_TX

这里使用的是串口8。注意,龙芯1c300A上没有串口8,龙芯1C300B上才有。可以改为其它串口。

软件实现

因为ESP8266 wifi模块是串口透传模块,所以对ESP8266 wifi的应用实际上就是串口应用编程。

龙芯1c库中串口相关资料

龙芯1c单片机和STM32差不多,也有一个类似STM32库的“龙芯1c库”。其中已经把串口相关接口封装好了,并且写了一篇博客简单的介绍如何使用“龙芯1c库”中的串口相关的接口来实现串口通信。
龙芯1C库的git地址是 https://gitee.com/caogos/OpenLoongsonLib1c
【龙芯1c库】封装串口接口和使用示例 https://blog.csdn.net/caogos/article/details/79578555

发送

在电脑上运行网络调试助手(和串口调试助手类似),创建一个TCP服务器,服务器的IP地址是192.168.3.102(电脑的IP),端口是8080,龙芯1c单片机通过ESP8266 wifi模块连接该TCP服务器,并发送字符串“ls1c mcu + esp8266 wifi”。测试结果如下

在龙芯1C单片机上使用ESP8266 wifi透传模块_第2张图片

接收

和发送类似,在网络调试助手上发送字符串“hello ls1c qin_wei_ben”,测试效果如下

在龙芯1C单片机上使用ESP8266 wifi透传模块_第3张图片



感谢阅读!


你可能感兴趣的:(龙芯1c裸机编程)