esp8266的STM32驱动,数据发送接收由DMA完成,释放CPU。

  目前只能发送返回消息为成功或失败的AT命令,并判断是否成功,详见esp8266_cmd();其它返回消息不可预知的命令(如查看AP,IP等)未实现,也用不着。以查询的方式判断有无消息,是什么样的消息,返回消息类型,如果是收到了数据,则会保存在指定的地址,并给出长度,详见esp8266_parse();当连接建立后,给远程发送数据用esp8266_send(),它会在数据实际发送成功前返回,剩下的活由DMA完成,然后请耐心地等待消息,想知道结果就调用esp8266_parse(),它会根据返回的消息判断发送有无成功,并返回。

  文中的“消息”是指ESP8266发的指示状态的,“数据”指通过网络收发的。

  代码和例子:https://github.com/ydwzj/STM32F4 ,标准库忽略掉了,如果没有的话,自己下载stm32f4_cubexxx.zip,使用示例:在Projects_new/stm32f407vet6/Examples/UART/UART_TwoBoards_ComDMA中,在这个例子是用来实现websocket的,如果没用到,把相关代码删掉,只看8266使用就行了。如果你要测试websocket,还要一些文件,请见:http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/index.html,下载他那个网页后,打开把地址换成192.168.4.1:8080/chat,就可以连上了。这个被我用来取代蓝牙,让MCU与平板通信,已成功用来显示MCU发过来的数据了,也能发给MCU,但双方都同时连续发送数据时可能会出错,这种情况未测试,MCU连续发,平板偶尔发是没有问题了。

  由于驱动代码被多个工程用到,而代码经常修订,可能导致某些工程编译出错,要做些小改。这里上不了图片,就不传了,也放工程文件夹下了,还是github厚道。

esp8266的STM32驱动的更多相关文章

  1. STM32驱动DS18B20

    DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线”接口的温度传感器.与传 统的热敏电阻等测温元件相比,它是一种新型的体积小.适用电压宽.与微处理器接口简单的 数字化温度传感器.一线 ...

  2. STM32驱动OV7725摄像头颜色识别

    实验目的: 使用stm32驱动OV7725摄像头进行图像实时采集,在tft屏幕上实时显示并识别图像中的特定颜色,在颜色的周围画上框. 实验现象: 我的工程代码链接: http://download.c ...

  3. STM32驱动ILI9341控制器控制TFTLCD显示

    STM32驱动ILI9341控制器控制TFTLCD显示 一.用STM32控制TFTLCD显示的编程方法,在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念: 1.色彩深度,这是一个与TFTLCD ...

  4. AMS5601的ardunio和STM32驱动开发

    AMS5601的ardunio和STM32驱动开发 本文有麦粒电子撰写,并提供相应产品服务. 前言 目前ams关于磁编码芯片用的比较多的可能是ams5600,能够输出pwm信号,电压信号以及I2C通信 ...

  5. STM32驱动LCD实战

    前段时间写了<STM32驱动LCD原理>和<STM32的FSMC外设简介>两篇文章,本文将对STM32驱动LCD进行实战应用.LCD是深圳市拓普微科技开发有限公司的LMT028 ...

  6. STM32—驱动GY85-IMU模块

    GY85是一个惯性测量模块,内部集成了三轴加速度计.三轴陀螺仪.电子罗盘.气压传感器等芯片,用于测量和报告设备速度.方向.重力,模块可以将加速度计.陀螺仪.电子罗盘等传感器的数据进行综合,在上位机可以 ...

  7. STM32—驱动六轴MPU6050输出欧拉角

    文章目录 一.MPU6050介绍 1.MPU6050与陀螺仪.加速度计的关系: 2.整体概括 3.引脚说明 4.基本配置及相关寄存器 电源管理寄存器1 陀螺仪配置寄存器 加速度计配置寄存器 FIFO使 ...

  8. STM32—驱动HC-SR04超声波测距模块

    文章目录 超声波测距原理 HC-SR04工作原理 STM32实现驱动 1.引脚的配置 2.时序控制 3.时间差测量 4.如何将距离测出来 超声波测距原理 利用HC-SR04超声波测距模块可以实现比较精 ...

  9. stm32驱动超声波模块

    下面是关于stm32驱动超声波模块的一段代码,有需要的朋友可以复制参考,希望对大家能够有所帮助和启发. #define HCSR04_PORT GPIOB #define HCSR04_CLK RCC ...

随机推荐

  1. 创建FILE GEODATABASE 和栅格目录及向栅格目录中添加影像

    using System;using System.IO;using ESRI.ArcGIS.DataSourcesGDB;using ESRI.ArcGIS.DataSourcesRaster;us ...

  2. Creating a Mono 3 RPM on CentOS

    Creating a Mono 3 RPM on CentOS A quick guide to creating an rpm of mono 3 from source, starting wit ...

  3. sql 联合查询速度慢,需要对其进行分组

    分组:SELECT   * FROM(SELECT ROW_NUMBER() OVER(ORDER BY  ProjID) as row_number,* FROM ( select ProjAppl ...

  4. [转]关于IIS7.5下的web.config 404 配置的一些问题

    本文转自:http://www.codesky.net/article/201103/161589.html 本文介绍一个关于IIS环境下web.config配置的经验问题.在IIS7.5中添加配置4 ...

  5. [需再总结]SSH整合代码生成器

    package cn.itcast.invoice.util.generator; import java.io.BufferedWriter; import java.io.File; import ...

  6. 修改eclipse中web项目的server部署路径

    和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...

  7. hdu 1195 广度搜索

    这题我们可以用优先队列,每次弹出队列中操作次数最少的一个,那么当找到匹配数时,该值一定是最优的.需要注意的时,加个vi[]数组,判读当前数是否已经存在于队列中.我做的很烦啊~~~ #include&l ...

  8. 让CentOS能用yum自动安装rar和unrar

    目的:让CentOS能用yum自动安装rar和unrar 系统环境: CentOS 7.0 具体操作步骤如下: 1.编辑文件 编辑dag.repo文件,或者说是新建一个dag.repo文件. vi / ...

  9. Unity Rigidbody 刚体中的Angular Drag和Freeze Position/Rotation

    Rigidbody中 Angular Drag  (角阻力):同样指的是空气阻力,只不过是用来阻碍物体旋转的.如果设置成无限的话,物体会立即停止旋转.如果设置成0,物体在上升过程中,会发生侧翻旋转. ...

  10. UML——综合实例