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.

[参考译文] RTOS/MSP432P401R:simplelink TI 驱动器连续.... 示例程序、运行、但可以#39;t 切换以对 ADC 引脚 P6_1_A14进行采样

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/668583/rtos-msp432p401r-simplelink-ti-driver-adcbufcontinous-example-program-runs-but-can-t-switch-to-sample-adc-pin-p6_1_a14

器件型号:MSP432P401R

工具/软件:TI-RTOS

运行 MSP_EXP432P401R Launchpad、使用带 P6_1_A14上 POT 电阻器的 Seeed Groves Boosterpak。

Windows 7 64位、CCS 版本:7.3.0.00019、

===================================================================================================================================

First -验证我的设置工作如下:

最初使用中的示例进行测试

SimpleLink MSP432P4 SDK - v:1:60.00.12 \ Examples\Development Tools\Launchpad - Red 2.x (Red)\ TI Drivers \ adcsinglechaChannel \ TI-RTOS \ CCS Compiler \ adcsinglechaChannel

P5_A0上的 POT 开箱即用、 其显示"ADC 通道0转换结果:0uV"、

转动 POT "ADC 通道0转换结果:1448902 uV"后重新启动

在将 POT 一直转动后重新启动"ADC 通道0转换结果:2500000 uV"

更改了 MSP_EXP432P401R.c 中的以下内容 。请参阅粗体打印以了解更改并使用 P6_1_A14 POT

