| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #include <MyProject.h>
- /*
- 已使用ADC端口
- P25 AD3 SREF !>禁用
- P24 AD2 OVP
- P16 AD9 NTC
- P34 AD7 IBUS !> AD6需要外部接入2.5V分压并开启AD6通道 否则会影响AD7采样数据
- 特殊端口
- AD0 U相电流采样
- AD1 V相电流采样
- AD4 W相电流采样或者母线电流采样
- */
- /**
- @function ADC_Init
- @brief ADC初始化
- @date 2025-12-23
- */
- void ADC_Init(void)
- {
- // 配置参考电压为5V
- SetReg(VREF_VHALF_CR, VRVSEL1 | VRVSEL0, VRVSEL0);
- // 配置半电压为2.5V
- SetBit(VREF_VHALF_CR, VHALFSEL1 | VHALFSEL0);
- // 使能VREF输出
- SetBit(P3_AN, PIN5);
- SetBit(P3_OE, PIN5);
- // 使能基准电压与半电压
- SetBit(VREF_VHALF_CR, VREFEN | VHALFEN);
- // 端口使能
- SetBit(P1_AN, PIN6);
- SetBit(P2_AN, PIN4 | PIN5);
- SetBit(P3_AN, PIN4);
- // 通道使能
- SetBit(ADC_MASK, CH2EN | CH3EN | CH7EN | CH9EN);
- SetBit(ADC_MASK, 0x3000);
- ADC_SCYC = 0x33;
- // 高位对齐
- SetBit(ADC_CR, ADCALIGN);
- ClrBit(ADC_CR, ADCIE);
- SetBit(ADC_CR, ADCEN);
- }
|