[技术问答]

CLK->CLKSEL0寄存器无法写入

[复制链接]
1278|10
手机看帖
扫描二维码
随时随地手机跟帖
tomcatimage|  楼主 | 2017-12-15 23:15 | 显示全部楼层 |阅读模式
CLK_SetHCLK()函数里:
CLK->CLKSEL0 = (CLK->CLKSEL0 & (~CLK_CLKSEL0_HCLK_S_Msk)) | u32ClkSrc;
这条指令不能改变CLKSEL0寄存器的值,我写了句CLK->CLKSEL0 = 0x3A,调试时内存地址0x50000210出的值依旧是初始值0x3F!
刚入手的NuTiny-EVB-NUC131的板子,用Keil烧写了官方库工程UART_TxRx_Function编译的程序。
desertsailor| | 2017-12-16 12:03 | 显示全部楼层
寄存器有写保护,改写前需要有解锁操作,具体看手册。

使用特权

评论回复
Sunriver_Yao| | 2017-12-16 22:02 | 显示全部楼层
我遇到的是CLKSTATUS寄存器没有没变化,HIRC(22M OSC),12MHz(XTAL12M)都设为1了,对应的标志位没有变高。示波器检查12MHz震荡没问题。

使用特权

评论回复
huahuagg| | 2017-12-17 12:37 | 显示全部楼层
是不是忘了解锁操作了。

使用特权

评论回复
huahuagg| | 2017-12-17 12:38 | 显示全部楼层
参考官方BSP例子,操作寄存器前都有解锁操作,操作完了,要锁定。

使用特权

评论回复
wahahaheihei| | 2017-12-17 22:16 | 显示全部楼层
解锁后应该可以的

使用特权

评论回复
tomcatimage|  楼主 | 2017-12-18 08:30 | 显示全部楼层
我用的工程是BSP Library\NUC131BSP_CMSIS_V3.00.002\SampleCode\StdDriver\UART_TxRx_Function。
SYS->REGWRPROT寄存器的值为1,应该是没有写保护。

使用特权

评论回复
tomcatimage|  楼主 | 2017-12-18 10:57 | 显示全部楼层
本人板子的晶振挂了,所以设置到外部晶振设不进去,老智能了。

使用特权

评论回复
dongliushui| | 2017-12-18 16:11 | 显示全部楼层
牛X了,无源晶振经常坏掉,我去年京东十几元买的USB声卡也是,用了俩月坏了,后来发现晶振。。。

使用特权

评论回复
天灵灵地灵灵| | 2017-12-18 21:08 | 显示全部楼层
操作方式是:解锁,修改寄存器,加锁寄存器生效。

使用特权

评论回复
玛尼玛尼哄| | 2017-12-18 22:20 | 显示全部楼层
原来如此,每次动寄存器都要用这个指令解锁啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