我正在调试S32K344_EVB的ADC功能,开发环境:EBtresos 28.2.0+S32DS
想用PIN_PTA1作为ADC0_S9的功能,但是发现采集ADC失败了。然后我发现DCM.DCMRWF4[2]默认被MCAL程序设置为1。
MCAL静态代码库:默认定义SIUL2_PORT_IP_HAS_ADC_INTERLEAVE。
静态代码中的逻辑:
PORT_WRITE32(DCM_DCMRWF4_ADDR32, DCM_DCMRWF4_ADC_INTERLEAVE_MASK
| dcmrwf4RegValue);
0x0000067E | 0x0000067A = 0x0000067E ?(DCMRWF4.MUX_MODE_EN_ADC0_S9 = 1(是 PTB14))
将使DCMRWF4中的所有ADC INTERLEAVE为1。
这个逻辑的目的是什么,因为手册应该默认设置为0。
这个逻辑是不是应该改成下面这样:
PORT_WRITE32(DCM_DCMRWF4_ADDR32, DCM_DCMRWF4_ADC_INTERLEAVE_MASK
& dcmrwf4RegValue);
0x0000067E & 0x0000067A = 0x0000067A(DCMRWF4.MUX_MODE_EN_ADC0_S9 = 0(是 PTA1))