[应用相关] 为什么AD会卡在ADC_GetResetCalibrationStatus

[复制链接]
10200|11
 楼主| wakaoo 发表于 2009-2-28 01:40 | 显示全部楼层 |阅读模式
就算用ADC的例程都会卡在while(ADC_GetResetCalibrationStatus(ADC1));和while(ADC_GetCalibrationStatus(ADC1));。请问香主这是为什么?以前初始化都没这些问题的
jcx0324 发表于 2009-3-29 20:31 | 显示全部楼层

我也想知道

我也遇见同样的问题,但是仿真的时候有时候是好的,或者是复位下又好了
vigia 发表于 2009-3-30 12:11 | 显示全部楼层

。。。。

估计还是调试时前一次操作所涉及到的硬件和寄存器没有复位造成的,

所以,调试时一定要保障所用硬件及其寄存器在初始化是可靠的复位,不然奇怪的问题层出不穷,耗费时间体力。

可靠复位的方法
1,外设初始化时,操作RCC->APB2RSTR和RCC->APB1RSTR寄存器,复位所使用的硬件。

2,外设初始化是调用xxx_DeInit()函数,复位硬件寄存器。


使当前调试不会被前一次的调试影响。
alenthj 发表于 2009-3-30 12:15 | 显示全部楼层

同意楼上

建议stm32所有外设使用前,寄存器都初始化为默认值。
sjh2100 发表于 2018-1-26 10:26 | 显示全部楼层
ADC_Cmd(ADC1, ENABLE);//这里是个转折点,如果没有使能,会永远卡在这一点,死机了。。。。先开adc,在等待校验
lili12 发表于 2022-10-8 14:19 | 显示全部楼层
我也遇到了,请问这个问题解决了嘛
V853 发表于 2022-10-8 20:10 | 显示全部楼层
lili12 发表于 2022-10-8 14:19
我也遇到了,请问这个问题解决了嘛

看看是不是单片机没有真正复位。
V853 发表于 2022-10-8 20:11 | 显示全部楼层
lili12 发表于 2022-10-8 14:19
我也遇到了,请问这个问题解决了嘛

你可以进入函数看看while是一直在等待什么寄存器改变。
spark周 发表于 2022-10-8 22:51 | 显示全部楼层
复位还真是万能啊
AloneKaven 发表于 2022-10-9 21:21 | 显示全部楼层
复位搞一下
wuhany 发表于 2022-10-9 22:52 | 显示全部楼层
复位下又好了?
SantaBunny 发表于 2023-2-22 11:12 | 显示全部楼层
我们必须先配置,启动ADC,再操作这些寄存器,不然就会使ADC进入未知状态。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部