请问是什么原因导致STM32程序变大后ADC工作不正常了?

2019-07-14 15:15发布

大家有没有遇到这样的问题,程序貌似超过60多kb后adc转换出来的数据就很奇怪了,我用的是STM32L151系列的;
通过观察寄存器,adc的CR2寄存器发生了变化;
11.png
12.png
目前解决方法有两种:
        ① 控制程序不要超过60多kb;
        ② 强制将CR2寄存器赋值成正确的值;

我想知道问题的根本原因在哪儿,在此等候各位大神的回复

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
hucc
1楼-- · 2019-07-16 10:29
这样给你说吧,定义一个变量,系统会在栈上开辟一个空间用于存储这个变量,但是在向这个栈空间传的值所占空间大于定义的空间时,这个栈临近的空间会被无意识的改变了
iettke
2楼-- · 2019-07-16 13:38
 精彩回答 2  元偷偷看……
hucc
3楼-- · 2019-07-16 18:38
你对比下汇编代码,是不是改了栈的数据,调用函数就会有栈操作
lee_st
4楼-- · 2019-07-16 21:33
空间溢出
lee_st
5楼-- · 2019-07-17 01:32
可以试试中断

一周热门 更多>