LAT1158
LAT1158 - Rev 1.0 page 2/5
正常的使用 Cube 函数启动 ADC 函数为:HAL_ADCEx_InjectedStart(&hadc1),此种情
况下 ADC 可以正常转换,无任何问题;如果客户使用下面的操作进行启动 ADC 转换则出
现 ADC 停止采样:
ADC1->CR |= 0x01; // ADEN =1
ADC1->CR |= 0x08; // JADSTART = 1
寄存器无报错,而且 JADSTART 一直等于 1,但 ADC 没有启动转换。
图2. ADC1 寄存器
如果客户改为只采样一个通道,而不进行多通道序列采样,则上述写法也无任何问题,
ADC 可正常转换。
3. 问题分析与解决
从 HAL 库中启动 ADC 代码看上去,实际 Cube 库函数做了很多判别,因此我们关心下
ADC 启动序列在参考手册中的说明: