
抽空测试了一下C031的ADC,使用电位器,一端接3.3V,一端接GND,中间端接PA4,AD采样端,连接如图1所示:![]() 图1) S" K- i) } d * I2 [. n- f. m 功能就是每实现一次转换,闪一下LED。还是先从配置Cubemx开始,配置如图2所示:3 {: `, j: A# g) a( y0 N5 |) \* S ![]() ; a6 r3 d' m9 g' { 图2 配置完后,说明基本软件已经搭建好,然后参考SDK中的DEMO,修改了一下程序,查一下handler函数中是否调用了callback函数,一切OK后,部分代码如下所示: x1 ~) h( Z% c1 t ``` /* Perform ADC calibration */, a2 L; i- \0 B9 }, [ if (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK)' f$ z/ Y! G8 z( F: I& G {: _8 z0 s4 r q" M* E /* Calibration Error */, o& E9 U. @: P! B. b4 Q Error_Handler(); }8 _& O o' ]$ G6 {# e/ _* u9 D /* Start ADC group regular conversion */ /* Note: First start with DMA transfer initialization, following ones9 w8 M. i: Y7 n$ D# h with basic ADC start. */ if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)uhADCxConvertedData,/ |& R2 G1 @/ }' T' u: m+ w- V 1U //ADC_CONVERTED_DATA_BUFFER_SIZE ) != HAL_OK) { /* Error: ADC conversion start could not be performed */4 x! o( [' A5 N$ N" C8 X, @ Error_Handler(); } ```+ i- }1 R1 [2 x4 n# k 这部分是while之前需要定义的,while中修改如下: 5 x, o8 Z& B" {) d9 E4 q, A u ```1 d+ X$ w, S9 H9 [; _: r+ O if (HAL_ADC_Start_DMA(&hadc1,& G- s' |" g. x4 p1 X' q (uint32_t *)uhADCxConvertedData, 1U //ADC_CONVERTED_DATA_BUFFER_SIZE ) != HAL_OK) { /* Error: ADC conversion start could not be performed */) S* ?: R+ e' J. o- z% @5 m Error_Handler();# v* `# N: v9 U0 `/ r! H, ] }$ c7 G( \' v2 V' i HAL_Delay(1000); /* If ADC conversions and DMA transfer are completed, then process data */6 |) V3 m& a9 D( b, i0 V( d% b4 F if(ubDmaTransferStatus == 1) \& ]$ {. J5 o! B7 y( L7 F {* Y' _% A8 Z/ o+ W( a5 P ; m9 i p) _) ~ uhADCxConvertedData_VoltageGPIO_mVolt = __LL_ADC_CALC_DATA_TO_VOLTAGE(3300U, uhADCxConvertedData[0], LL_ADC_RESOLUTION_12B);9 {' E+ p5 k+ n+ d" f* } ubDmaTransferStatus = 0;8 D, D! ^2 C" t" z; \- I & N. x& K; t8 z8 P9 {* U# u HAL_GPIO_TogglePin (GPIOA,GPIO_PIN_5);- J. [% e% O; y! a, k r HAL_Delay(100); /* Delay to highlight toggle sequence */. z) w8 J) p. q+ p7 \3 [ ``` 测试结果如图3所示: ![]() ! a1 [2 e9 R* {9 } 图3 4 D/ D- v* \4 C2 G7 y [ 旋转电位器,使用万用表测试了一下电位器输出分压,误差范围内基本和计算值一致。- A" X: g9 v' \3 y |
【STM32C0评测】C071:加个PWM
NUCLEO-C071RB评测1_GPIO测试
【STM32C0评测】C071:GPIO+定时器+串口
STM32C0评测】C071开箱
NUCLEO-C071RB评测4_模拟和硬件SPI驱动3.5寸TFT彩屏
NUCLEO-C071RB评测3_PWM测试
【STM32C0评测】+NUCLEO-C071 PWM输出测试
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)