Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
网络学习营
[网络编程学习]+_xiangxi+使用AT组件 + esp8266接入网络及作业
发布于 2018-08-09 20:29:16 浏览:1903
订阅该版
本周已经是网络编程学习的第二周了,本周作业是用AT组件把ESP8266连接上网络,并且建立文件系统用webclient组件从网站上下载文件并保存。讲道理,这周的学习内容还是比较多的对于我来说。由于之前一直是使用仿真和qemu平台来学习RT-Thread,这周的学习时我第一次使用板子完成作业,所以有时候有一些常识性问题是一点点翻看文档了解的,相信再经过两周的学习,我是可以熟练掌握这个开发过程的。下面是本周的学习内容:网络编程教程 [list] (*)[Socket TCP/UDP 背景知识](http://ci.rt-thread.com/3307/site/tutorial/network/socket/socket/) (*)[如何使用 WireShark 抓包分析](http://ci.rt-thread.com/3307/site/tutorial/network/wireshark/wireshark/) (*)[Ping(ICMP) 过程分析](http://ci.rt-thread.com/3307/site/tutorial/network/PING_ICMP/PING_ICMP/) (*)[如何使用 TCP 客户端和服务器通信](http://ci.rt-thread.com/3307/site/tutorial/network/tcpclient/tcp-client/) (*)[如何使用 UDP 客户端和服务器通信](http://ci.rt-thread.com/3307/site/tutorial/network/udpclient/udp-client/) (*)[TCP 是如何建立连接和断开连接的](http://ci.rt-thread.com/3307/site/tutorial/network/TCP_handshake_wave/TCP_handshake_wave/) (*)[UDP 是如何进行通信的](http://ci.rt-thread.com/3307/site/tutorial/network/UDP/UDP/) (*)[如何使用 NTP 获取网络时间](http://ci.rt-thread.com/3307/site/tutorial/network/ntp/ntp/) (*)[如何使用 Telnet 远程登陆](http://ci.rt-thread.com/3307/site/tutorial/network/telnet/telnet/) (*)[如何使用 TFTP 文件传输](http://ci.rt-thread.com/3307/site/tutorial/network/tftp/tftp/) (*)[如何使用 HTTP 协议获取天气](http://ci.rt-thread.com/3307/site/tutorial/network/httpclient/httpclient/) (*)[如何使用 AT 组件 + esp8266 Wi-Fi 模块接入网络](http://ci.rt-thread.com/3307/site/tutorial/network/at/at_esp8266/) (*)[如何使用 AT 组件 + GPRS 模块接入网络](http://ci.rt-thread.com/3307/site/tutorial/network/at/at_gprs/) (*) [/list]**第一部分:学习时遇到的问题** 1.板卡程序下载及Keil5内编译 我的芯片是STm32F107ZG,用得是原子的板子。由于之前只是使用Qemu平台学习,所以,这次刚开始有些许懵逼,之间得智商下线行为就不赘述,直到确认并询问了@改个名字,在bsp文件夹下选取stm32f4xx-HAL文件夹下编译测试。步骤和在QEMU平台下类似,由于是一步步做得,第一次编译时,只调用了AT组件,使用8266联网测试。 ![QQ截图20180809184655.png](/uploads/201808/09/184715c75pi97vy90ag0a5.png) 选取芯片文件夹,HAL作为亲儿子还是优先选取得好 ![QQ截图20180809184822.png](/uploads/201808/09/184839y300z9y3y9y19939.png)由于我选用得是原子的板卡,所以HSE选择为8M,即8000000 根据[http://ci.rt-thread.com/3307/site/tutorial/network/at/at_esp8266/](http://ci.rt-thread.com/3307/site/tutorial/network/at/at_esp8266/)配置完at组件的内容,便使用scons --traget=mdk5命令生成Keil5工程,然后用Keil5打开。Keil5打开后开始第一次编译第一次编译报错:".\build tthread-stm32f4xx.axf" - 19 Error(s), 6 Warning(s).19个错误,错误类型基本都是. error: #268: declaration may not appear after executable statement in block这种语法错误的出现原因是Keil5默认C90(也可能是我们默认c90),在C/C++选项卡开启C99即可 ![QQ截图20180809190153.png](/uploads/201808/09/190220xos3bj939o8w36z8.png)修改之后自然是编译通过,然后ST-Link下载到开发板。第一次下载到开发板后,并没有看到板卡正常运行,ESP8266也没有连接上网络。因为我忽略了用来打印的信息的串口和at命令的串口,再阅读完[https://www.rt-thread.org/docume ... em-network-started/](https://www.rt-thread.org/document/site/rtthread-application-note/components/network/an0011-rtthread-system-network-started/)修改msh串口由usart2到usart1,AT命令设置为usart2,并进行第二次编译和测试。 ![AT.png](/uploads/201808/09/192806uukckjciunimunxx.png) ![console.png](/uploads/201808/09/192821z1gn1zy4ndnzyvya.png)使用推荐得Xshell打开串口,执行at_ping [www.baidu.com](http://www.baidu.com)命令![QQ截图20180809193006.png](/uploads/201808/09/193059lk8yhltt5t5hv8va.png) 2.FLASH的设备安装由于本周的作业需要用到文件系统,所以,参考了[文件系统应用笔记](https://www.rt-thread.org/document/site/rtthread-application-note/components/dfs/an0012-rtthread-system-dfs/),按照内容配置env,然后scons编译,最后由Keil5打开工程,这里需要配置SPI1的端口,因为芯片型号不一样,所以引脚也会不一样。打开我这个探索者的原理图查看FLASH引脚连接到32的哪个位置,然后打开Drivers/srv_spi.c文件按照原理图进行配置。这里要感谢@小燕_lilian![QQ截图20180809193801.png](/uploads/201808/09/194716t0da846jzh2w68o6.png) ![QQ截图20180809193820.png](/uploads/201808/09/194720rzzvhzpkvj44anvv.png) ![QQ截图20180809193951.png](/uploads/201808/09/194724e3o3nxuoma2qe9pe.png)并且在env的主界面要配置FLASH的片选引脚F_CS = PB14 = 75![QQ截图20180809194926.png](/uploads/201808/09/194938lngat2jlb8glpf0g.png)截止到这个地方,FLASH已经是开发板可以使用的设备了,但是,对于文件系统来说还并不是,这个设备还不能被文件系统使用。此时得现象是用list_device命令,已经可以看到SPI1 SPI1 BUS以及norspi SPI device ,flash0 Blocks Device。![QQ截图20180809195434.png](/uploads/201808/09/195642syee4y1a4x39ww9c.png)当然,此时的flash0的ref count还是为0,并不能被文件系统使用。3.文件系统的创建if (dfs_mount("flash0", "/", "elm", 0, 0) == 0){ rt_kprintf("spi flash mount to /. !
");}else{ rt_kprintf("spi flash mount to / failed!
");}将上段代码添加进main()中,在msh中会看到spi flash mount to / failed!我们之所以会发生错误,是因为我们并没有创建文件系统![QQ截图20180809200653.png](/uploads/201808/09/200719lp1s33x3wenn212n.png)我们没有创建过文件系统,所以,除了上述的办法外,还可以将下面代码添加进main()函数。 if (dfs_mount("flash0", "/", "elm", 0, 0) == 0) { rt_kprintf("spi flash mount to /. !
"); } else { if(dfs_mkfs("elm","flash0")==0) { rt_kprintf("mkfs elm flash0.
"); if(dfs_mount("flash0", "/", "elm", 0, 0) == 0) { rt_kprintf("spi flash mount to /. !
"); } else rt_kprintf("spi flash mount to / failed!
"); } else rt_kprintf("mkfs elm flash0 fail.
"); }在初始化过程中自动创建一个文件系统。此时,文件系统被创建,挂载成功![QQ截图20180809201129.png](/uploads/201808/09/201142j341kewk84yysots.png)这里有[SFUD] Warning: The OS tick(100) is less than 1000. So the flash write will take more time.警告,把滴答时钟起振调为1000即可,我因为又下载了源码,这里还没有做修改。#define RT_TICK_PER_SECOND 100修改为 #define RT_TICK_PER_SECOND 1000,或者在env工具内修改。![QQ截图20180809201426.png](/uploads/201808/09/201439iy3h6yf00nih1dy4.png)按照文件系统应用笔记内的指令熟悉RT-Thread下的文件系统。4.Http client组件的Get方法获取文件群内提示用Get方法获取文件,所以,需要重新打开env工具进行配置。![QQ截图20180809202250.png](/uploads/201808/09/202301hz1vnvc4n4u5ezuc.png)用wget [http://183.193.243.90:9012/www/rt-thread.txt](http://183.193.243.90:9012/www/rt-thread.txt) xianliang.txt命令获取文件![QQ截图20180809202431.png](/uploads/201808/09/202442jp3eu3pcpjvv3b6x.png)本周的任务,对我我来说,还是有一定困难的,多亏了群友和管理的指导,我才能顺利完成。虽然有些粗糙,本着由无到有,由有到好的发展规律。还是稍稍有些宽慰的,还是需要勤加训练学习的,争取早日熟悉本次学习内容。
查看更多
0
个回答
默认排序
按发布时间排序
暂无答案,快来添加答案吧
撰写答案
登录
注册新账号
关注者
0
被浏览
1.9k
关于作者
_xiangxi
这家伙很懒,什么也没写!
提问
9
回答
47
被采纳
1
关注TA
发私信
相关问题
1
【LWIP学习营】第一关开发环境搭建
2
LWIP学习营第一周入门移植问题汇总贴
3
【LWIP学习营】f407+lan8720A小结
4
【LwIP学习营】【第一周】仅零散记录,无主题
5
【LWIP学习营】正点原子探索者F407+LAN8720第一周小结
6
【LwIP学习营】【第一周】网络通信基础及实现TCP 聊天客户端
7
【LwIP学习营】【第一周】LWIP移植
8
【LwIP学习营】【第一周】LWIP移植
9
【LwIP学习营】【第一周】开发板适配
10
【LwIP学习营】【第一周】环境搭建和配置验证
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
如何在master上的BSP中添加配置yml文件
2
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
3
RT-Thread 发布 EtherKit开源以太网硬件!
4
rt-thread使用cherryusb实现虚拟串口
5
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
14
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部