小弟在USERGUIDE的速率图上看到BCSCTL1寄存器的RSEL=7时CPU速率大概是1M,那么我手工把这个RSEL设置成7,用串口波特率验证CPU速率确实是1M左右。
但是官方实例代码中有一行
BCSCTL1 = CALBC1_1MHZ;
(#define CALBC1_1MHZ_ (0x10FFu) /* BCSCTL1 Calibration Data for 1MHz */)
执行完了也是1M左右,但是这个RSEL(BIT3~BIT0)明显是F而不是7。F应该对应20M左右才对。不知道是怎么搞的。另外BCSCTL寄存器是8BIT的,用0X10FFu赋值算是怎么回事呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
DCOCTL = CALDCO_1MHZ;
#define CALDCO_1MHZ_ (0x10FEu) /* DCOCTL Calibration Data for 1MHz */
READ_ONLY DEFC( CALDCO_1MHZ , CALDCO_1MHZ_)
#define CALBC1_1MHZ_ (0x10FFu) /* BCSCTL1 Calibration Data for 1MHz */
READ_ONLY DEFC( CALBC1_1MHZ , CALBC1_1MHZ_)
BCSCTL1 执行完后等于0x86
DCOCTL 执行完后等于0XBC
这是咋回事呢
BCSCTL1 = 0xFF
这两个有啥区别呢?是不是16位的赋值编译器就强制认为是FLASH地址了?
BCSCTL1 =(0x10FFu)
BCSCTL1 = 0xFF
这两个有啥区别呢?是不是16位的赋值编译器就强制认为是FLASH地址了?
大家不要灌水啊。一眼没看就到第二页了
一周热门 更多>