申小林 发表于 2024-10-25 14:12

【翌创ET6001】-05 ADC测试

<div class='showpostmsg'><p>ADC测试仅仅是按照例程来做修改的,做了简单的测试,按照例程的来,首先我们看看原理图。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">可调电阻的是做了分离设计的,并没有连接到ADC的引脚,所以需要用跳线连接到引脚上</div>

<div style="text-align: center;">&nbsp;</div>

<div style="text-align: center;">
<div style="text-align: center;"></div>

<div style="text-align: center;">我们的硬件端的是连接到ADC0的,</div>

<div style="text-align: center;">然后看看我们的代码</div>

<div style="text-align: left;">&nbsp;</div>

<div style="text-align: left;">&nbsp;</div>

<div style="text-align: left;">
<pre>
<code>#include "DRV_ADC.h"
#include "DRV_UART.h"
void ADC_SingleSample_Config(void)
{
    ADC_InitTypeDef stInit;
    /* 复位ADC0,并开启该外设的时钟 */
    ADC_DeInit(ADC0);
    /* 校准ADC0 */
    ADC_StartCalibration(ADC0);
    /* 初始化ADC */
    ADC_StructInit(&amp;stInit);
    stInit.virtualChannelMask = ADC_VIRTUAL_CHANNEL0;
    stInit.workMode         = ADC_WORK_MODE_SINGLE;
    stInit.trigMode         = ADC_TRIGGER_MODE_CONTINUOUS;
    stInit.trigger            = ADC0_TRIGGER_SRPWM_ROW0_COL0;
    ADC_Init(ADC0, &amp;stInit);
    /* 将模拟通道0映射到虚拟通道0 */
    ADC_ACRemapSingle(ADC0, ADC_VIRTUAL_CHANNEL0, ADC_ANALOG_CHANNEL0);
    /* 使能ADC */
    ADC_CoreEnable(ADC0);
    /* 使能虚拟通道 */
    ADC_VCEnable(ADC0, ADC_VIRTUAL_CHANNEL0);
}


void SRPWM_Config(void)
{
    SRPWM_TBInitTypeDef stTBInit;

    /* 复位SRPWM0,并开启SRPWM0的时钟 */
    CRG_PeriphReset(CRG_SRST_SRPWM0);
    /* 初始化 */
    SRPWM_TBStructInit(&amp;stTBInit);
    stTBInit.period    = 0xFFFF;
    stTBInit.countMode = SRPWM_COUNTMODE_UP;
    SRPWM_TBInit(SRPWM0, &amp;stTBInit);
    /* 使能SRPWM0的ADC同步信号0事件输出:周期事件 */
    SRPWM_OEPAdcSyncEnable(SRPWM0, SRPWM_OUTEVT_SYNC_PRD_EVT, SRPWM_SYNC0);
    /* 选择给ADC的触发信号 */
    SRPWMCOM_SelectADCTrigger(SRPWMCOM_ADCTriggerRow0, SRPWMCOM_ADCTriggerCol0, SRPWMCOM_ADC_SRPWM0_TRIGGER0);
    /* 使能高精度旁路 */
    SRPWM_HRPWMBypassEnable(SRPWM0);
    /* 使能PWM模块 */
    SRPWMCOM_Enable(SRPWM_CHANNEL_0);
}

void Test_ADC_Init(void)
{
                ADC_SingleSample_Config();
                SRPWM_Config();
}


void ADC_Test(void)
{
      unsigned int ret=0;
      /* 等待采样完成 */
      while (ADC_GetVCResultStatus(ADC0, ADC_VIRTUAL_CHANNEL0) != SET);
      /* 获取采样数据 */
      ret = ADC_S16D2toUint(ADC_GetVCResult(ADC0, ADC_VIRTUAL_CHANNEL0));
      /* 打印采样结果 */
      printf("adc sample code: %d \r\n", ret);

}




</code></pre>

<p>主函数的代码就只是调用,这里就不写了</p>

<p>我们来看看结果吧</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">串口端在不停的刷新采样的数值,</div>

<div style="text-align: center;">&nbsp;</div>

<div style="text-align: center;">转动电阻,可以看到采样数值的变化。</div>

<div style="text-align: center;">好了,今天就到这里了。</div>

<p>&nbsp;</p>
</div>

<div style="text-align: left;">&nbsp;</div>

<div style="text-align: left;">&nbsp;</div>

<div style="text-align: left;">&nbsp;</div>

<p>&nbsp;</p>
</div>

<p>&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Jacktang 发表于 2024-10-27 09:05

<p>串口端在不停的刷新采样的数值结果还是可以滴吧</p>
页: [1]
查看完整版本: 【翌创ET6001】-05 ADC测试