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/TMS320F28377S:TMS320F28377S

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/592489/ccs-tms320f28377s-tms320f28377s

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

您好!

我想读取 ADC 值并生成数字输出(写入数字引脚和从模拟引脚读取分别完成、并且值彼此无关)。 但是、每当我在写入数字引脚后尝试读取 ADC 值时、我都无法从 ADC 读取适当的值。

当我评论数字输出器件时、ADC 读取器件工作正常  

这是我写入数字引脚和读取 ADC 引脚的代码片段。

请建议进行任何更改、使其正常工作。

PS:请勿考虑语法错误、因为这只是代码的一部分  

//代码片段  

空 digitalpinInitialize (int gpionumber)

GPIO_SetupPinMux (gpionumber、GPIO_MUX_CPU1、0);
GPIO_SetupPinOptions (gpionumber、GPIO_output、GPIO_PushPull);

int adcRead (int 通道)

EALLOW;
开关(通道)

案例0://AA0
案例1://AA1
案例2://Aa2
案例3://Aa3
案例4://AA4
案例5://AA5
情况0xC://A14
情况0xD://A15
EALLOW;
AdcaRegs.ADCCTL2.bit.prescale = 6;//将 ADCCLK 分频器设置为/4
AdcaRegs.ADCCTL1.bit.INTPULSEPOS=1;
AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;

uint16 acqps;

AdcaRegs.ADCSOC0CTL.bit.CHSEL =通道;//SOC 将在通道上转换
AdcaRegs.ADCSOC0CTL.bit.ACQPS = acqps;//采样窗口为 acqps +
//1个 SYSCLK 周期
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 0;//禁用 INT1标志
AdcaRegs.ADCINTSEL1N2.bit.INT1CONT = 0;
AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0;// SOC0结束将设置 INT1标志
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除
AdcaRegs.ADCINTSOCSEL1.bit.SOC0 = 1;
AdcaRegs.ADCINTFLGCLR.ALL = 0x000F;
AdcaRegs.ADCSOCFRC1.ALL = 0x00FF;
DELAY_US (5);
返回 AdcaResultRegs.ADCRESULT0;

void main (void)

digitalpinInitialize (14);

 GPIO_WritePin (14、1);//写入数字引脚14

AdccResults = adcRead (3);//从 ADC 引脚3读取

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

    您是否在某个位置初始化 acqps? 我想确保您的 ADC 配置看起来正确。

    您使用的是什么硬件? LaunchPad? 定制板?

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

    由于未显式初始化、acqps 被自动初始化为4。 我检查了这些值并将其初始化为8。 现在、即使在数字引脚上执行操作、ADC 也能正常工作。

    谢谢、此致、
    Shiva Sanketh