抽空测试了一下C031的ADC,使用电位器,一端接3.3V,一端接GND,中间端接PA4,AD采样端,连接如图1所示:
& O4 ~1 |7 y1 z. [# i 图1 5 B. p7 O( O( Q7 R; L5 @8 i 功能就是每实现一次转换,闪一下LED。还是先从配置Cubemx开始,配置如图2所示:% |' j/ a; _: X/ r* ~ 2 K/ H0 y! a9 Z: F, P2 t! X
4 i+ O0 Z& {: {( e9 S" b 图2 8 `: D8 T7 ~; ]+ c& ]. x 配置完后,说明基本软件已经搭建好,然后参考SDK中的DEMO,修改了一下程序,查一下handler函数中是否调用了callback函数,一切OK后,部分代码如下所示: ``` /* Perform ADC calibration */+ W# y$ L' \* P if (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK) {0 l, V/ _3 @8 I7 b7 M /* Calibration Error */9 E8 X5 E" p& j+ J2 i# V Error_Handler(); }$ v+ ]$ R0 u& }0 w% } 6 y" J" p6 U/ ^1 c, D; V /* Start ADC group regular conversion */7 G! p3 i7 _( ?% ?1 @2 R /* Note: First start with DMA transfer initialization, following ones with basic ADC start. */. ~5 p% h' l" J4 [2 m4 X* r/ `' w if (HAL_ADC_Start_DMA(&hadc1,) T: u- Z) r4 f3 N% M (uint32_t *)uhADCxConvertedData, 1U //ADC_CONVERTED_DATA_BUFFER_SIZE ) != HAL_OK)+ ~5 B/ g* d0 K" y) ~! J { /* Error: ADC conversion start could not be performed */# ]1 j3 C; I* ~1 I Error_Handler();+ _+ g9 o- B* f! [- A } ``` + s+ B3 Z( _3 B2 G 这部分是while之前需要定义的,while中修改如下:+ m( d$ {; y$ m5 f2 [7 i ```9 S' ^& ^7 l# @' g8 j a if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)uhADCxConvertedData,% S* P; [6 X/ V 1U //ADC_CONVERTED_DATA_BUFFER_SIZE ) != HAL_OK) { /* Error: ADC conversion start could not be performed */ Error_Handler();3 O* ]6 {1 g+ H$ ]' T } HAL_Delay(1000);" @8 C* W+ p# b" K2 r3 g2 e8 y /* If ADC conversions and DMA transfer are completed, then process data */ if(ubDmaTransferStatus == 1) { 3 q# b6 O, A' K* ?; t uhADCxConvertedData_VoltageGPIO_mVolt = __LL_ADC_CALC_DATA_TO_VOLTAGE(3300U, uhADCxConvertedData[0], LL_ADC_RESOLUTION_12B); ubDmaTransferStatus = 0; Z/ S9 z/ H" s& r HAL_GPIO_TogglePin (GPIOA,GPIO_PIN_5); HAL_Delay(100); /* Delay to highlight toggle sequence */ ``` 测试结果如图3所示:
2 z6 _, ?+ D5 ]9 Q% ` 图3) Y/ s3 ~- V4 m# ^% P: k. T 旋转电位器,使用万用表测试了一下电位器输出分压,误差范围内基本和计算值一致。7 B1 a$ p; O, p7 L |
【STM32C0评测】C071:USB的使用
【STM32C0评测】4、驱动Lorasx126x,实现透传
STM32C0 × HDSMART弘大智控解锁旋钮式智能控制器,开启人机交互新体验
基于编码器信号的PWM输出示例
【新品发布】STM32C0 三大子产品线齐发,精准适配价格敏感应用(文末有奖)
有奖直播 | 超性价比入门级MCU:STM32C0全新子产品线深度解读
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
【STM32峰会观看直播获奖】晒奖品
STM32C071RB外部中断控制小灯点亮熄灭
STM32C071RB实现串口收发功能
微信公众号
手机版