RT
看源码,只有设置外设时钟的代码,如:刚设置TMR3_S,又设置TMR1_S,这个时候TMR3_S位被赋值为0.如下面的代码
DrvSYS_SelectIPClockSource(E_SYS_TMR0_CLKSRC, 0);
DrvSYS_SelectIPClockSource(E_SYS_TMR1_CLKSRC, 0);
DrvSYS_SelectIPClockSource(E_SYS_TMR2_CLKSRC, 0);
DrvSYS_SelectIPClockSource(E_SYS_TMR3_CLKSRC, 0);
函数DrvSYS_SelectIPClockSource(******)如下
int32_t DrvSYS_SelectIPClockSource(E_SYS_IP_CLKSRC eIpClkSrc, uint8_t u8ClkSrcSel)
{
switch(eIpClkSrc)
{
case E_SYS_FRQDIV_CLKSRC:
SYSCLK->CLKSEL2.FRQDIV_S = u8ClkSrcSel;
break;
case E_SYS_I2S_CLKSRC:
SYSCLK->CLKSEL2.I2S_S = u8ClkSrcSel;
break;
case E_SYS_PWM67_CLKSRC:
SYSCLK->CLKSEL2.PWM67_S = u8ClkSrcSel;
break;
case E_SYS_PWM45_CLKSRC:
SYSCLK->CLKSEL2.PWM45_S = u8ClkSrcSel;
break;
case E_SYS_PWM23_CLKSRC:
SYSCLK->CLKSEL1.PWM23_S = u8ClkSrcSel;
break;
case E_SYS_PWM01_CLKSRC:
SYSCLK->CLKSEL1.PWM01_S = u8ClkSrcSel;
break;
case E_SYS_UART_CLKSRC:
SYSCLK->CLKSEL1.UART_S = u8ClkSrcSel;
break;
case E_SYS_TMR3_CLKSRC:
SYSCLK->CLKSEL1.TMR3_S = u8ClkSrcSel;
break;
case E_SYS_TMR2_CLKSRC:
SYSCLK->CLKSEL1.TMR2_S = u8ClkSrcSel;
break;
case E_SYS_TMR1_CLKSRC:
SYSCLK->CLKSEL1.TMR1_S = u8ClkSrcSel;
break;
case E_SYS_TMR0_CLKSRC:
SYSCLK->CLKSEL1.TMR0_S = u8ClkSrcSel;
break;
case E_SYS_ADC_CLKSRC:
SYSCLK->CLKSEL1.ADC_S = u8ClkSrcSel;
break;
case E_SYS_WDT_CLKSRC:
SYSCLK->CLKSEL1.WDT_S = u8ClkSrcSel;
break;
default:
return E_DRVSYS_ERR_IPSRC;
}
return E_SUCCESS;
}
倒是GPIO的寄存器倒是按照读,修改,写的方式赋值的/
打赏帖 | |
---|---|
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 | |
【nRF7002DK】基于sht30的温湿度计被打赏20分 | |
【nRF7002DK】日志打印被打赏20分 | |
rtthread硬件加密-5hash加密分析被打赏10分 | |
【STM32F769】SD卡驱动及其调试经验分享被打赏32分 | |
【分享开发笔记,赚取电动螺丝刀】使用看门狗降低系统隐藏bug触发概率被打赏18分 | |
【STM32F769】调试SD驱动,由于其时钟配置不对引起的错误以及排查记录被打赏35分 | |
【分享开发笔记,赚取电动螺丝刀】MCUXpressoConfigTools配置外设时的异常解决被打赏24分 |