您好、
我正在尝试使用 不重复的多通道采样示例。 但我在运行 MAP_ADC14_getMultiSequenceResult (resultsBuffer);函数时遇到一些问题。
它仅更改 resultsBuffer 中的前两个值。 我正在使用资源浏览器中的确切示例。 所以我不明白为什么它不起作用。 下面是我使用的示例代码:
/* DriverLib 包括*/ #include /*标准包括*/ #include #include 静态 uint16_t resultsBuffer[8]; int main (void) { /*停止 WDT */ MAP_WDT_A_HOLDTimer(); MAP_Interrupt_enableSlepOnIsrExit(); /*零填充缓冲器*/ memset (resultsBuffer、0x00、8); //![简单 REF 示例] /*将基准电压设置为2.5并启用基准*/ MAP_REF_A_setReferenceVoltage (REF_A_VREF2_5V); map_REF_A_enableReferenceVoltage(); //![简单 REF 示例] /*初始化 ADC (MCLK/1/1)*/ MAP_ADC14_enableModule(); MAP_ADC14_initModule (ADC_CLOCKSOURCE_MCLK、ADC_PREDIVIDER_1、ADC_DIVIDER_4、 0); /*在*/中为模拟配置 GPIO MAP_GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P5、 GPIO_PIN5 | GPIO_PIN4 | GPIO_PIN3 | GPIO_PIN2 | GPIO_PIN1 | GPIO_PIN0、GPIO_TICE_MODULE_FUNCTION); MAP_GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P4、 GPIO_PIN7 | GPIO_PIN6、GPIO_Terti_MODULE_FUNCTION); /*配置 ADC 存储器(ADC_MEM0 - ADC_MEM7 (A0 - A7)、无需重复) *具有内部2.5V 基准* MAP_ADC14_configureMultiSequenceMode (ADC_MEM0、ADC_MEM7、false); MAP_ADC14_configureConversionMemory (ADC_MEM0、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A0、false); MAP_ADC14_configureConversionMemory (ADC_MEM1、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A1、false); MAP_ADC14_configureConversionMemory (ADC_MEM2、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A2、false); MAP_ADC14_configureConversionMemory (ADC_MEM3、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A3、false); MAP_ADC14_configureConversionMemory (ADC_MEM4、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A4、false); MAP_ADC14_configureConversionMemory (ADC_MEM5、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A5、false); MAP_ADC14_configureConversionMemory (ADC_MEM6、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A6、false); MAP_ADC14_configureConversionMemory (ADC_MEM7、 ADC_VREFPOS_INTBUF_VREFNEG_VSS、 ADC_INPUT_A7、false); /*在通道7 (序列结束)上进行转换时启用中断 *已完成并启用转换*/ MAP_ADC14_enableInterrupt (ADC_INT7); /*启用中断*/ MAP_Interrupt_enableInterrupt (INT_ADC14); MAP_Interrupt_enableMaster(); /*将采样计时器设置为自动单步执行序列 *转换。 * MAP_ADC14_enableSampleTimer (ADC_AUTOMATE_DIOTIVation); /*触发样本开始*/ MAP_ADC14_enableConversion(); MAP_ADC14_toggleConversionTrigger (); /*正在休眠*/ while (1) { MAP_PCM_gotoLPM0 (); } } //每当转换完成并放置在 * ADC_MEM7中时,就会触发此中断。 这表示转换结束、结果数组 被*抓取并放置在 resultsBuffer */ void ADC14_IRQHandler (void) {中 uint64_t status; STATUS = MAP_ADC14_getEncableInterruptStatus(); MAP_ADC14_clearInterruptFlag (status); if (status & ADC_INT7) { MAP_ADC14_getMultiSequenceResult (resultsBuffer); } }