打印
[应用相关]

KEIL 调试中自动停止,无法继续执行,也无法定位死在哪里

[复制链接]
3511|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xueyanqin|  楼主 | 2016-6-5 21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
您好。
请教一下,在做加速度,是I2C通讯,我用的是STM32L053,先是用官方库函数,能够采集三轴的值,但是出现的问题是,我在间隔1秒采集一次三轴值,一般是采集32次时,程序就死了,如果换成别的寄存器,也能运行,不会在31次时停止,停的位置不一致,有时不会出现停止。但采集三轴一定会在32次时死掉。仿真调试,死的时候就自动停止了,然后运行单步调试等等均无法执行,且这时无法定位执行到哪里。如果是常规的死,也会在某个死循环中找到,但这个不知道为什么。
有谁遇到过这个问题吗。
后怀疑库函数的问题,用模拟I2C又做了,也是出现这个问题。
谢谢。
沙发
xueyanqin|  楼主 | 2016-6-5 21:56 | 只看该作者
补充一下:用的三轴传感器是MMA8653F

使用特权

评论回复
板凳
yklstudent| | 2016-6-6 07:26 | 只看该作者
看看其它部分程序是否有问题,别老盯着I2C啊

使用特权

评论回复
地板
xueyanqin|  楼主 | 2016-6-6 08:33 | 只看该作者
yklstudent 发表于 2016-6-6 07:26
看看其它部分程序是否有问题,别老盯着I2C啊

谢谢您的答复,关键是屏蔽掉I2C读就不存在这个问题,程序运行良好,在运行中把主要的其它功能给屏蔽掉了

使用特权

评论回复
5
xueyanqin|  楼主 | 2016-6-6 16:12 | 只看该作者
printf()函数可以直接向窗口格式化输出,给我们调试程序带来很大的方便,然而在Keil MDK环境下直接使用printf()函数就会陷入软件中断,导致死循环的产生;
就是这原因,因为算法是用同事的程序,没注意这条。

使用特权

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

本版积分规则

17

主题

84

帖子

0

粉丝