完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我用的是TMS320F28069F ;ti例程Motorware中用的是内部RC时钟;用RC时钟做CAN通信时出现不能正常接收;有可能是RC时钟精度问题,现在想改成片载晶振;程序中怎么改?我这样改怎么不行!!!!
void HAL_setupClks(HAL_Handle handle) [ HAL_Obj *obj = (HAL_Obj *)handle; // enable internal oscillator 1 CLK_disableOsc1(obj->clkHandle); // set the oscillator source CLK_setOscSrc(obj->clkHandle,CLK_OscSrc_External); // disable the external clock in CLK_disableClkIn(obj->clkHandle); // disable the crystal oscillator CLK_enableCrystalOsc(obj->clkHandle); // disable oscillator 2 CLK_disableOsc2(obj->clkHandle); CLK_setOsc2Src(obj->clkHandle,CLK_Osc2Src_Internal); // set the low speed clock prescaler CLK_setLowSpdPreScaler(obj->clkHandle,CLK_LowSpdPreScaler_SysClkOut_by_4); // set the clock out prescaler CLK_setClkOutPreScaler(obj->clkHandle,CLK_ClkOutPreScaler_SysClkOut_by_1); return; ] // end of HAL_setupClks() function |
|
相关推荐
8 个讨论
|
|
|
参考一下代码 CLK_enableCrystalOsc(obj->clkHandle); // Turn on XTALOSC usDelay(1000); // Wait for 1ms while XTAL starts up CLK_setOsc2Src(obj->clkHandle,CLK_Osc2Src_External) CLK_setOscSrc(obj->clkHandle,CLK_OscSrc_External); // disable the external clock in CLK_disableClkIn(obj->clkHandle); - ERIC |
|
|
|
|
|
|
|
guigui_7044 发表于 2018-8-24 17:50 void HAL_setupClks(HAL_Handle handle) [ HAL_Obj *obj = (HAL_Obj *)handle; // enable internal oscillator 1 CLK_disableOsc1(obj->clkHandle); // set the oscillator source CLK_setOscSrc(obj->clkHandle,CLK_OscSrc_External); // disable the external clock in CLK_disableClkIn(obj->clkHandle); // disable the crystal oscillator CLK_enableCrystalOsc(obj->clkHandle); usDelay(1000);// // disable oscillator 2 CLK_disableOsc2(obj->clkHandle); CLK_setOsc2Src(obj->clkHandle,CLK_Osc2Src_External); // set the low speed clock prescaler CLK_setLowSpdPreScaler(obj->clkHandle,CLK_LowSpdPreScaler_SysClkOut_by_1); // set the clock out prescaler CLK_setClkOutPreScaler(obj->clkHandle,CLK_ClkOutPreScaler_SysClkOut_by_1); return; ] // end of HAL_setupClks() function 这样改后试了还是不行! |
|
|
|
|
|
|
|
|
参考下面代码,来改对应的Motorware版本的代码
//--------------------------------------------------------------------------- // Example: XtalOscSel: //--------------------------------------------------------------------------- // This function switches to External CRYSTAL oscillator and turns off all other clock // sources to minimize power consumption. This option may not be available on all // device packages void XtalOscSel (void) [ EALLOW; SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC DELAY_US(1000L); // 1mS delay to ensure crystal // oscillator is up and running. // Adjust as needed. SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; //Switch Watchdog Clk Src to internal clock 1 SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2 SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Turn on INTOSC1 EDIS; ] Young Hu |
|
|
|
|
|
|
|
|
您好 试试下面的代码 void HAL_setupClks(HAL_Handle handle) [ HAL_Obj *obj = (HAL_Obj *)handle; CLK_enableCrystalOsc(obj->clkHandle); usDelay(1000); CLK_setOscSrc(obj->clkHandle,CLK_OscSrc_External); CLK_disableOsc1(obj->clkHandle); CLK_disableOsc2(obj->clkHandle); CLK_disableClkIn(obj->clkHandle); // set the low speed clock prescaler CLK_setLowSpdPreScaler(obj->clkHandle,CLK_LowSpdPreScaler_SysClkOut_by_1); // set the clock out prescaler CLK_setClkOutPreScaler(obj->clkHandle,CLK_ClkOutPreScaler_SysClkOut_by_1); return; ] // end of HAL_setupClks() function 另外你还需要根据你用的晶振的频率来改PLL的倍频,我用的是20MHz的晶体所以我把以前根据10M的振荡器定的倍频减半。 // Setup the PLL HAL_setupPll(handle,PLL_ClkFreq_45_MHz); |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
582 浏览 0 评论
1641 浏览 0 评论
2079 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1533 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1372 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1782浏览 29评论
2810浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1741浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1652浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1668浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 13:52 , Processed in 0.726635 second(s), Total 52, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4937