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.

[参考译文] TMS320F280049C:F280049CPMS 64引脚 MCU 内部振荡器上需要辅助配置

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1397799/tms320f280049c-assistance-needed-configuration-on-f280049cpms-64-pin-mcu-internal-oscillator

器件型号:TMS320F280049C
Thread 中讨论的其他器件:C2000WARE

工具与软件:

大家好!

我使用的是 TI F280049CPZS 100引脚 MCU、并且为计时器和 LED 闪烁编写了一个简单代码、现在运转良好。 但是、当我为 F280049CPMS 64引脚 MCU 构建相同的代码时、这是无法正常工作的。 我使用 C2000Ware 开发代码、我使用内部振荡器进行时钟频率。

以下是我的代码。

如果我走错了路、请引导我。

谢谢你。

//包含的文件
//
#include "F28x_Project.h"
#include "driverlib.h"
#include "device.h"

//
//定义传递到 SysCtl_setClock()。 将按如下方式配置时钟:
// PLLSYSCLK = 10MHz (INT_OSC1)* 20 (IMULT)* 1 (FMULT)/2 (PLLCLK_BY_2)
//
#define DEVICE_setCLOCK_INTOSC (SYSCTL_OSCSRC_OSC1 | SYSCTL_IMULT (20)|\
SYSCTL_FMULT_NONE | SYSCTL_SYSDIV (2)|\
SYSCTL_PLL_ENABLE)

#define LED1_GPIO 34 //直接使用 GPIO 编号

#define DEVICE_SYSCLK_FREQ 100000000 //定义系统时钟频率(本例中为100 MHz)

INT count = 0;

void initCPUTimers (void);

void configCPUTimer (uint32_t cpuTimer、float freq、float period);

__interrupt void cpuTimer0ISR (void);

void GPIO_init (void);

void main (void)

device_init();
device_initGPIO();

颜色;
Interrupt_initModule();
interrupt_initVectorTable();

GPIO_init ();

interrupt_register (INT_TIMER0、&cpuTimer0ISR);
initCPUTimers();

SysCtl_setClock (DEVICE_setClock_INTOSC);

configCPUTimer (CPUTIMER0_BASE、DEVICE_SYSCLK_FREQ、500000);
INTERRUPT_ENABLE (INT_TIMER0);

interrupt_clearACKGroup (interrupt_ACK_group9);
EINT;
ERTM;

CPUTimer_startTimer (CPUTIMER0_BASE);

while (1)

GPIO_togglePin (LED1_GPIO);
DELAY_US (100000);
}
}

void initCPUTimers (void)

CPUTimer_setPeriod (CPUTIMER0_BASE、0xFFFFFFFF);
CPUTimer_setPreScale (CPUTIMER0_BASE、0);
CPUTimer_stopTimer (CPUTIMER0_BASE);
CPUTimer_reloadTimerCounter (CPUTIMER0_BASE);
}

void configCPUTimer (uint32_t cpuTimer、float freq、float period)

uint32_t temp;
TEMP =(uint32_t)(freq / 1000000 *周期);
CPUTimer_setPeriod (cpuTimer、temp);
CPUTimer_setPreCalibrate (cpuTimer、0);
CPUTimer_stopTimer (cpuTimer);
CPUTimer_reloadTimerCounter (cpuTimer);
CPUTimer_setEmulationMode (cpuTimer、CPUTIMER_EMULATIONMODE_STOPAFTERNEXTDECREMENT);
CPUTimer_enableInterrupt (cpuTimer);
}

__interrupt void cpuTimer0ISR (void)

count++;
如果(计数>= 1000)

计数= 0;
}
interrupt_clearACKGroup (INTERRUPT_ACK_GROUP1);
}

void GPIO_init (void)

EALLOW;
GPIO_setDirectionMode (LED1_GPIO、GPIO_DIR_MODE_OUT);
GPIO_setMasterCore (LED1_GPIO、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_34_GPIO34);
GPIO_setQualificationMode (LED1_GPIO、GPIO_QUAL_ASYNC);
EDIS;
}

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

    尊敬的 Dhiraj:

    从一个封装迁移到另一个封装时、通常需要检查引脚是否可用。

    GPIO 34不在任何其他封装上提供、仅在100引脚封装上提供。

    谢谢

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

    是的、您是对的、我将 GPIO 32替换到 F280049CPMS 64引脚 MCU 上的 GPIO 9中、但它不起作用、但在  F280049CPZS 100引脚上具有相同的代码作用 (评估板上的 GPIO 34 LED)