day31.ADC模数转换

2024-02-07 18:08
文章标签 adc day31 模数转换

本文主要是介绍day31.ADC模数转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第31节:ADC模数转换

1、编写编译运行测试
root@ubuntu:/home/linuxsystemcode/adc# cat adc.c
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

main(){
        int fd;
        char *adc ="/dev/adc";
        char buffer[512];
        int len = 0,r = 0;

        memset(buffer,0,sizeof(buffer));
        printf("adc ready!\n");

        if((fd = open(adc,O_RDWR|O_NOCTTY|O_NDELAY))<0){
                printf("open %s err\n",adc);
        }
        else{
                printf("open adc success!\n");
                len = read(fd,buffer,10);

                if(len == 0)
                        printf("return null\n");
                else{
                        r = atoi(buffer);
                        r =(int)(r*10000/4095);
                        printf("res value in %d\n",r);
                }
        }
}

2、进行文件编译
root@ubuntu:/home/linuxsystemcode/adc# arm-none-linux-gnueabi-gcc -o adc adc.c -static
root@ubuntu:/home/linuxsystemcode/adc# ls
adc  adc.c 


3、将文件拷贝到TF卡上,并传入开发板上运行结果
[root@iTOP-4412]# mount /dev/mmcblk1p1 /mnt                                                                                                                                           
[root@iTOP-4412]# cd /mnt                                                                                                                                                             
[root@iTOP-4412]# ./adc                                                                                                                                                               
adc ready![ 1486.831707] adc opened
[ 1486.833399] sampling ... 
[ 1486.836011] read 1: 0x8bf
[ 1486.838695] sampling ... 
[ 1486.841206] read 1: 0x8c0
[ 1486.843759] sampling ... 
[ 1486.846405] read 1: 0x8c2
[ 1486.848966] sampling ... 
[ 1486.851612] read 1: 0x8c2
[ 1486.854175] sampling ... 
[ 1486.857073] read 1: 0x8c3
[ 1486.859384] sampling ... 
[ 1486.862042] read 1: 0x8c2
[ 1486.864591] sampling ... 
[ 1486.867237] read 1: 0x8c6
[ 1486.869939] sampling ... 
[ 1486.872452] read 1: 0x8c2
[ 1486.875006] sampling ... 
[ 1486.877653] read 1: 0x8c6
[ 1486.880257] sampling ... 
[ 1486.882814] read 1: 0x8bf
[ 1486.885467] value = 0x8c2
[ 1486.888626] adc closed


open adc success!
res value in 5474

这篇关于day31.ADC模数转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/688521

相关文章

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

学习硬件测试05:NTC(ADC)+正弦波(DAC)+DMA(ADC+DAC)(P73、P76、P78)

文章以下内容全部为硬件相关知识,鲜有软件知识,并且记的是自己需要的部分,大家可能看不明白。 一、NTC(ADC) 1.1实验现象 本实验用 NTC 采集温度,数码管实时显示温度数据(整数),左下角 USB 小串口每隔 1S 打印温度信息。 1.2硬件电路 NTC 电阻是一个模拟温度传感器,随着温度的升高,电阻值逐渐减小。电路简单介绍如下: 电源滤波电容在 25℃ 室温下 NTC 电

STM32CubeMX 2 解锁ADC模块

掏出上次写完的project。选择引脚 选择PA4和ADC1_IN4 2.选择设置配置 3.发现改完前面的配置之后这里的时钟自动变成了56, 选定,改回72. 4.改configuration,双击ADC1 跳出如下界面: Mode 选independent mode Data Alignment选Right Aligment是为了方便读数,因为这是一个12位的AD

嵌入式s3c2240: ADC

ADC :模数转换 10 位 CMOS ADC (模 / 数转换器)是一个 8 通道模拟输入的再循环类型设备。其转换模拟输入信号为 10 位二进制数字编码,最大转换率为 2.5MHz A/D 转换器时钟下的 500 KSPS 。 模拟:连续信号 数字:离散信号 原理  当采样到信号后, 与各个比较器相比较 假设采样到2.5 2

ADC——模数转换器

一、转换流程 在处理器中主要进行ADC 1、AD转换流程 :采样、保持、量化、编码 通过比较器获得的电信号转换数字信号,根据自己需求,如果要求速率就可以使用较多的比较器,不要求速率考虑成本就可以使用较少的比较器,将最后的转换结果,通过编码来表示 2、转换需要考虑的指标: 量程:0~3.3V 精度:10位 转换速率:500 KSPS 二、使用处理器上的A/D转换器 10 位

物联网——模拟与数字转换器(ADC)

ADC(常用于信号发生器,音频解码器) 逐次逼近型ADC 利用逐次逼近寄存器SAR,二分法逼近未知电压,直到外部输入电压与输出电压保持一致:例如0~225V每次去中间值作为判断电压,逐次二分 stm32的ADC模块 规则通道一次只能选一个数据寄存器,通常搭配DMA使用; 注入通道一次能选4个数据寄存器存相应数值 ADC基本结构 ADC引脚复用 双ADC模式(同步采样

STM32单片机HAL库——ADC输入

一、单通道采集 二、单通道+DMA采集 使能DMA 三、定时器采集+DMA传输 选择定时器1的通道1作为触发源,在TIM1的上升沿进行采集 定时器1挂载在APB2上面,APB2上定时器的频率为168MHZ psc=168-1 arr=1000-1 TIM1的时钟频率为168/168/1000=1kHZ pulse设置为500,占空比为50%

STM32(十):ADC模数转换器

ADC(Analog-Digital Converter)模拟-数字转换器         ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。         12位逐次逼近型ADC,1us转换时间,分辨率:0~2^12-1           输入电压范围:0~3.3V,转换结果范围:0~4095         18个输入通道,可测量16个外

STM32单片机 ADC模数转换器

GPIO只能读取引脚的高低电平,只有两个值 ADC可对任意电压值进行量化,用变量来表示,相当于是电压表,可以测量引脚的具体电压 ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器。 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。 DAC数字电路到模拟电路的桥梁,使用DAC可以将数字变量转换为模拟电压。DA