TM4C123G ADC

void ADC0_Seq1_Config(void)

{

    /* 使能ADC0外设 */

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC1);

    ROM_SysCtlPeripheralReset(SYSCTL_PERIPH_ADC1);

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

   

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_0);    //通道3

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_1);    //通道2

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_2);    //通道1

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_3);    //通道0

    /* 使能配置ADC0的IO角AIN3  PE0. */

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

   

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_0);    //通道7

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_1);    //通道6

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_2);    //通道5

    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

    /* 选择模拟ADC0引脚功能。 */

    ROM_GPIOPinTypeADC(GPIO_PORTD_BASE, GPIO_PIN_3);    //通道4

    /*********************************** SS0 ********************************************/

    //采样序列发生器的采样数和 FIFO 深度

    //序列发生器 | 采样数 | FIFO深度

    //   SS0     |   8    |   8

    //ROM_ADCComparatorReset(ADC0_BASE, 0, true, true);

//ADC_TRIGGER_PROCESSOR

    ROM_ADCSequenceConfigure(ADC1_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);



 

    /* 配置采样序列的节拍 */

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 0, ADC_CTL_CH0 );

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 1, ADC_CTL_CH1 );

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 2, ADC_CTL_CH2 );

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 3, ADC_CTL_CH3 );

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 4, ADC_CTL_CH4 );

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 5, ADC_CTL_CH5 );

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 6, ADC_CTL_CH6 );

    ROM_ADCSequenceStepConfigure(ADC1_BASE, 0, 7, ADC_CTL_CH7 | ADC_CTL_IE |ADC_CTL_END );


 

    /* 编程到最后一个半字节时 确定END bit置位(ADC_CTL_END) 否者导致不可预测错误 */

     /* 使能采样序列 */

    ROM_ADCSequenceEnable(ADC1_BASE, 0);


 

}


 

void Get_ADC0_CHANNEL_FIFO(uint32_t *p_Buf)

{

    uint32_t u32_itStat;

   

    ROM_ADCProcessorTrigger(ADC1_BASE, 0);

   

    while(!ADCIntStatus(ADC1_BASE, 0 , false));

    ROM_ADCIntClear(ADC1_BASE, 0);

    // 读取ADC值

    ROM_ADCSequenceDataGet(ADC1_BASE,0, p_Buf);

   

}

#define ADC_CTL_CH0             0x00000000  // Input channel 0

#define ADC_CTL_CH1             0x00000001  // Input channel 1

#define ADC_CTL_CH2             0x00000002  // Input channel 2

#define ADC_CTL_CH3             0x00000003  // Input channel 3

#define ADC_CTL_CH4             0x00000004  // Input channel 4

#define ADC_CTL_CH5             0x00000005  // Input channel 5

#define ADC_CTL_CH6             0x00000006  // Input channel 6

#define ADC_CTL_CH7             0x00000007  // Input channel 7

#define ADC_CTL_CH8             0x00000008  // Input channel 8

#define ADC_CTL_CH9             0x00000009  // Input channel 9

#define ADC_CTL_CH10            0x0000000A  // Input channel 10

#define ADC_CTL_CH11            0x0000000B  // Input channel 11

#define ADC_CTL_CH12            0x0000000C  // Input channel 12

#define ADC_CTL_CH13            0x0000000D  // Input channel 13

#define ADC_CTL_CH14            0x0000000E  // Input channel 14

#define ADC_CTL_CH15            0x0000000F  // Input channel 15

#define ADC_CTL_CH16            0x00000100  // Input channel 16

#define ADC_CTL_CH17            0x00000101  // Input channel 17

#define ADC_CTL_CH18            0x00000102  // Input channel 18

#define ADC_CTL_CH19            0x00000103  // Input channel 19

#define ADC_CTL_CH20            0x00000104  // Input channel 20

#define ADC_CTL_CH21            0x00000105  // Input channel 21

#define ADC_CTL_CH22            0x00000106  // Input channel 22

#define ADC_CTL_CH23            0x00000107  // Input channel 23

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值