FTMRE_FCLKDIV_FDVLD一直读取的是1;可以不管它,只要 FTMRH_FCLKDIV_FDIVLCK 是 0,就可以强制写入
void InitFLASH(void)
{
if(FTMRH->FCLKDIV & FTMRH_FCLKDIV_FDIVLCK_MASK)
{ // FTMRH_FCLKDIV_FDIVLCK为1,FDIV 值已锁定,不能更改。锁定位设置为高电平后,只有复位才能将该位清零并恢复 FDIV 字段在用户模式下的可写性
NVIC_SystemReset(); //reset mcu, NVIC_SystemReset()见core_cm0plus.h
}
FTMRH->FCLKDIV = (FTMRH->FCLKDIV & ~(FTMRH_FCLKDIV_FDIV_MASK)) | FTMRH_FCLKDIV_FDIV(BUS_CLK_HZ/1000000L - 1);// FTMRH_FCLKDIV_FDIVLD_MASK
FTMRH->FCLKDIV |= FTMRH_FCLKDIV_FDIVLCK_MASK;
FLASH_Init(BUS_CLK_HZ); // CPU flash read write initial,这条code可有可无!
}
|