打印

为何我程序单步走没问题,直接运行就出错?

[复制链接]
751|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dsp28335,软件模拟I2C,ds3231,先向3231写个时间,然后一个个读出来,原计划是显示在lcd上面的,结果背光坏了,就显示在了一个数组里面。重点就是,我在向3231写数据之前设置了个断点,然后while里面一直读,我按着f5一直走到头,然后看数组里面的值,就是时间,当然,由于rtc时钟走了几秒,所以秒会有点区别,分也在1分钟内,其余的年月日小时都是我写进去的值,然后我取消断点,让他自己跑,问题就来了,数组里面一个数都得不到,是一些乱七八糟的东西。我就好奇了啊,为啥??有大神以前碰到过这种问题没有?

相关帖子

沙发
isseed| | 2016-8-26 23:07 | 只看该作者
你的地址写对了吗?

使用特权

评论回复
板凳
isseed| | 2016-8-26 23:07 | 只看该作者
你断点查看一些寄存器的数值吧。

使用特权

评论回复
地板
xyz549040622| | 2016-8-27 09:26 | 只看该作者
有时候是由于初始化需要一定的时间或者延时,你单步的时候这个可以通过,可实际的时候,怕是由于这个时间不够导致的。

使用特权

评论回复
5
长的帅怪我落|  楼主 | 2016-8-29 09:24 | 只看该作者
我今天在研究研究。。我猜的也可能是那里延时的问题,整个while跑起来太快了,然后导致某些地方出错

使用特权

评论回复
6
isseed| | 2016-8-29 22:11 | 只看该作者
长的帅怪我落 发表于 2016-8-29 09:24
我今天在研究研究。。我猜的也可能是那里延时的问题,整个while跑起来太快了,然后导致某些地方出错 ...

iic速度不快

使用特权

评论回复
7
isseed| | 2016-8-29 22:12 | 只看该作者
长的帅怪我落 发表于 2016-8-29 09:24
我今天在研究研究。。我猜的也可能是那里延时的问题,整个while跑起来太快了,然后导致某些地方出错 ...

一般都是400k左右

使用特权

评论回复
8
Rangar| | 2016-8-30 21:17 | 只看该作者
查看寄存器的值是什么样

使用特权

评论回复
9
长的帅怪我落|  楼主 | 2016-9-1 09:37 | 只看该作者
好吧,研究了半天搞定了,ds3231读数据的时候,先要发送地址,然后在硬件识别地址并产生应答后在由ds3231向sda输出数据,我就是在发送玩地址并应答后加了个延迟,然后就行了,估计是没有延时导致硬件没来得及识别地址所以就没有输出数据。

使用特权

评论回复
10
wangdezhi| | 2016-9-3 11:15 | 只看该作者
看看你的程序变量有问题吗?

使用特权

评论回复
11
wangdezhi| | 2016-9-3 11:16 | 只看该作者
运行后的内存可能过大造成的。

使用特权

评论回复
12
xietingfeng| | 2016-9-4 22:49 | 只看该作者
你写入的数据太快了吧。

使用特权

评论回复
13
xietingfeng| | 2016-9-4 22:51 | 只看该作者
IIC有对应的读取速度的。

使用特权

评论回复
14
isseed| | 2016-9-9 17:13 | 只看该作者
是不是存在读写速率的问题

使用特权

评论回复
15
isseed| | 2016-9-9 17:14 | 只看该作者
使用串口调试看看吧

使用特权

评论回复
16
Stannis| | 2016-9-10 20:42 | 只看该作者
是不是太快了,初始化需要时间的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:多情剑客无情剑,无情剑配多情人

21

主题

838

帖子

7

粉丝