声明:本文为学习感悟,野火的esp8266学习感悟与心得,所有引用,均为学习参考,免费提供,如有侵权,联系删除,谢谢。(本人已购买正版板子F429挑战者)
第一次接触esp8266,最初的目的就是为了无线控制,这不比按键操作牛。
根据野火产品资料下载的esp8266教程,如下图(本人是F429挑战者V1板子)

根据参考资料里面的连接方式连接各个开发板

(不是野火开发板子的,可以根据GPIO口的闲置,进行调解,可以在工程中进行修改)
打开配套代码中的工程手机app控制例程(地址为:…\ESP8266模块\配套代码\F429_挑战者开发板_V1\1-手机app控制例程\Project\RVMDK(uv5)),注意只是打开。
注:这里我用的是版本keil 5.13,内核5.05,因为之前有一个WiFi模块emw1062,不用5.05的内核就报错,就很无语。
1 修改IO口
注:用原版源代码,连接方式也没更改,可以不改
esp8266的引脚连接定义在"./ESP8266/bsp_esp8266.h",72行左右
可以对esp8266的各个引脚进行修改,注意时钟与GPIO口的搭配,串口看数据手册进行调换。
2 修改热点
在test.h中,可修改热点参数

3 官方连接
在官网下载秉火物联app,安装到手机,打开串口(默认 115200 8-N-1注意波特率等配置),编译下载,后会看见串口打印信息,如果没修改源代码里面的热点参数,应该会提示IP192.168.1.1端口 8080,用手机连接WiFi Yehuolink,打开秉火物联app,输入,连接,就可以控制灯和蜂鸣器,还有温度传输。

4 自己改 ****
上面是实现了功能,但是,我不一定要控制它的板子,我从新做个板子,难道就不能用咯吗?
当然不是,这里我们来看看如何修改,根据什么改?
改,不是盲目瞎改,这里我是先看代码,现在对代码进行个解析。可以对比其他代码,这个工程主要加了四个文件,"./ESP8266/bsp_esp8266
.h" “./ESP8266/bsp_esp8266.c” “test.h” "test.c"前两个是对8266本身资源配置,而后两个才是数据传输配置。
“./ESP8266/bsp_esp8266.c” 中就一个 ESP8266_StaTcpClient_UnvarnishTest函数,所以所有的修改将在这里进行。

 uint8_t ucId, ucLen;     //定义变量ID 长度uint8_t ucLed1Status = 0, ucLed2Status = 0, ucLed3Status = 0, ucBuzzerStatus = 0;
