请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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 (); } }
