Other Parts Discussed in Thread: CC2538, CC2530
如图,在用CC2538做ADC读取实验时,ADC读出来的值一直都是00,我自己想了下原因:
一是之前我在使用其他M3芯片时,需要开ADC的RCC时钟,我不知道这里需不需要;
二是我没有配置PA4脚为通用IO口。
这两个我都不知道该怎么写,CC2530配置IO口是用P0SEL之类的,但CC2538不知道该怎么配置。
另外,如果还有其他原因,请告知,谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
HalAdcInit();
HalAdcSetReference(HAL_ADC_REF_125V);
...............
uint16 NUMA0;
NUMA0 = HalAdcRead(HAL_ADC_CHN_AIN0,HAL_ADC_RESOLUTION_12);
请问我这写法对吗?
另外,上面回答中建议使用的swrc271例程我也试过,直接运行是可以的,但当我把他放到协议中去时,就没有效果了,我觉得ADC可能没有开启,但我找不到ADC的初始化配置在哪里。
这是例程中原本的初始化函数:
SysCtrlClockSet(false, false, SYS_CTRL_SYSDIV_32MHZ);
SysCtrlIOClockSet(SYS_CTRL_SYSDIV_32MHZ);
IOCPinConfigPeriphOutput(EXAMPLE_GPIO_UART_BASE, EXAMPLE_PIN_UART_TXD,
IOC_MUX_OUT_SEL_UART0_TXD);
GPIOPinTypeUARTOutput(EXAMPLE_GPIO_UART_BASE, EXAMPLE_PIN_UART_TXD);
IOCPinConfigPeriphInput(EXAMPLE_GPIO_UART_BASE, EXAMPLE_PIN_UART_RXD,
IOC_UARTRXD_UART0);
GPIOPinTypeUARTInput(EXAMPLE_GPIO_UART_BASE, EXAMPLE_PIN_UART_RXD);
UARTStdioInit(0);
SOCADCSingleConfigure(SOCADC_12_BIT, SOCADC_REF_INTERNAL);