# 应用示例 ## 12M时钟来源选择 ```c gx_clk_src_set_12m(0); //来自芯片内部RC12M gx_clk_src_set_12m(1); //来自管脚输入 ``` ## DTO计算 **DTO输出频率必须小于等于其输入频率** `dto = (输出频率 * (1 << 25) / + 输入频率/2) / 输入频率` ## DTO配置 以配置UART0 DTO输出24.576MHz为例, **以下两种方法二选一即可** ```c unsigned int dto =(unsigned int)(((unsigned long long) pll_freq * (1<<25) + pll_freq/2) / pll_freq); gx_clk_mod_set_dto(GX_CLK_MOD_UART0, dto, 1); ``` ```c gx_clk_mod_set_dto_out(GX_CLK_MOD_UART0, 24760000, 1); ``` ## DIV配置 以配置UART0 DIV 2分频为例 ```c gx_clk_mod_set_div(GX_HAL_CLK_MOD_UART0, 2); ``` ## GATE配置 以配置UART0 开关时钟gate为例 ```c gx_clk_mod_set_gate(GX_CLK_MOD_UART0, 0);// 关闭Gate gx_clk_mod_set_gate(GX_CLK_MOD_UART0, 1);// 开启Gate ``` ## MUX配置 以配置UART0 时钟选择来源为例 ```c gx_hal_clk_mod_set_src(GX_CLK_MOD_UART0, GX_HAL_CLK_MOD_SRC_12M);// 选择时钟源为12M gx_hal_clk_mod_set_src(GX_CLK_MOD_UART0, GX_HAL_CLK_MOD_SRC_PLL);// 选择时钟源为PLL ``` Audio模块有更多的时钟来源选择 ```c GX_CLK_MOD_AUD_SYS_DTO_OUT0 GX_CLK_MOD_AUD_SYS_DTO_OUT1 GX_CLK_MOD_AUD_SYS_I2S_MCLK GX_CLK_MOD_AUD_SYS_PDM ```