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.
工具/软件:Code Composer Studio
您好!
我可以使用 DCO 设置16MHz 时钟、但如果使用良好的外部方波信号进入 HFXIN、它将无法工作。
如果我使用 CS_BypassHFXT(),则代码会在该点卡住。
如果我使用 CS_BypassHFXTWithTimeout (10)、则它返回成功、但频率为默认的4.8MHz。
感谢您的任何见解。
Elwood
------------
int main (空)
{
const bool InternalClock = false;
WDTCTL = WDTPW | WDTHOLD;//停止 WDT
GPIO_setOutputLowOnPin (
GPIO_PORT_P3、
GPIO_PIN4
);
GPIO_setPeripheralModuleFunctionOutputPin (//在 P3.4上输出 MCLK
GPIO_PORT_P3、
GPIO_PIN4、
GPIO_ternary_module_function
);
P1DIR |= 0x01;//将 P1.0设置为输出方向
PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置
使用16MHz 时、//必须将等待状态设置为1
FRAMCTL_configureWaitStateControl (FRAMCTL_ACCESS_TIME_CYCESS_1);
if (InternalClock)//内部时钟
{CS_setDCOFreq (CS_DCORSEL_1、CS_DCOFSEL_4);//(CS_DCOFSEL_3 = 8MHz、4 = 16MHz)设置数字控制振荡器(内部振荡器)
CS_clockSignalInit (CS_MCLK、CS_DCOCLK_select、CS_clock_divider);//将 MCLK 设置为16MHz (1分频)
CS_clockSignalInit (CS_SMCLK、CS_DCOCLK_select、CS_clock_divider);//将 SMCLK 设置为16MHz (1分频)
}
else //外部时钟
{
cs_setExternalClockSource (0、16000000);//设置外部 LF 时钟、HF 时钟频率
if (CS_BypassHFXTWithTimeout (10)= STATUS_SUCCESS)//绕过内部振荡器
{CS_clockSignalInit (CS_MCLK、CS_HFXTCLK_select、CS_clock_divider _1);//将 MCLK 设置为16MHz (1分频)//用于外部时钟
CS_clockSignalInit (CS_SMCLK、CS_HFXTCLK_select、CS_clock_divider);//将 SMCLK 设置为16MHz (1分频)//用于外部时钟
}
其他
{P1OUT = 0x01;//时钟失败
while (1);
}
}
ClockValueMCLK = CS_getMCLK ();
ClockValueSMCLK = CS_getSMCLK ();
for (;;){
volatile unsigned long int i;// volatile 以阻止优化
P1OUT ^= 0x01;//使用异或切换 P1.0
I = 100000;// SW 延迟
我----
while (i!= 0);
}
返回0;
}
您好、Elwood
请参阅此演示代码 http://dev.ti.com/tirex/explore/node?node=AMCh66k8Fvv6RQmIfS1w5g__IOGqZri__LATEST
本演示使用 LFXT 模式、HFXT 模式与之类似。
此致
Gary
谢谢、
愚蠢地、我没有为主要功能声明 HFXIN 引脚。
GPIO_setPeripheralModuleFunctionInputPin (// PJ.6上的输入用于外部时钟信号
GPIO_PORT_PJ、
GPIO_PIN6、
GPIO_PRIMARY_MODULE_FUNCTION
);