ST意法半导体
直播中

李浯

7年用户 1050经验值
私信 关注
[问答]

有什么办法去校准STM32F303RE微控制器上的ADC3呢?

您好,我正在尝试校准我的 STM32F303RE 微控制器上的 ADC3。根据 REF MANUAL,我启用了 ADC 电压调节器,然后开始校准,但代码永远卡在 while 循环中(ADCAL 始终为 1)。我放置 for 循环只是为了确保 VREG 得到适当稳定但没有任何改变
  •         RCC->AHBENR |= RCC_AHBENR_ADC34EN;
  •         ADC3->CR &= ~ADC_CR_ADEN;
  •         ADC3->CR &= ~(0b11<<28); //ADC voltage regulator enable
  •         ADC3->CR |= (0b01<<28); //ADC voltage regulator enable
  •         for(int i=1; i<10000;i++){}//delay
  •         ADC3->CR &= ~ADC_CR_ADCALDIF;//calibration in Single-ended inputs Mode
  •         ADC3->CR |= ADC_CR_ADCAL; //start ADC calibration
  •         while (ADC3->CR & ADC_CR_ADCAL){}//calibration in progress
我是 ARM 微控制器领域的新手,如果我犯了很多错误,请原谅我。

回帖(1)

魏紫瑜

2022-12-26 16:25:22
您必须首先选择/设置一个“内核时钟”——阅读RM中ADC章节的时钟子章节。
默认情况下,内核时钟在 ADCx_CCR.CKMODE 中设置为 0b00,即来自 RCC 的时钟。
这又在 RCC_CFGR2.ADC34PRES=0b0000 => 禁用中默认设置。
初始测试的最简单方法是将 ADCx_CCR.CKMODE 设置为非零,即从 AHB 时钟导出内核时钟。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分