SAM4E单片机之旅——9、UART与MCK之MAINCK
时间:02-21
来源:互联网
点击:
振启动时间参数。需要制定一个16位的值(MOSCXTST)来表明晶振启动的时间,具体计算方法为:启动时间 = MOSCXTST * 8 * SLCK周期。
uint32_t slowck_freq = CHIP_FREQ_SLCK_RC;
volatile uint32_t xt_start =
(BOARD_OSC_STARTUP_US * slowck_freq / 8 / 1000000);
if (xt_start > 0xFF)
xt_start = 0xFF;
使能晶振,并等待其运行稳定。使能晶振时,必须同时使用旁路模式。
PMC->CKGR_MOR = CKGR_MOR_KEY_PASSWD
| (PMC->CKGR_MOR & ~CKGR_MOR_MOSCXTBY)
| CKGR_MOR_MOSCXTEN
| CKGR_MOR_MOSCXTST(xt_start)
;
/* 等待晶振运行稳定 */
while (!(PMC->PMC_SR & PMC_SR_MOSCXTS))
;
让MAINCK切换为晶振时钟源,并等其运行稳定。
/* 切换至晶振 */
PMC->CKGR_MOR |= CKGR_MOR_KEY_PASSWD
| CKGR_MOR_MOSCSEL ;
/* 等待切换完成 */
while (!(PMC->PMC_SR & PMC_SR_MOSCSELS))
;
由于MCK的时钟并未改变,均是12 MHz,所以不用修改UART的设置,就可以正常通信了。
- SAM4E单片机之旅——24、使用DSP库求向量数量积(05-08)
- SAM4E单片机之旅——23、在AS6(GCC)中使用FPU(05-02)
- SAM4E单片机之旅——22、GMAC和PHY的介绍与初始化(04-28)
- SAM4E单片机之旅——19、CAN间通信(04-19)
- SAM4E单片机之旅——20、DMAC之使用Multi-buffer进行内存拷贝(04-24)
- SAM4E单片机之旅——18、通过AFEC(ADC)获取输入的电压(04-17)