| 
 
| 这个函数的最后一行代码 void CLK_SetHCLK(uint32_t u32ClkSrc, uint32_t u32ClkDiv)
 {
 uint32_t u32HIRCSTB;
 
 /* Read HIRC clock source stable flag */
 u32HIRCSTB = CLK->CLKSTATUS & CLK_CLKSTATUS_OSC22M_STB_Msk;
 
 /* Switch to HIRC for Safe. Avoid HCLK too high when applying new divider. */
 CLK->PWRCON |= CLK_PWRCON_OSC22M_EN_Msk;
 while((CLK->CLKSTATUS & CLK_CLKSTATUS_OSC22M_STB_Msk) == 0);
 CLK->CLKSEL0 = (CLK->CLKSEL0 & (~CLK_CLKSEL0_HCLK_S_Msk)) | CLK_CLKSEL0_HCLK_S_HIRC;
 
 /* Apply new Divider */
 CLK->CLKDIV = (CLK->CLKDIV & (~CLK_CLKDIV_HCLK_N_Msk)) | u32ClkDiv;
 
 /* Switch to new HCLK source */
 CLK->CLKSEL0 = (CLK->CLKSEL0 & (~CLK_CLKSEL0_HCLK_S_Msk)) | u32ClkSrc;
 
 /* Update System Core Clock */
 SystemCoreClockUpdate();
 
 /* Disable HIRC if HIRC is disabled before switching HCLK source */
 if(u32HIRCSTB == 0)
 CLK->PWRCON &= ~CLK_CLKSTATUS_OSC22M_STB_Msk;
 }
 PWRCON 寄存器里面没有CLK_CLKSTATUS_OSC22M_STB_Msk定义,对应的位是PD_WU_DLY,是"使能唤醒延时计数器"功能.这样写有什么用意?
 BSP当中有PD_WU_DLY位的定义,如下:
 #define CLK_PWRCON_PD_WU_DLY_Pos             4                                    /*!< CLK_T::PWRCON: PD_WU_DLY Position */
 #define CLK_PWRCON_PD_WU_DLY_Msk             (1ul << CLK_PWRCON_PD_WU_DLY_Pos)    /*!< CLK_T::PWRCON: PD_WU_DLY Mask */
 我查了nano130的BSP,这个函数的最后一行代码也是这样写的,都是使用别的寄存器位的定义.
 | 
 |