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.

[参考译文] CCS/MSP430FR2355:交流信号 ADC 帮助

Guru**** 2549960 points
Other Parts Discussed in Thread: MSP430FR2355

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/792206/ccs-msp430fr2355-ac-signal-adc-help

器件型号:MSP430FR2355

工具/软件:Code Composer Studio

大家好、

我目前正在使用 MSP430FR2355、并尝试使用 ADC 通道1获取 ECG 信号。 信号的最小电压约为200mV、最大电压为2.4V。 我想将中的 ADC 值持续关闭该通道、以便将其输出到 OLED 显示屏。 但是、当我运行下面提供的代码时、数组中的每个值等于1。 我确定我做了一些错误、但我无法弄清楚。 如果有任何帮助,将不胜感激。 提前感谢!

#include 
#include 
#include 
#include 
#include 

#include "msp430fr2355.h"

void adc_init (void);

void adc_init (void){

P1SEL0 |= BIT1;
P1SEL1 |= BIT1;

ADCCTL0 &=(~ADCENC);

ADCCTL0 |= ADCSHT_0 + ADCON;//需要在末尾打开 ADCENC
ADCCTL1 |= ADCSSEL_0 + ADCCONSEQ_2;
ADCCTL2 |= ADCPDIV_2 + ADCRES_2 + ADCSR;

ADCMCTL0 |= ADCSREF_0 + ADCINCH_1;

ADCCTL0 |= ADCENC;

}

int main (void)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
PM5CTL0 &=~LOCKLPM5;

uint16_t ADC_temp[100]={};
uint8_t I;

ADC_init ();

ADCCTL0 |= ADCENC + ADCSC;
对于(i = 0;i < 100;i++){
while (!ADCBUSY);
ADC_TEMP[i]= ADCMEM0;
}

while (1);
返回0;
}

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

    您好、 Raymond、

    感谢您的详细描述。

    您需要添加设置 ADCMSC=1和 ADCSHP=1、请参阅以下配置以启用单通道重复转换模式。  

    此致、

    乔维·何