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.

[参考译文] TMS320F28035:类型#137 struct "PCLKCR3_bits"没有字段"GPIOINENCLK"SYSCTRL.c /LAB5第107 C/C++行问题

Guru**** 2535150 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1003725/tms320f28035-type-137-struct-pclkcr3_bits-has-no-field-gpioinenclk-sysctrl-c-lab5-line-107-c-c-problem

器件型号:TMS320F28035
主题中讨论的其他器件:C2000WARE

通过 C2000 Piccolo Workshop (F28xPmdw 2.1版) LAB5专题讨论会示例进行操作、但在编译时遇到错误、DSP2803x_SysCtrl.h 没有名为 GPIOINENCLK 的字段。

从 LAB5 SYSCTRL.c 摘录:

//--配置时钟
SysCtrlRegs.LOSPCP。all = 0x0002;//低速 periph 时钟预分频器、LOSPCLK=SYSCLKOUT/4

SysCtrlRegs.PCLKCR3.bit.CLA1ENCLK = 1;//启用 SYSCLKOUT 至 CLA1
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;// SYSCLKOUT 至 GPIO 被启用
SysCtrlRegs.PCLKCR3.bit.CPUTIME2ENCLK = 1;//启用 SYSCLKOUT 到 CPU Timer2
SysCtrlRegs.PCLKCR3.bit.CPUTIMER 1ENCLK = 1;// SYSCLKOUT 至 CPU Timer1启用
SysCtrlRegs.PCLKCR3.bit.CPUTIMER 0ENCLK = 1;//启用 SYSCLKOUT 至 CPU Timer0
SysCtrlRegs.PCLKCR3.bit.COMP3ENCLK = 1;// SYSCLKOUT 至 COMP3被启用
SysCtrlRegs.PCLKCR3.bit.COMP2ENCLK = 1;// SYSCLKOUT 至 COMP2被启用
SysCtrlRegs.PCLKCR3.bit.COMP1ENCLK = 1;// SYSCLKOUT 至 COMP1被启用

SysCtrlRegs.PCLKCR1.bit.EQEP1ENCLK = 1;//启用 SYSCLKOUT 至 eQEP1
SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1;//启用 SYSCLKOUT 至 eCAP1
SysCtrlRegs.PCLKCR1.bit.EPWM7ENCLK = 1;// SYSCLKOUT 至 ePWM7被启用
SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1;//启用 SYSCLKOUT 至 ePWM6
SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK = 1;//启用 SYSCLKOUT 至 ePWM5
SysCtrlRegs.PCLKCR1.bit.EPWM4ENCLK = 1;//启用 SYSCLKOUT 至 ePWM4
SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK = 1;//启用 SYSCLKOUT 至 ePWM3
SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK = 1;//启用 SYSCLKOUT 至 ePWM2
SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1;// SYSCLKOUT 至 ePWM1启用

SysCtrlRegs.PCLKCR0.bit.ECANAENCLK = 1;// SYSCLKOUT/2至 ECAN-A 被启用
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1;//使能 LSPCLK 到 SCI-A
SysCtrlRegs.PCLKCR0.bit.SPIBENCLK = 1;//使能 LSPCLK 到 SPI-B
SysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 1;//使能 LSPCLK 到 SPI-A
SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 1;// SYSCLKOUT 至 I2C-A 被启用
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;// SYSCLKOUT 至 ADC 被启用
//在 InitEPwm()中 TBCLKSYNC 位被单独处理,因为它影响 ePWM 同步。
SysCtrlRegs.PCLKCR0.bit.LINAENCLK = 1;// SYSCLKOUT/2至 LIN-A 被启用
SysCtrlRegs.PCLKCR0.bit.HRPWMENCLK = 1;// SYSCLKOUT 至 HRPWM 被启用

//--配置低功耗模式
SysCtrlRegs.LPMCR0.all = 0x00FC;// LPMCR0设置为默认值

从 DSP2803x_SYSCTRL.h 中摘录:

//
//外设时钟控制寄存器3位定义
//
struct PCLKCR3_bits{// bits description
UINT16 COMP1ENCLK:1;// 0使能 SYSCLKOUT 至 COMP1
UINT16 COMP2ENCLK:1;// 1使能 SYSCLKOUT 至 COMP2
UINT16 COMP3ENCLK:1;// 2使能 SYSCLKOUT 至 COMP3
uint16 rsvd1:5;// 7:3保留
UINT16 CPUTIMER 0ENCLK:1;// 8使能 SYSCLKOUT 至 CPUTIMER 0
UINT16 CPUTIMER 1ENCLK:1;// 9启用 SYSCLKOUT 至 CPUTIMER 1
UINT16 CPUTIMER 2ENCLK:1;// 10使能 SYSCLKOUT 至 CPTIMER2
uint16 rsvd2:3;// 13:11保留
UINT16 CLA1ENCLK:1;// 14启用到 CLA1的 SYSCLKOUT
uint16 rsvd3:1;//保留15
};

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

    该寄存器也在 sprui10第101页中引用:

    A PCLKCR3寄存器中的 GPIOINENCLK 位不会影响上述 GPIO (I2C 引脚)、因为这些引脚是双向的。

    但在同一文档中、PCLKCR3寄存器没有提到它:

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

    Paul、

      该位后来变为"保留"位。 该位在最新版本的 C2000ware 中未定义。 请注释"SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;//启用 SYSCLKOUT 至 GPIO "