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. iOS开发:获取设备IP地址

    一.导入头文件 //首先导入头文件信息 #include <ifaddrs.h> #include <arpa/inet.h> #include <net/if.h> ...

  2. Mysql:表的操作

    1.列的添加 2.列的删除 删除多列只需在DROP id 后加, DROP column_name; 3.显示表属性 4.设置默认值 5.删除默认值

  3. Vim编辑器的常用快捷键.

    Linux中的文本操作离不开Vim编辑器的使用. Vim编辑器的使用相对门槛较高.需要挺长一段时间的适应. 总结一些Vim使用过程中常用的命令(这些命令基本上都是在vim的命令模式下使用) 1.跳转到 ...

  4. Sherlock and The Beast

    Sherlock Holmes suspects his archenemy, Professor Moriarty, is once again plotting something diaboli ...

  5. poj3264

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 45777   Accepted: 21499 ...

  6. 开始学习css

    今天开始学习css:应用一本<HTML5与CSS3网页设计基础> 先学习css样式规则声明. Body{ color:blue} 对应:选择符:{声明属性:声明值}: Background ...

  7. HTML-块级元素和内联元素

    HTML-块级元素和内联元素 块级元素 内联元素 address - 地址 block - 块引用 center - 居中对齐块(不推荐) dir - 目录列表(HTML5踢出) div - 常用的不 ...

  8. 解决ASP.NET网站发布问题

    目录 前言 开始 aspx.cs文件放到单独的类库项目 一个可选择勾选页面的发布工具:LimusicAddin 前言 Asp.net 发布分为:动态编译和预编译.预编译又分为:In Place Pre ...

  9. 初识 AutoLayout

    一.使用"公式": 1.frame: 原点以及自身的位置来确定自身的位置 2.autoLayout: 根据参照视图的位置  来定义自己的位置 3.autoLayout: 相对布局  ...

  10. HTML5的Web SQL Database

    本文将介绍 Web SQL Database 规范中定义的三个核心方法: openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象 transaction:这个方法允许我们根据情况 ...