完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的电压调节器控制寄存器有问题。我无法成功配置外部 BJT。
如果Voltage Regulator Control Register设置为0x82,则不能成功设置Voltage Regulator Control Register,Voltage Regulator Control Register的值变为0x83。是什么原因? 附上电路图。 代码: static void vidMCUSetInitCommon(void) { if (ST_strMCU_Config != NULL_PTR) { /* 禁用时钟配置寄存器的保护 */ CPMUPROT = MCU_CLEAR_PROTECTION_REG; /* 启用 PLL 以允许写入分频器寄存器 */ CPMUCLKS = ST_strMCU_Config->MCU_u8ClckSlctRegValue; while (CPMUCLKS != ST_strMCU_Config->MCU_u8ClckSlctRegValue) { /* 等待 CPMUCLKS 寄存器写入成功 */ } /* 设置后分频器寄存器 */ CPMUPOSTDIV = ST_strMCU_Config->MCU_u8PostDivRegValue; /* 每当将 PLL 参考时钟 (REFCLK) 频率更改为更高的值 时,建议写入 CPMUSYNR = 0x00 以保持在 MCU 指定的最大频率范围内 */ /* 设置倍频寄存器 */ CPMUSYNR = 0x00; /* 设置 PLL 频率调制 */ CPMUPLL = ST_strMCU_Config->MCU_u8PllCtrlRegValue; /* 设置 PLL 参考时钟 */ CPMUREFDIV = ST_strMCU_Config->MCU_u8RefDivRegValue; /* 设置振荡器寄存器 */ CPMUOSC = ST_strMCU_Config->MCU_u8OscRegValue; /* 设置乘数寄存器 */ CPMUSYNR = ST_strMCU_Config->MCU_u8SynthRegValue; /* 启用 5v 稳压器 */ //CPMUVREGCTL = CPMUVREGCTL_VREG5VEN_MASK; #if 1 CPMUVREGCTL = CPMUVREGCTL_VREG5VEN_MASK | CPMUVREGCTL_EXTXON_MASK;/* 0x82:使用外部 BJT */ #else CPMUVREGCTL = CPMUVREGCTL_VREG5VEN_MASK | CPMUVREGCTL_INTXON_MASK;/* 0x81 : 使用内部功率晶体管 */ #endif /* 清除所有中断标志 */ CPMUIFLG = MCU_CLEAR_INTERRUPT_FLAGS; while (TRUE != (boolean) CPMUIFLG_LOCK) { /* 等到 PLL 在 目标频率的期望 * 容差范围内 */ } /* 启用高温检测 */ CPMUHTCTL = ST_strMCU_Config->MCU_u8HighTempRegValue; /* 启用时钟设置更改保护 */ CPMUPROT = MCU_ENABLE_PROTECTION_REG; } } |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
142 浏览 1 评论
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
438浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 16:55 , Processed in 0.628984 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号