假设我有一个与我的 ADCBuf 类似的配置、其中 ADCChannel 是混频的、而不是从0到31进行排序。
此外、还有许多用于通道配置的模拟输入。
ADCBufMSP432_channels adcBuf0MSP432Channels[MSP_EXP432P401R_ADCBUF0CHANNELCOUNT]={
{
.adcPin = ADCBufMSP432_P4_0_A13、
refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS、
.refVoltage = 2500000
}、
{
.adcPin = ADCBufMSP432_P5_3_A2、
refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS、
.refVoltage = 1450000
}、
{
.adcPin = ADCBufMSP432_P5_1_A4、
refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS、
.refVoltage = 1450000
}、
{
.adcPin = ADCBufMSP432_P5_2_A3、
refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS、
.refVoltage = 1450000
}、
{
.adcPin = ADCBufMSP432_P4_0_A13、
refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS、
.refVoltage = 1450000
}
};
因此、如果我使用 ADCBufChannel0、它是端口4.0上多路复用器的模拟端口 A13。
该引脚将按预期设置、但多路复用器的模拟输入选择不会。
我找到了代码部分、在该部分无法为给定通道配置模拟端口。
MAP_ADC14_configureConversionMemory (ADC_MEM0、
REFSource、
conversations->adcChannel,false);
通道 Int = ADC_INT0;
正常情况下、引脚配置如下所示:
#define ADCBufMSP432_P4_0_A13 ((13 << 10)| 0x0340)/*通道13、端口4、引脚0 *
因此、模拟输入信息存储在引脚配置之上的10位。
我添加了一行、现在提取该信息并将其提供给转换配置。
uint8_t adcChannel =(hwAttrs->channelSetting[转换->adcChannel].adcPin >> 10);
MAP_ADC14_configureConversionMemory (ADC_MEM0、
REFSource、
adcChannel、false);
通道 Int = ADC_INT0;
如果我的修复程序有问题、请告诉我、否则我必须列出所有 adcports、直到我要使用这个。
必去之处
Richard