工具/软件:Code Composer Studio
您好!
我正在尝试在 MSP432E401Y 上设置 ADC、以便在单次触发模式下以1或2 MSPS 采样。 出于某种原因、当我将采样频率设置为任何高于100kHz 的频率时、代码会挂起。 是否需要更改一些内部时钟设置以允许一次性模式在最大采样率下工作? 我正在开发 adcbufContinuous_MSP_EXP432E401Y_tirtos_ccs。
这是我的设置:
/*调用 ADC 驱动程序初始化函数*/ ADCBuf_init (); //ADCClockConfigSet (ADC0_BASE、ADC_CLOCK SRC_PLL | ADC_CLOCK RATE_FULL、24); /*在 ADCBuf_RECURE_MODE_连续 中设置 ADCBuf 外设*/ ADCBuf_Params_init (&adcBufParams); //adcBufParams.callbackFxn = adcBufCallback; adcBufParams.RecurrencedMode = ADCBuf_Recurrence_mode_One_Shot; //adcBufParams.returnMode = ADCBuf_return_mode_callback; adcBufParams.returnMode = ADCBuf_return_mode_blocking; //adcBufParams.samplingFrequency = 20E6; adcBufParams.samplingFrequency = 100000; adcBuf = ADCBuf_open (Board_ADCBUF0、&adcBufParams); if (adcBuf == NULL){ /* ADCBuf 无法打开。 * while (1); } /*配置转换结构*/ oneshotConversion.arg =空; oneshotConversion.adcChannel = Board_ADCBUF0CHANNEL0; oneshotConversion.sampleBuffer = sampleBufferOne; //continuousConversion.sampleBufferTwo = sampleBufferTwo; oneshotConversion.samplesRequestedCount = ADCSAMPLESIZE; while (1){ SEM_WAIT (ADCGet); /*开始转换。 * if (ADCBuf_convert (adcBuf、oneshotConversion、1)!= ADCBuf_STATUS_SUCCESS){ /*未正确启动转换过程。 * while (1); } //标准化并转换为 uVolts /*调整原始 ADC 值并将其转换为微伏*/ ADCBuf_AdjusterRawValues (adcBuf、oneshotConversion.samplpleBuffer、ADCSAMPLESIZE、 Board_ADCBUF0CHANNEL0); ADCBuf_convertAdjustedToMicroVolts (adcBuf、Board_ADCBUF0CHANNEL0、 oneshotConversion.sampleBuffer、microVoltBuffer、ADCSAMPLESIZE);
最棒的
Ajay