|
抽空测试了一下C031的ADC,使用电位器,一端接3.3V,一端接GND,中间端接PA4,AD采样端,连接如图1所示: 9 m( l! f: X8 a, `* h/ \2 }
图1 功能就是每实现一次转换,闪一下LED。还是先从配置Cubemx开始,配置如图2所示:
图2 配置完后,说明基本软件已经搭建好,然后参考SDK中的DEMO,修改了一下程序,查一下handler函数中是否调用了callback函数,一切OK后,部分代码如下所示: ; b3 b6 u) i% p* y$ f8 Y0 x% \/ U ``` /* Perform ADC calibration */ if (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK)9 k' A' e) i/ j {- {! S1 f+ l7 w( P /* Calibration Error */ Error_Handler(); }9 M: \+ \2 H8 N& C7 b/ ], y /* Start ADC group regular conversion */9 r6 y9 a% T1 q" I /* Note: First start with DMA transfer initialization, following ones# N* p" ^, f' V6 o% n with basic ADC start. */ if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)uhADCxConvertedData, 1U //ADC_CONVERTED_DATA_BUFFER_SIZE4 G Y0 g- h) o- A8 f ) != HAL_OK)3 h/ B: g( R( S( ]4 V" x% v { /* Error: ADC conversion start could not be performed */) [7 [. `$ d% ^# q: Y/ x Error_Handler(); } ```2 h/ l) F: ]1 S* v 这部分是while之前需要定义的,while中修改如下: s% |& m9 Y6 F8 f" f % o+ i( R1 `! c! {1 {! A% E9 q; i. ` ```+ j0 e* X% e% m- c if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)uhADCxConvertedData, 1U //ADC_CONVERTED_DATA_BUFFER_SIZE ) != HAL_OK) { /* Error: ADC conversion start could not be performed */ Error_Handler(); } HAL_Delay(1000);' ^7 p/ j w8 ^' Q m$ [7 r /* If ADC conversions and DMA transfer are completed, then process data */ if(ubDmaTransferStatus == 1)9 |8 s) Q: i+ ]& N {' [3 S( _; z; s 6 l! V9 e# R) ]* N w7 Q uhADCxConvertedData_VoltageGPIO_mVolt = __LL_ADC_CALC_DATA_TO_VOLTAGE(3300U, uhADCxConvertedData[0], LL_ADC_RESOLUTION_12B);7 D3 u% E6 h9 z1 i7 h2 _ ubDmaTransferStatus = 0;2 F2 K% U. W) v$ e/ R3 f 0 H! \3 {% E8 v. U" S* I/ u HAL_GPIO_TogglePin (GPIOA,GPIO_PIN_5); HAL_Delay(100); /* Delay to highlight toggle sequence */ ``` ' C- s6 O( I4 N$ Y. @ 测试结果如图3所示: 4 J% i9 F2 o }4 P: i" v
图3 8 Y3 L. L! A- F5 Q" l8 D7 W/ I 旋转电位器,使用万用表测试了一下电位器输出分压,误差范围内基本和计算值一致。 |
【STM32C0评测】C071:USB的使用
【STM32C0评测】4、驱动Lorasx126x,实现透传
STM32C0 × HDSMART弘大智控解锁旋钮式智能控制器,开启人机交互新体验
基于编码器信号的PWM输出示例
【新品发布】STM32C0 三大子产品线齐发,精准适配价格敏感应用(文末有奖)
有奖直播 | 超性价比入门级MCU:STM32C0全新子产品线深度解读
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
【STM32峰会观看直播获奖】晒奖品
STM32C071RB外部中断控制小灯点亮熄灭
STM32C071RB实现串口收发功能
微信公众号
手机版