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

MDK优化等级问题--基于STM32F407

[复制链接]
wujique 提问时间:2018-3-28 22:38 /
阅读主题, 点击返回1楼
收藏 4 评论19 发布时间:2018-3-28 22:38
19个回答
motianlun1111 回答时间:2019-5-18 23:03:38
不知道楼主找到问题根源没有?我是stm32f103rct6也是遇到类似的问题了,
adc,同步触发采样,采集电机的电流,我不接电机的情况下,采集底噪在设置不同的优化等级下不一样,比较诡异的是:
比如我现在设置的0级优化,底噪感觉正常的,但是我加了一些代码之后,还是0级优化就不正常了,
然后我就不断的改优化等级,可能是3级优化正常,然后我又改点和这个adc无关的代码,可能这时候原来正常的优化等级又不正常了,
这时候又要试一遍,可能遇到优化等级2又是正常的,
adc的底噪是正常的时候大约在10lsb以内,不正常的就是有很大的跳变,如图:
底噪正常的:试到优化等级1正常

底噪正常 优化等级1

底噪正常 优化等级1

底噪异常的:优化等级0,2,3异常

底噪异常 优化等级0,2,3

底噪异常 优化等级0,2,3

意思就是说每次我增加了一点代码,或者删除了一点代码,当然是和adc无关的代码,我需要不断的调优化等级,可能找到一种优化等级保证adc的噪声是正常的
plj213 回答时间:2020-5-21 11:26:24


谢谢分享,学习学习。。。
慎微 回答时间:2020-5-21 15:31:49
个人觉得很像内存 有问题,不一定是优化:
  理由:1)去掉某部分,相当于排除了部分内存,造成内存有多余。
           2)加 volatile 定义 的变量不会被优化掉。有客观保护该变量的意思,
          3) ADC单独封一个函数,也相当于 ADC 结果变量 被保护了。
  内存泄漏或分配乱指向 都比较像造成某个值异常。
wujique 回答时间:2020-5-31 08:17:46
好久了,我记得好像解决了,问题是要处理ADC的出错,也就是说,当ADC转换出错的时候,要根据出错流程处理,否则后面的转换会一直是错的。

有空我再看看。
12
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版