关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决

文章讲述了在使用RT-Thread系统驱动STM32的ADC时遇到的单次转换问题,作者发现需要在每次读取后手动使能和禁用ADC才能实现连续转换。最终,作者通过在循环中添加ADC的禁用和启用操作解决了问题。

关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决

今天发现rt系统的adc有一个缺陷(也可能是我移植的方法有问题,这就不得而知了!),就是只能单次转换,事情是这样的:
我在stm32的RT-Thread系统bsp上添加了adc相关驱动,但是在写完验证程序在板子上跑的时候,我发现用下面的程序是只会转换一次adc的,也就是说,只会测量第一次的电压值,之后再调用rt_adc_read函数,得到的一直都是第一次的值。

我当时的rt应用程序如下:


#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#define ADC_DEV_NAME        "adc1"  /* ADC 设备名称 */
#define ADC_DEV_CHANNEL     6       /* ADC 通道 */
#define REFER_VOLTAGE       330         /* 参考电压 3.3V,数据精度乘以100保留2位小数*/
#define CONVERT_BITS        (1 << 12)   /* 转换位数为12位 */

void my_adc_test(void)
{
   
   
	rt_adc_device_t adc_dev;            /* ADC 设备句柄 */
	rt_uint32_t value;
	float vol;
	
	/* 查找设备 */
	adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
	if(adc_dev==RT_NULL)
	{
   
   
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuiStar_李什么恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值