仿真器:cmsis_DAP
芯片:HC32F136K8
排除仿真器问题,电路问题,电脑软件驱动问题
程序:
main()
{
uint32_t k;
App_PortCfg(); //IO口设置 无关紧要
App_PLL40MHZ(); //时钟设置
while(1)
{
k=Sysctrl_GetHClkFreq();
}
}
void App_PLL40MHZ(void) //时钟切换至RCH>>(XT8M>>PLL40M)
{
stc_sysctrl_pll_cfg_t stcPLLCfg;
stc_sysctrl_clk_cfg_t stcCfg;
Flash_WaitCycle(FlashWaitCycle1);
Sysctrl_SetXTHFreq(SysctrlXthFreq6_12MHz);
Sysctrl_XTHDriverCfg(SysctrlXtalDriver3);
Sysctrl_SetXTHStableTime(SysctrlXthStableCycle16384);
Sysctrl_ClkSourceEnable(SysctrlClkXTH, TRUE);
stcPLLCfg.enInFreq = SysctrlPllInFreq6_12MHz; //8MHz
stcPLLCfg.enOutFreq = SysctrlPllOutFreq36_48MHz; //PLL 输出48MHz
stcPLLCfg.enPllClkSrc = SysctrlPllXthXtal; //输入时钟源选择TXH
stcPLLCfg.enPllMul = SysctrlPllMul5; //8MHz x 5 = 40MHz
Sysctrl_SetPLLFreq(&stcPLLCfg);
Sysctrl_SetPLLStableTime(SysctrlPllStableCycle16384);
Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE);
Sysctrl_SysClkSwitch(SysctrlClkPLL); //时钟切换 句A
//块B起
stcCfg.enClkSrc = SysctrlClkPLL;
stcCfg.enHClkDiv = SysctrlHclkDiv1;
stcCfg.enPClkDiv = SysctrlPclkDiv1;
Sysctrl_ClkInit(&stcCfg); // 将句A换为块B部分后,再也无法连接到芯片了,怎么回事
//块B止
}
使用 句A 发现问题:
我的想法是外部TXH晶振8M PLL 5倍 至40MHZ 结果却是40M/128=312500HZ, 为什么配置会自己变?
将句A改为块B 芯片就再也无法连上了,也无法擦除。
已经这样搞坏了两块板上的芯片,手头样片不多了。求助!
|