//定义变量 LED1 2 3 指示是否开启char cStr [ 100 ] = { 0 }, cCh; //定义字符串cStr用于存放发送数据,定义字符变量 cChchar * pCh, * pCh1;//定义字符指针 * pCh, * pCh1DHT11_Data_TypeDef DHT11_Data; //DHT11结构体命名printf ( "\r\n正在配置 ESP8266 ......\r\n" );macESP8266_CH_ENABLE(); //8266初始化配置ESP8266_AT_Test ();ESP8266_Net_Mode_Choose ( AP );while ( ! ESP8266_CIPAP ( macUser_ESP8266_TcpServer_IP ) );while ( ! ESP8266_BuildAP ( macUser_ESP8266_BulitApSsid, macUser_ESP8266_BulitApPwd, macUser_ESP8266_BulitApEcn ) );   ESP8266_Enable_MultipleId ( ENABLE );while ( !  ESP8266_StartOrShutServer ( ENABLE, macUser_ESP8266_TcpServer_Port, macUser_ESP8266_TcpServer_OverTime ) );ESP8266_Inquire_ApIp ( cStr, 20 );//把IP存放printf ( "\r\n本模块WIFI为%s,密码开放\r\nAP IP 为:%s,开启的端口为:%s\r\n手机网络助手连接该 IP 和端口,最多可连接5个客户端\r\n",macUser_ESP8266_BulitApSsid, cStr, macUser_ESP8266_TcpServer_Port );//串口打印提示信息strEsp8266_Fram_Record .InfBit .FramLength = 0;strEsp8266_Fram_Record .InfBit .FramFinishFlag = 0;   while ( 1 ){        if ( strEsp8266_Fram_Record .InfBit .FramFinishFlag ){USART_ITConfig ( macESP8266_USARTx, USART_IT_RXNE, DISABLE );
//½ûÓô®¿Ú½ÓÊÕÖжÏstrEsp8266_Fram_Record .Data_RX_BUF [ strEsp8266_Fram_Record .InfBit .FramLength ]  = '\0';//          printf ( "\r\n%s\r\n", strEsp8266_Fram_Record .Data_RX_BUF );//if ( ( pCh = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_LED_" ) ) != 0 ) {cCh = * ( pCh + 8 );switch ( cCh ){case '1':cCh = * ( pCh + 10 );switch ( cCh ){case '0':LED1_OFF;ucLed1Status = 0;break;case '1':LED1_ON;ucLed1Status = 1;break;default :break;}break;case '2':cCh = * ( pCh + 10 );switch ( cCh ){case '0':LED2_OFF;ucLed2Status = 0;break;case '1':LED2_ON;ucLed2Status = 1;break;default :break;}break;case '3':cCh = * ( pCh + 10 );switch ( cCh ){case '0':LED3_OFF;ucLed3Status = 0;break;case '1':LED3_ON;ucLed3Status = 1;break;default :break;}break;default :break;                   }sprintf ( cStr, "CMD_LED_%d_%d_%d_ENDLED_END", ucLed1Status, ucLed2Status, ucLed3Status );}else if ( ( pCh = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_BUZZER_" ) ) != 0 ) {cCh = * ( pCh + 11 );switch ( cCh ){case '0':BEEP_OFF;ucBuzzerStatus = 0;break;case '1':BEEP_ON;ucBuzzerStatus = 1;break;default:break;}sprintf ( cStr, "CMD_BUZZER_%d_ENDBUZZER_END", ucBuzzerStatus );}else if ( ( ( pCh  = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_UART_" ) ) != 0 ) && ( ( pCh1 = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "_ENDUART_END" ) )  != 0 ) ) {if ( pCh < pCh1){ucLen = pCh1 - pCh + 12;memcpy ( cStr, pCh, ucLen );cStr [ ucLen ] = '\0';}}else if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_READ_ALL_END" ) != 0 ) {Read_DHT11 ( & DHT11_Data );sprintf ( cStr, "CMD_LED_%d_%d_%d_ENDLED_DHT11_%d.%d_%d.%d_ENDDHT11_BUZZER_%d_ENDBUZZER_END", ucLed1Status, ucLed2Status, ucLed3Status, DHT11_Data .temp_int, DHT11_Data .temp_deci, DHT11_Data .humi_int, DHT11_Data .humi_deci,ucBuzzerStatus );}if ( ( pCh = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+IPD," ) ) != 0 ) {ucId = * ( pCh + strlen ( "+IPD," ) ) - '0';ESP8266_SendString ( DISABLE, cStr, strlen ( cStr ), ( ENUM_ID_NO_TypeDef ) ucId );}strEsp8266_Fram_Record .InfBit .FramLength = 0;strEsp8266_Fram_Record .InfBit .FramFinishFlag = 0;    USART_ITConfig ( macESP8266_USARTx, USART_IT_RXNE, ENABLE );  //使能串口接收中断}}

