xzxxc 发表于 2026-6-3 10:42:37

用的PWM定时,连续转换128byte*2声道,然后计算、显示,期间没有关中断,数据被丢弃
        // 配置PWM定时器周期 (控制ADC采样率)
    // ARR = SYS_CLK / TARGET_SAMPLE_RATE - 1
    PWMA_ARR =PWM_SPEED;// 24000000/40000-1 = 599
    // 配置PWM定时器 - 按照参考代码设置
    PWMA_CR2 = 0x20;    // 设置TRGO触发源
    PWMA_IER = 0x01;    // 使能更新中断
       
    // ADC初始化(P1.4左声道, P1.5右声道)
    ADC_CONTR = ADC_POWER | ADC_EPWMT | ADCCHS;// 电源|PWM触发|通道4
    ADCCFG = 0x0F;                //左对齐,0.75MH时钟
    EADC = 1;                        //使能ADC中断

梁工 发表于 2026-6-3 10:45:58

xzxxc 发表于 2026-6-3 10:32
梁工,我可不可以这样理解:这个芯片的ADC都是没缓冲的,ADC转换过程影响到了输入脚
我转换速度是40k,两 ...

40KHz的采样速度,对于20PF的采样电容,等效电阻就是1245K,5K信号内阻,输入2500mV,压降就是10mV。
应该是ADC内核不同,ADC转换完成后,采样电容的电压是否归0,会有不同的效果。
STC8K1K17可能是ADC转换完成后采样电容电压不归0的,你可以这样测试:
5V通过两个电阻10K+10K分压后给ADC左声道,右声道通过1K电阻接地。然后测试左声道输入电压,将会出现10mV左右的纹波。

xzxxc 发表于 2026-6-3 11:07:43

我明白了,看说明书好像也没有采样归0的设置,这样的话,除非外加缓冲,也没什么好办法,谢谢梁工!
页: 1 2 [3]
查看完整版本: STC8H2K17U端口串扰