打印
[技术问题解答]

K64 ADC差分DP0 DM0输入实现问题请教

[复制链接]
1384|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wakou|  楼主 | 2018-9-21 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人刚开始接触飞思卡尔MCU,给ADC差分难住了,请教一下群里的大虾们,目前单通道ADC输入没问题,但差分输入总是调不出来,暂时查不出是什么问题,期间找了两个库,都不行,第一种库的代码如下:
ADC16_GetDefaultConfig(&adc16ConfigStruct);
        adc16ConfigStruct.resolution                                 = kADC16_ResolutionDF16Bit;                // 16bits转换
        adc16ConfigStruct.enableHighSpeed                         = true;                                                // 使能高速转换模式
            adc16ConfigStruct.enableContinuousConversion= true;       
ADC16_Init(DEMO_ADC16_BASE, &adc16ConfigStruct);
        ADC16_EnableHardwareTrigger(DEMO_ADC16_BASE, false);
adc16ChannelConfigStruct.channelNumber = DEMO_ADC16_USER_CHANNEL;
        adc16ChannelConfigStruct.enableInterruptOnConversionCompleted = true;
adc16ChannelConfigStruct.enableDifferentialConversion = true;                // 差分输入使能
ADC16_SetChannelConfig(DEMO_ADC16_BASE, DEMO_ADC16_CHANNEL_GROUP, &adc16ChannelConfigStruct);

第二种库的代码如下:
ADC_InitTypeDef ADC_InitStruct1; //申请一个结构体   
       
        ADC_InitStruct1.instance = HW_ADC0;                                                 //使用ADC0模块   
        ADC_InitStruct1.clockDiv = kADC_ClockDiv1;                                         // ADC采样时钟8分频   
        ADC_InitStruct1.resolutionMode = kADC_SingleDIff16;                         //设置10位或11位精度   
        ADC_InitStruct1.triggerMode = kADC_TriggerSoftware;                         // 软件触发转换   
        ADC_InitStruct1.singleOrDiffMode = kADC_Differential;                        //差分模式     
        ADC_InitStruct1.continueMode = kADC_ContinueConversionDisable;         // 启动连续转换 转换一次后 自动开始下一次转换  
        ADC_InitStruct1.hardwareAveMode = kADC_HardwareAverageDisable;        // 硬件平均 功能   
        ADC_InitStruct1.vref = kADC_VoltageVREF;                                              //使用外部VERFH VREFL 作为模拟电压参考   

        ADC_Init(&ADC_InitStruct1);     

        /* init adc chlmux */
        ADC_ChlMuxConfig(HW_ADC0, kADC_ChlMuxA);
       
        #else
        ADC_QuickInit(ADC0_SE12_PB2, kADC_SingleDIff16);
        #endif
       
        //--- 开启转换完成中断配置     
        ADC_CallbackInstall(HW_ADC0, ADC0_ISR);                                    //初始化对应引脚   
        ADC_ITDMAConfig(HW_ADC0, kADC_MuxA, kADC_IT_EOF);             // 打开转换完成中断  
       
        // DM0引脚为专门的模拟引脚 ADC时 无需设置复用  DM0也无法当做普通的数字引脚         

        //--- 启动ADC转换   
        ADC_StartConversion(HW_ADC0, 3, kADC_MuxA);

请教一下,这里是不是还需要配置GPIO,还是其他的配置项?也欢迎大家探讨,感谢!

相关帖子

沙发
wakou|  楼主 | 2018-9-21 11:46 | 只看该作者
顶起

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

14

帖子

0

粉丝