你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32卡死问题

[复制链接]
embededtony 提问时间:2018-4-25 13:49 /
阅读主题, 点击返回1楼
收藏 评论39 发布时间:2018-4-25 13:49
39个回答
toofree 回答时间:2018-4-25 15:40:29
本帖最后由 toofree 于 2018-4-25 15:43 编辑

对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮点或双精度数,且b不为零。
把程序的优化等级调到最低

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

embededtony 回答时间:2018-4-25 15:53:15
bargagebaobei 发表于 2018-4-25 15:37
不是死循环 就是一个小延时 比如 delay_ms(1)或者诸如此类的  因为你说如果单步没问题 全速有问题 所以我考 ...

很遗憾,并没有什么作用。
springvirus 回答时间:2018-4-25 15:55:18
embededtony 发表于 2018-4-25 14:08
另外我发现一个问题,如果我把我的模拟sci读取传感器的函数注释掉不调用,就没有问题。我怀疑是不是堆栈 ...

那就重点检查读取传感器函数里面吧
bargagebaobei 回答时间:2018-4-25 15:55:34
您延时给的多少?在哪里加的延时代码 贴过来瞅瞅
embededtony 回答时间:2018-4-25 15:59:11
bargagebaobei 发表于 2018-4-25 15:55
您延时给的多少?在哪里加的延时代码 贴过来瞅瞅

                action_available = true;
  // read position from sensor
                update_current_position(getMicroSteps());
                update();
                HAL_Delay(100000);
我把程序拿到主循环中跑了,刚才延时10ms不行,现在延时100ms还在跑,挺慢的
embededtony 回答时间:2018-4-25 16:01:16
springvirus 发表于 2018-4-25 15:55
那就重点检查读取传感器函数里面吧

我检查过了,没有任何的死等函数,SCI是IO模拟的,这个不是问题所在。
embededtony 回答时间:2018-4-25 16:02:28
toofree 发表于 2018-4-25 15:40
对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮 ...

工程暂时真的不大方便,我如果把其他的都搞掉,估计我自己都试不出来东西了,公司的代码不能乱发啊
bargagebaobei 回答时间:2018-4-25 16:03:31
楼主啊 我看不到全貌 不能确定你添加的位置对不对update_current_position(getMicroSteps());
                update();这俩函数体是什么
embededtony 回答时间:2018-4-25 16:03:59
toofree 发表于 2018-4-25 15:40
对于没工程的,真没法试。
就一条 temp = -1800 * a /b,没有任何问题。对于这样的,temp、a、b 需要都是浮 ...

我这个工程hal库的,优化最低连时钟初始化代码都过不了,我也不知道原因。另外temp,a,b都是long型,没有浮点运算。
springvirus 回答时间:2018-4-25 16:06:43
想解决问题,还没法发代码,只能自己排查了
1234
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版