/* ADC 配置结构*/
CONST ADCMSP432_HWAttrsV1 adcMSP432HWAttrs[MSP_EXP432P401R_ADCCOUNT ={
   {
        .adcPin = ADCMSP432_P6_1_A14、                                           //.adcPin = ADCMSP432_P5_A0、 原始示例
       .refVoltage = ADCMSP432_REF_VOLTGE_INT_2_5V、
       .resolution = ADC_14BIT
   }、
   {
       .adcPin = ADCMSP432_P5_4_A1、
       .refVoltage = ADCMSP432_REF_VOLTGE_INT_1_45V、
       .resolution = ADC_8位
   }
};

CONST ADC_Config ADC_CONFIG[MSP_EXP432P401R_ADCCOUNT ={
   {
       .fxnTablePtr =&ADCMSP432_fxnTable、
       .object =&adcMSP432Objects[MSP_EXP432P401R_ADC0]、
       hwAttrs =&adcMSP432HWAttrs[MSP_EXP432P401R_ADC0]
   }、
   {
       .fxnTablePtr =&ADCMSP432_fxnTable、
       .object =&adcMSP432Objects[MSP_EXP432P401R_ADC1]、
       hwAttrs =&adcMSP432HWAttrs[MSP_EXP432P401R_ADC1]
   }
};

const uint_least8_t ADC_count = MSP_EXP432P401R_ADCCOUNT;

/*
 * ========================================= ADCBuf ================================================
 *
#include
#include

/* ADC 对象*/
ADCBufMSP432_Object adcbufMSP432Objects[MSP_EXP432P401R_ADCBUFCOUNT];

ADCBufMSP432_channels adcBuf0MSP432Channels[MSP_EXP432P401R_ADCBUF0CHANNELCOUNT]={
   {
        .adcPin = ADCBufMSP432_P6_1_A14、 //.adcPin = ADCBufMSP432_P5_A0、原始示例
       refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS、
       .refVoltage = 2500000、
       .adcInputMode = ADCBufMSP432_Single_ended、
       .adcDifferentialPin = ADCBufMSP432_PIN_NONE、
       .adcInternalSource = ADCBufMSP432_internal_source_mode_off
   }、
   {
       .adcPin = ADCBufMSP432_P5_4_A1、
       refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS、
       .refVoltage = 2500000、
       .adcInputMode = ADCBufMSP432_Single_ended、
       .adcDifferentialPin = ADCBufMSP432_PIN_NONE、
       .adcInternalSource = ADCBufMSP432_internal_source_mode_off
   }
};

该 POT 上的外部 POT 可以读取该端口引脚并作出响应。

P5_A0上的 POT 开箱即用、 其显示"ADC 通道0转换结果:0uV"、

转动 POT "ADC 通道0转换结果:1204292 uV"后重启

在将 POT 一直转动后重新启动"ADC 通道0转换结果:2500000 uV"

========================================================================================================================================================  

下一步:使用中的示例运行

SimpleLink MSP432P4 SDK - v:1:60.00.12 \ Examples\Development Tools\Launchpad - Red 2.x (Red)\ TI Drivers \ adcbufcontinuos \ RI-RTOS\ccs Compiler \ adcbufcontinuous

示例程序按原样编译和运行、P5_A0将模拟电位计从接地端置于3.3V、并将电刷置于板载 P5.5。

示例不会更改 ADC 通道、但仍然显示 P5_A0 POT 处理此更改-请参阅粗体突出显示的打印

MSP_EXP432P401R.c

/*

*========================================= ADC ================================================

*

#include

#include

/* ADC 对象*/

ADCMSP432_Object adcMSP432Objects[MSP_EXP432P401R_ADCCOUNT

/* ADC 配置结构*/

CONST ADCMSP432_HWAttrsV1 adcMSP432HWAttrs[MSP_EXP432P401R_ADCCOUNT ={

.adcPin = ADCMSP432_P6_1_A14、          // 原始设置 .adcPin = ADCMSP432_P5_A0、

.refVoltage = ADCMSP432_REF_VOLTGE_INT_2_5V、

.resolution = ADC_14BIT

}、

.adcPin = ADCMSP432_P5_4_A1、//.adcPin = ADCMSP432_P5_4_A1、

.refVoltage = ADCMSP432_REF_VOLTGE_INT_1_45V、

.resolution = ADC_8位

};

CONST ADC_Config ADC_CONFIG[MSP_EXP432P401R_ADCCOUNT ={

.fxnTablePtr =&ADCMSP432_fxnTable、

.object =&adcMSP432Objects[MSP_EXP432P401R_ADC0]

hwAttrs =&adcMSP432HWAttrs[MSP_EXP432P401R_ADC0]

}、

.fxnTablePtr =&ADCMSP432_fxnTable、

.object =&adcMSP432Objects[MSP_EXP432P401R_ADC1]

hwAttrs =&adcMSP432HWAttrs[MSP_EXP432P401R_ADC1]

};

const uint_least8_t ADC_count = MSP_EXP432P401R_ADCCOUNT

/*

*========================================= ADCBuf ================================================

*

#include

#include

/* ADC 对象*/

ADCBufMSP432_Object adcbufMSP432Objects[MSP_EXP432P401R_ADCBUFCOUNT]

ADCBufMSP432_channels adcBuf0MSP432Channels[MSP_EXP432P401R_ADCBUF0CHANNELCOUNT]={

.adcPin = ADCBufMSP432_P6_1_A14、             // 原始设置 .adcPin = ADCBufMSP432_P6_1_A14、

refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS

.refVoltage = 2500000、

.adcInputMode = ADCBufMSP432_Single_ended

.adcDifferentialPin = ADCBufMSP432_PIN_NONE、

.adcInternalSource = ADCBufMSP432_internal_source_mode_off

}、

.adcPin = ADCBufMSP432_P5_4_A1、//.adcPin = ADCBufMSP432_P5_4_A1、

refSource = ADCBufMSP432_VREFPOS_INTBUF_VREFNEG_VSS

.refVoltage = 2500000、

.adcInputMode = ADCBufMSP432_Single_ended

.adcDifferentialPin = ADCBufMSP432_PIN_NONE、

.adcInternalSource = ADCBufMSP432_internal_source_mode_off

};

/* ADC 配置结构*/

CONST ADCBufMSP432_HWAttrs adcbufMSP432HWAttrs[MSP_EXP432P401R_ADCBUFCOUNT]={

.intPriority =~0、

通道设置= adcBuf0MSP432Channels、

.adcTimerTriggerSource = ADCBufMSP432_TIMERRA1_CAPTURECOMPARE2

useDMA = 1、

.dmaIntNum = DMA_INT0、

.adcTriggerSource = ADCBufMSP432_TIMER_TRIGGER

.timerDutyCycle = 50、

时钟源= ADCBufMSP432_ADC_CLOCK

};

CONST ADCBuf_Config ADCBuf_config[MSP_EXP432P401R_ADCBUFCOUNT]={

.fxnTablePtr =&ADCBufMSP432_fxnTable、

.object =&adcbufMSP432Objects[MSP_EXP432P401R_ADCBUF0]

hwAttrs =&adcbufMSP432HWAttrs[MSP_EXP432P401R_ADCBUF0]

};

const uint_least8_t ADCBuf_count = MSP_EXP432P401R_ADCBUFCOUNT

===================================================================================================================================================  

我做了些什么,他们是 MSP432 TI-RTOS API 驱动程序的详细文档吗?

我清理了项目,重建了项目,重新启动了计算机,...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Fred、
    这是驱动程序的问题。 具体而言、如果您查看 ADCBufMSP432.c 源文件、您将看到在 driverLib API 中应用的值;

    /*为常规 ADC 操作配置通道*/
    否则{
    MAP_ADC14_configureConversionMemory (ADC_MEM0、
    REFSource、
    conversations->adcChannel、hwAttrs->channelSetting[conversations[0].adcChannel].adcInputMode);


    会导致应用枚举 adcChannel。 在这种情况下、该值始终为0、MSP_EXP432P401R_ADCBUF0CHANNEL0、因此您将得到 A0。 这已确定、并将在即将发布的 SDK 中修复。

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

    谢谢 Chris、

    2018年3月16日发布的全新 MSP432P4 SDK 2.10.00.14解决了该问题。

    我使用的是 MSP432P4 SDK 1.60.00.12。

    谢谢、

    Fred