抽空测试了一下C031的ADC,使用电位器,一端接3.3V,一端接GND,中间端接PA4,AD采样端,连接如图1所示:' |9 @. D) ]7 H- s
& y$ d6 H2 k' g0 z7 ] 图1) t( @- ]+ m0 C& r6 n" R $ p3 e' r9 k/ g: x 功能就是每实现一次转换,闪一下LED。还是先从配置Cubemx开始,配置如图2所示:# ?; s# y& \+ S' w 4 g) k r+ _9 ^% S& `
图2 配置完后,说明基本软件已经搭建好,然后参考SDK中的DEMO,修改了一下程序,查一下handler函数中是否调用了callback函数,一切OK后,部分代码如下所示: 0 H. M# z/ h8 ]: e# D" N ``` /* Perform ADC calibration */% h3 {$ O1 o* [ if (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK) { /* Calibration Error */ Error_Handler(); }; [. ^( z) S l/ D: W2 X /* Start ADC group regular conversion */& q& @- Y3 S$ R& F /* Note: First start with DMA transfer initialization, following ones with basic ADC start. */0 U0 q f5 x* r4 v4 | if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)uhADCxConvertedData, p. Y: j' N X6 q7 ]5 P# } 1U //ADC_CONVERTED_DATA_BUFFER_SIZE ) != HAL_OK) { /* Error: ADC conversion start could not be performed */6 I X- i9 g5 M- R% _4 O Error_Handler();: t, [4 Y2 Q9 c8 o. d }! ?" c1 L/ n- m2 l ``` 这部分是while之前需要定义的,while中修改如下: 1 |/ I) H% o, q- e3 L/ x ```( A" z% }+ l- `2 u. t' } if (HAL_ADC_Start_DMA(&hadc1,, A; l+ `$ ~9 h8 Q (uint32_t *)uhADCxConvertedData, 1U //ADC_CONVERTED_DATA_BUFFER_SIZE- U$ o7 M+ v' g" c ) != HAL_OK) { /* Error: ADC conversion start could not be performed */ Error_Handler();# z4 z- K9 a! t. x0 C" e! [ }; D+ V4 N+ ^) D" ^& P HAL_Delay(1000);7 ]' z( u Y g# Y) q /* If ADC conversions and DMA transfer are completed, then process data */ if(ubDmaTransferStatus == 1) {& @3 H1 j1 Y* V$ N) A 6 h! X! a2 n5 ` Y" T' V uhADCxConvertedData_VoltageGPIO_mVolt = __LL_ADC_CALC_DATA_TO_VOLTAGE(3300U, uhADCxConvertedData[0], LL_ADC_RESOLUTION_12B); ( b9 S2 h$ |) V! A' G ubDmaTransferStatus = 0; ) e: q: r& R$ R' T6 a HAL_GPIO_TogglePin (GPIOA,GPIO_PIN_5); HAL_Delay(100); /* Delay to highlight toggle sequence */% f1 h2 Y. ^* p% R8 j. i8 E ```3 y* t+ @6 K4 Y( Z9 _9 h 测试结果如图3所示:3 b- i4 e; Y) g) D' K1 N ) q# e' O# E% N" J
图3 % |" i4 e- n9 P) ]: l 旋转电位器,使用万用表测试了一下电位器输出分压,误差范围内基本和计算值一致。' Q# y P7 w4 @ |
【STM32C0评测】C071:USB的使用
【STM32C0评测】4、驱动Lorasx126x,实现透传
STM32C0 × HDSMART弘大智控解锁旋钮式智能控制器,开启人机交互新体验
基于编码器信号的PWM输出示例
【新品发布】STM32C0 三大子产品线齐发,精准适配价格敏感应用(文末有奖)
有奖直播 | 超性价比入门级MCU:STM32C0全新子产品线深度解读
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
【STM32峰会观看直播获奖】晒奖品
STM32C071RB外部中断控制小灯点亮熄灭
STM32C071RB实现串口收发功能
微信公众号
手机版