esp8266学习感悟相关推荐

  1. asp.net 与 java 2017_[ASP.net教程]C#与JAVA学习感悟

    [ASP.net教程]C#与JAVA学习感悟 0 2015-10-06 23:00:07 C#与JAVA学习感悟 学完C#与JAVA,感觉收获良多.C#与JAVA这两门语言相似度很高(了解它们早期历史 ...

  2. esp8266舵机驱动_arduino开发ESP8266学习笔记四—–舵机

    arduino开发ESP8266学习笔记四-–舵机 使用时发现会有ESP8266掉电的情况,应该是板上的稳压芯片的限流导致的,观测波形,发现当舵机运转时,电源线3.3V不再是稳定的3.3V,大概是在3 ...

  3. 红橙Darren视频笔记 流式布局tagLayout measure layout方法学习 adapter使用 学习感悟

    效果: 自定义View public class TagLayout extends ViewGroup {private static final String TAG = "TagLay ...

  4. Integer学习感悟

    摘要: 今天学习了一下String的源码.下面是我的学习感悟. Integer是int的包装类,可以为null, int不能为null,默认为0 1. jdk中的源码定义如下: public fina ...

  5. ESP8266学习笔记:实现ESP8266的局域网内通信

    ESP8266学习笔记:实现ESP8266的局域网内通信 现在就以实例入手.工程使用的是IOT_DEMO,据DEMO文档可以知道ESP8266初始工作模式为softAP+station共存的模式.于是 ...

  6. windows编程学习感悟

    windows编程学习感悟 开始 学习 系统设计 安全方向 生态未来 推荐 ps:这是一个感悟blog,为想学windows编程的提供一点方向,也是对自己看了一个暑假的windows书籍的一个小总结. ...

  7. 樊登读书会终身成长读后感_樊登读书会听书《终身成长》学习感悟

    欢迎你打开我的学习感悟之旅终身成长 终身成长就是思维模式的意思,‌‌作者把所有的我们成功与否,我们的行为习惯,我们与他人的关系,我们的家庭,我们的事业‌‌的‌‌最重要的要素都归结为我们的两种思维习惯的 ...

  8. 乐鑫esp8266学习rtos3.0笔记第9篇:整理分享那些我在项目中常用的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  9. CSAPP作业:Fork函数的学习感悟

    在CSAPP课程学习中,教材的第八章:异常控制流中出现了一个名为Fork的函数,在书中提到它可以将一个进程复制为几乎相同却不完全相同的两个进程,被用于系统调用错误处理中,这使我对它产生了浓厚的兴趣. ...

最新文章

  1. iOS开发实战-基于SpriteKit的FlappyBird小游戏
  2. Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别
  3. Android Service的使用方法 音乐播放器实例
  4. Win32汇编数组编程图解
  5. 文献学习(part26)--Extended Comparisons of Best Subset Selection, Forward Stepwise Selection, and Lasso
  6. css定位positon
  7. 前端学习(1800):前端调试之清除浮动练习2
  8. 远离你身边消极爱抱怨的人!!
  9. linux nls_lang oracle,linux操作系统环境变量LANG和NLS_LANG的区别
  10. tensorflow实现深度可分离卷积
  11. xmta温度控制仪说明书_XMT温度控制仪说明书
  12. [休闲]GDC China 2007上海中国游戏开发者大会
  13. 37页pdf,埃默里大学最新「大数据时代事件预测」综述,ACM顶级期刊上发表
  14. swagger设置字段required必填
  15. AI读书笔记:《剑桥五重奏—机器能思考吗?》
  16. 拆掉思维里的墙--书摘+个人理解
  17. 计算机导论期末自测题,计算机导论期末习题da
  18. linux 上oracle已经启动 但是客户端无法连接,Oracle 客户端连接排错
  19. 专业流程拓扑软件IAuto3.1.1用户操作手册——赶紧收藏,功能比processon、visio、draw.io更强大!小巧易用!
  20. 屏蔽博客园背景动态线条

热门文章

  1. 计算机 管理 mmc 注册表,我的注册表没有MMC文件
  2. 云栖大会100位顶级大咖演讲PPT+视频全分享
  3. [python]pip freeze和pipreqs的区别和使用方法
  4. PageRank背后的数学
  5. ubuntu中进行复制粘贴
  6. android 最好的gtd软件,Windows 上的高颜值 GTD 应用,这可能是最棒的一款了:MyerList...
  7. Firefox浏览器强制取消自动更新
  8. H5(HTML)网页制作基础
  9. 把苦难的时光删去:从小县城售货员到深圳IT白领的蜕变之路
  10. A new deep transfer learning network based on convolutional auto-encoder for mechanical fault diagno