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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版