您好!
我将 tm4c129ekcpdt 微控制器与 Tivaware 驱动程序库搭配使用。
我已将 ADC 时钟设置为32MHz、ADC 工作正常。
但是、当我使用 ADCClockConfigGet API 读取时钟配置时、我每次都会得到112。
这是主要问题。
代码如下所示
空 init_adc()
{
uint32_t adc_clk、ui32ClockDiv;
//uint32_t adc_clk;
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);//SYSCTL_Periph_GPIOD //系统外设启用
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);// ADC 模块0
while (!map_SysCtlPeripheralReady (SYSCTL_Periph_ADC0))//等待外设启用
{
}
MAP_GPIOPinTypeADC (GPIO_PORTD_BASE、GPIO_PIN_7);//为 ADC 设置 GPIO 引脚7端口 D
ADCClockConfigSet (ADC0_BASE、ADC_CLOCK _SRC_PLL|ADC_CLOCK _RATE_FULL、15);
MAP_ADCReferenceSet (ADC0_BASE、ADC_REF_INT);
MAP_ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_PROCESSORE、0);// ADC 基模块0、处理器触发
MAP_ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH4|ADC_CTL_IE|ADC_CTL_END);
MAP_ADCSequenceEnable (ADC0_BASE、0);// ADC 序列启用
MAP_ADCHardwareOversampleConfigure (ADC0_BASE、8);
MAP_ADCIntClear (ADC0_BASE、0);// ADC 中断清除
ADC_clk = ADCClockConfigGet (ADC0_BASE、\ui32ClockDiv);
system_printf ("adc_clk =%d %d\n"、adc_clk、ui32ClockDiv);System_flush ();
}
对于 时钟分频器、ADC_clk = 112 15 // 15、但为什么每次都要112?
我更改了时钟分频器、但结果相同。