W__day 2015-12-09 07:20
浏览 1084

ARM板自身的四通道ADC采集的声音波形怎么会这样?偏置电压怎么相差如此之大?

图片说明
用TQ2440开发板ADC做声音采集,AD转换频率是0.5MHz,AD转换时间是10us,采样频率是25KHz,采样点数是1024。采集数据写入文件,代码如下:
(在上层应用ioctl()控制ADC通道切换,四通道引脚悬空或接地或接3.3V时数据均能够正常显示,但是在接入麦克风之后出现波形如图所示那样,跪求大神指导)
int main ()
{
FILE *fp0, *fp1, *fp2, *fp3;
int count = 0;
int fd, ret, value;
char buffer[30];
float temp;
char channel;
// unsigned long arg = 0x63;

fd = open(DEVICE_NAME, 0);
fp0 = fopen("sample1.txt", "w");
fp1 = fopen("sample2.txt", "w");
fp2 = fopen("sample3.txt", "w");
fp3 = fopen("sample4.txt", "w");
if(fp0 == NULL || fp1 == NULL || fp2 == NULL || fp3 == NULL)
{
    printf("Open file error!\n");
    exit(1);
}

printf("open fd = %d\n", fd);
if(fd < 0)
{
    perror("Open ADC Device Failed!\n");
    exit(1);
}

while(1)
{   
    if(count < COUNT)
    {   
        count++;
        for(channel = 0; channel < 4; channel++)
        {
            ioctl(fd, channel, 1);
            memset(buffer, 0, 30);
            ret = read(fd, buffer, sizeof(buffer) - 1);

            if(ret > 0)
            {
                buffer[ret] = '\0';
                sscanf(buffer, "%d\n", &value);
                temp =((float)value*3.3)/1024.0;
                switch(channel)
                {
                    case 0: fprintf(fp0, "%f\n", temp);
                            break;
                    case 1: fprintf(fp1, "%f\n", temp);
                            break;
                    case 2: fprintf(fp2, "%f\n", temp);
                            break;
                    case 3: fprintf(fp3, "%f\n", temp);
                            break;
                }
            //  printf("ADC AIN[%d]:voltage:%4.2f Value: %d\n", channel, temp, value);
            }
            else
            {
                perror("read ADC device!\n");
                exit(1);
            }   
        }
    }
    else 
    {   
        printf("The count of number is OK!\n");
        break;
    }
//  sleep(1);
}
fclose(fp0);
fclose(fp1);
fclose(fp2);
fclose(fp3);
close(fd);
return 0;

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?