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.

[参考译文] MSP432E401Y:如何在寄存器上初始化 ADC?

Guru**** 2581345 points
Other Parts Discussed in Thread: MSP432E401Y, MSP-EXP432E401Y

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/749648/msp432e401y-how-to-init-adc-on-registers

器件型号:MSP432E401Y
主题中讨论的其他器件:MSP-EXP432E401Y

你好!
目前、我在 MSP-EXP432E401Y 上使用 MSP432E401Y。

过去2天、我尝试在寄存器上配置 ADC、但这不起作用。
我的初始化序列与技术参考手册中的序列相同。
但 ADCACTSS 中的位忙总是在1中设置。 在 ADCSSFIFO0中-在初始化期间生成的随机值。 我太累了、所以我需要您的帮助、请!

源代码:

/* PK1 - AIN17 */*

启用 GPIOK 时钟*/
SYSCTL_RCGCGPIO |=(1 << 9);
//等待 GPIOK 就绪*/
while (!(SYSCTL_PRGPIO &(1 << 9)));

//启用备用函数*/
GPIO_AFSEL (GPIOK)|=
1
~*(GPIOk)<1);*禁用 GPIO<1 (1)<1)
/*启用模拟模式*/
GPIO_AMSEL (GPIOK)|=(1 << 1);
/*禁用上拉*/
GPIO_PUR (GPIOK)&=~(1 << 1);
/*禁用下拉*/
GPIO_PDR (GPIOK)&=~(1 << 1);

//启用 ADCSCTL
|0 (RCG0)
/*等待 ADC0就绪*/
while (!(SYSCTL_PRADC &(1 << 0)));

/* ADC0软件复位启用*/
SYSCTL_SRADC |=(1 << 0);
// ADC0软件复位禁用*/
SYSCTL_SRADC &=~(1 << 0);

//等待 ADC0!*等待

/*基准选择-外部 VREF+和 VREF-*/
ADC_CTL (ADC0)|=(1 << 0);

/* ADC 序列发生器- 1 */
/* ADC 采样-第1个*/

/*启用第1个采样的输入选择(高位)*/
ADC_SSEMUX1 (ADC0)|=(1 << 0);
/*为第1个采样选择16+1 = 17个模拟输入*/
ADC_SSMUX1 (ADC0)|=(0x01);

/*序列发生器1触发器-默认情况下为处理器*/*

/*第1个采样的采样保持周期- 256个 ADC 时钟*/
ADC_SSTSH1 (ADC0)= 0xC;
/*为第1个采样设置序列结束位*/
ADC_SSCTL1 (ADC0)|=(1 << 1);
/*启用序列发生器1 */
ADC_ACTSS (ADC0)|=(1 << 1);
/*启动序列发生器1 */
ADC_PSSI (ADC0)|=(1 << 1)

;while (1); 

非常感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      我不建议尝试在寄存器级别进行编程。  目前没有这方面的例子。  如果可能、请使用 driverLib 示例、如下所示:

    有几 个示例。  

    此外、如果您确实需要寄存器级别、则可以在此处找到 driverLib API 的源代码:

    C:\ti\simplelink_msp432e4_sdk_2_30_00_14\source\ti\devices\msp432e4\driverlib

    祝您好运!

    Chris