OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7090|回复: 8

通过esp8266获取网络天气和时间,碰到的诡异问题

[复制链接]

23

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1113
金钱
1113
注册时间
2016-8-26
在线时间
256 小时
发表于 2018-7-24 12:39:59 | 显示全部楼层 |阅读模式
10金钱
F103C8T6 + ESP8266 + MDK5
1、参考了http://www.openedv.com/forum.php?mod=viewthread&tid=229818这篇文章。
2、现在单片机已能使用esp8266通过路由器访问天气服务器,get API
3、现在问题是这样:

(1)、使用极速天气服务器,能获取天气数据(注:极速天气返回的数据较大),程序能顺利运行。
#define WEATHER_PORTNUM         "80"                                        //天气连接端口号:80#define WEATHER_SERVERIP         "api.jisuapi.com"                        //天气服务器IP

(2)、使用心知天气服务器,能获取天气数据(注:心知天气返回的数据较小),程序却会进入HardFault_Handler
#define WEATHER_PORTNUM         "80"                                        //天气连接端口号:80
#define WEATHER_SERVERIP         "api.seniverse.com"                //天气服务器IP




(3)、使用的同一个函数,不同的是服务器IP不一样。如下图所示:
QQ截图20180724123212.png

(4)、对进入的几种情况(

        (1)数组越界操作

        (2)内存溢出,访问越界

        (3)堆栈溢出,程序跑飞

        (4)中断处理错误)逐一做了排查,均没找到错误。(可能是没发现)

4、请问问题可能出现在哪里?

最佳答案

查看完整内容[请看2#楼]

问题已解决,服了自己,,,就是下面这里内存申请小了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1113
金钱
1113
注册时间
2016-8-26
在线时间
256 小时
 楼主| 发表于 2018-7-24 12:40:00 | 显示全部楼层
问题已解决,服了自己,,,就是下面这里内存申请小了。 QQ图片20180725101735.png
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2076
金钱
2076
注册时间
2014-12-19
在线时间
709 小时
发表于 2018-7-24 13:21:45 | 显示全部楼层
应该是数组访问越界,改下面的试一下
USART3_RX_BUF[USART3_RX_STA&0x3FFF] = 0;
回复

使用道具 举报

23

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1113
金钱
1113
注册时间
2016-8-26
在线时间
256 小时
 楼主| 发表于 2018-7-24 13:44:22 | 显示全部楼层
lvehe 发表于 2018-7-24 13:21
应该是数组访问越界,改下面的试一下
USART3_RX_BUF = 0;

还是不得行,下面是收到的数据 11.png

我再继续查找吧,头痛。。。
回复

使用道具 举报

23

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1113
金钱
1113
注册时间
2016-8-26
在线时间
256 小时
 楼主| 发表于 2018-7-24 13:46:06 | 显示全部楼层
lvehe 发表于 2018-7-24 13:21
应该是数组访问越界,改下面的试一下
USART3_RX_BUF = 0;

启动文件中,堆和栈的大小我都改成了4K的大小,应该是没问题的。
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2076
金钱
2076
注册时间
2014-12-19
在线时间
709 小时
发表于 2018-7-24 14:00:03 | 显示全部楼层
没看到串口发hardware error啊
难道是加了parse_weather就出问题?
回复

使用道具 举报

23

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1113
金钱
1113
注册时间
2016-8-26
在线时间
256 小时
 楼主| 发表于 2018-7-24 14:06:41 | 显示全部楼层
lvehe 发表于 2018-7-24 14:00
没看到串口发hardware error啊
难道是加了parse_weather就出问题?

没有,在while(1)加了断点;另外解析函数屏蔽了
回复

使用道具 举报

1

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2017-10-11
在线时间
79 小时
发表于 2018-7-25 12:07:22 | 显示全部楼层
有空了试试这个程序。
回复

使用道具 举报

25

主题

120

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2018-8-10
在线时间
92 小时
发表于 2018-10-5 14:49:42 | 显示全部楼层
问一下 用esp8266 实现天气功能,需要烧写什么固件?是烧写原来的配来的固件么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 03:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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