主题中讨论的其他器件:CC1350
您好!
我正在使用 TI driverlib 开发一个程序、用于在没有操作系统的情况下启动 CC1350、以便从 AUXIO07 (DIO 23)读取 ADC 样本。 当我执行我的程序时、它在尝试读取 ADC 缓冲器时卡住。 下面是我使用的程序。 您能告诉我什么是错误的、或者是否有缺失的东西吗?
注意:我在没有 ADC 读取器件的情况下尝试了 UART、结果正常。
#include
#include "driverlib/gpio.h"
#include "driverlib/IoC.h"
#include "driverlib/uart.h"
#include "driverlib/prcm.h"
#include "driverlib/timer.h"
#include "driverlib/sys_ctrl.h"
#include "inc/hw_memmap.h"
#include "inc/hw_aux_aio.h"
#include "inc/hw_ints.h"
#include "driverlib/osc.h"
#include "driverlib/aon_batmon.h"
#include "driverlib/aux_adc.h"
#include "inc/hw_aux_wuc.h"
void led 设置(void)
{
PRCMPowerDomainOn (PRCM_DOMAIN_PERIPh);
while (PRCMPowerDomainStatus (PRCM_DOMAIN_Periph)!= PRCM_DOMAIN_POWER_ON);
PRCMPeripheralRunEnable (PRCM_Periph_GPIO);
PRCMLoadSet();
while (!PRCMLoadGet());
GPIO_setOutputEnableDio (IOID_7、GPIO_OUTP_ENABLE);
}
void adc_setup()
{
AUXVCClockEnable (AUX_WuC_ADI_CLOCK | AUX_WuC_OSCCTRL_CLOCK | AUX_WuC_ADC_CLOCK);//
while (AUXVCClockStatus (AUX_WuC_ADC_CLOCK)=AUX_WuC_CLOCK _OFF);
IOCPinTypeAux (IOID_23);
AUXADCselectInput (ADC_COMPB_IN_AUXIO7);
HWREGH (((AUX_AIODIO0_BASE + AUX_AIODIO_O_IOMODE + 0x00000002))= 0x4000;
HWREGB (AUX_AIODIO0_BASE + AUX_AIODIO_O_GPIODIE+0x00000003)= 0x00;
AUXADCEnableSync (AUXADC_REF_FIXED、AUXADC_SAMPLE_TIME_1P37_MS、AUXADC_TRIGGER_MANUAL);
}
//
void UART_SEND_setup()
{
PRCMPowerDomainOn (PRCM_DOMAIN_serial);// UART 0
while (PRCMPowerDomainStatus (PRCM_DOMAIN_serial)!= PRCM_DOMAIN_POWER_ON);
PRCMPowerDomainOn (PRCM_DOMAIN_PERIPh);
while (PRCMPowerDomainStatus (PRCM_DOMAIN_Periph)!= PRCM_DOMAIN_POWER_ON);
PRCMPeripheralRunEnable (PRCM_Periph_UART0);
PRCMLoadSet();
while (!PRCMLoadGet());
IOCPinTypeUart (UART0_BASE、IOID_2、IOID_3、IOID_19、IOID_18);
UARTDisable (UART0_BASE);
UARTConfigSetExpClk (UART0_BASE、48000000115200、UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE);
UARTHwFlowControlDisable (UART0_BASE);
UARTEnable (UART0_BASE);
}
void 函数(void)
{
AUXADCGenManualTrigger ();
while (AUXADCGetFifoStatus ()= AUXADC_FIFO_EMPTY_M);
GPIO_toggleDio (IOID_7);
uint32_t voltage = AUXADCPopFifo ();
for (int i = 1000;i >= 1;i = i /10)
{
int v3 =(电压/I);
CHAR CH2 = v3 +"0";
UARTCharPut (UART0_BASE、CH2);
电压=电压- v3*I;
}
UARTCharPut (UART0_BASE、');
UARTCharPut (UART0_BASE、'V');
UARTCharPut (UART0_BASE、'\n');
}
int main (空)
{
LED_setup();
UART_SEND_setup();
adc_setup();
CPUdelay (16000000);
function();
while (1);
返回0;
}