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/MSP432P401R:有关获取 msp432 MCLK 的问题

Guru**** 2589265 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/628616/ccs-msp432p401r-question-about-getting-msp432-mclk

器件型号:MSP432P401R

工具/软件:Code Composer Studio

我对获取 msp432 MCLK 有疑问。

我使用函数 temp = CS_getMCLK ();获取当前的 MCLK 值。 当我设置 MCLK 的实际值48M 时。 由 CS_getMCLK ()的函数说明、如下图所示:

我想当我将 MCLK 设置为48M 时、返回的值应该是  48000000。 但我通过 CCS 进行读取、但读取值为32768。

我不知道我的代码是否有问题、也没有设置结果、MCLK 是48M、或者 CS_getMCLK 是错误的()吗? 此功能错误。 我将代码放在下面、请帮我查看、谢谢。

int main (void)
{
uint32_t temp;

/*停止看门狗*/
MAP_WDT_A_HOLDTimer();

/*设置外部时钟频率。 此 API 是可选的、但会是可选的
*如果用户想使用 getMCLK/getACLK/etc、就来方便
函数
*
cs_setExternalClockSourceFrequency (32000、48000000);

/*在非旁路模式下启动 HFXT 而不超时。 开始之前
*我们必须将 VCORE 更改为1以支持48MHz 频率*/
MAP_PCM_setCoreVoltageLevel (PCM_VCORE1);
MAP_FlashCtl_setWaitState (FLASH_BANK0、2);
MAP_FlashCtl_setWaitState (FLASH_BANK1、2);
CS_startHFXT (false);

/*将 MCLK 初始化为 HFXT (有效48MHz)*/
MAP_CS_initClockSignal (CS_MCLK、CS_HFXTCLK_SELECT、CS_CLOCK_DEVIDER_1);

/*将 GPIO 配置为输出*/
MAP_GPIO_setAsOutputPin (GPIO_PORT_P1、GPIO_PIN0);

/*将 SysTick 配置为在1500000时触发(MCLK 为1.5MHz、因此会发生这种情况
*每1秒切换一次)*/
MAP_SysTK_enableModule();
MAP_SysTK_setPeriod (48000000);
MAP_Interrupt_enableSlepOnIsrExit();
MAP_SysTK_enableInterrupt ();

/*启用主中断*/
MAP_Interrupt_enableMaster();

temp = CS_getMCLK ();

while (1)
{
MAP_PCM_gotoLPM0 ();
}
} 

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

    您目前未在程序中为 HFXT 设置 GPIO。 请参阅下面链接的代码示例的第69行至第71行:
    dev.ti.com/.../