龙芯俱乐部开源技术社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 6479|回复: 4

WIFI模块ESP8266驱动

[复制链接]

5

主题

11

帖子

478

积分

中级会员

Rank: 3Rank: 3

积分
478
发表于 2015-11-13 09:57:06 | 显示全部楼层 |阅读模式
本帖最后由 从长计议 于 2015-11-13 09:59 编辑

   Esp8266是wifi模块可以做为路由器和站点连网。接口为UART,波特率115200。可以用在对速度要求比较低的场合。

  在智龙V2板上有四个UART口,分别为UART0-3。取UART1,与GPIO2和GPIO3复用。GPIO3-UART1_TXD接ESP8266-RXD; GPIO2-UART1-RXD接ESP8266-TXD。
  ESP8266电流输大,需要单独3v电源,不能使用智龙V2板上的3.3v电源。

esp8266

esp8266


  驱动开发主要是对UART串口的读写。从全局变量console_drivers得到uart_driver并得到所有串口port,取串口1,直接对串口寄存器映射的内存操作。 为了较好的性能,串口发送第0个字节由程序直接发出,然后进入休眠状态。从1开始的字节由中断服务程序在前一个字节发送后逐一发出,直接全部数据发送完成再唤醒发送程序,大大减少CPU的占用。UART的接收由中断程序每次接收一个字节放在缓存中。应用程序可以批量读取。
   为了保证收发不丢失任何一个字节,又尽量少占内存,建立了一个缓存双向链表。链表每个结点都是1k大小。中断程序收到数据放在链表尾的结点,结点缓存满了后再申请一块内存缓存放在链表尾。应用程序读取从链表头开始从前往后读,当一个缓存结点全部读取后释放这个结点的内存。

  串口调通后可以使用AT命令控制esp8266查询WIFI路由,连接WIFI路由,建立TCP/IP连接,收发数据。

模块安装#insmod esp8266.ko
在/sys/devices/platform/esp8266.o目录中,写入atwrite为发送uart AT命令,读取atread为接收esp8266通过uart返回。


列出路由,查看listap
连接路由比如whatname,输入whatname和密码
连接TCP,比如连接sohu网站,输入网站域名和端口
echo www.sohu.com 80 >  /sys/devices/platform/esp8266.0/tcpconnect
发送一个简单的http请求
printf "GET / HTTP/1.1\r\nHost: www.sohu.com\r\n\r\n" > /sys/devices/platform/esp8266.0/tcpsend

发送成功后能接收到网站回应,由http头知道是gzip格式。
tcpsend.png

程序:在lslc/platform.c中加入esp8266_device
Makefile为
obj-m := esp8266.o
单独编译
make -C  内核路径  M=`pwd` modules

生成esp8266.ko,用insmod esp8266.ko安装

esp8266-151112.zip

879.65 KB, 下载次数: 47, 下载积分: 经验值 2

程序和说明

48

主题

257

帖子

4920

积分

新手上路

Rank: 1

积分
4920
发表于 2015-11-13 17:18:07 | 显示全部楼层
赞!

84

主题

465

帖子

44万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
440445
发表于 2015-12-26 03:05:05 | 显示全部楼层
非常好

28

主题

260

帖子

17万

积分

论坛元老

Rank: 8Rank: 8

积分
170816
发表于 2015-12-26 21:27:30 | 显示全部楼层
感谢楼主分享!

10

主题

174

帖子

2789

积分

禁止发言

积分
2789
发表于 2016-4-5 13:25:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|龙芯俱乐部开源技术社区

GMT+8, 2024-11-28 07:25 , Processed in 0.122086 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表