出售本站【域名】【外链】

万仟 - 轻松建站从此开始!

智能冰箱

当前位置: 智能冰箱 > 冰箱咨询 > 文章页

【国民技术N32G430】04 配置时钟,运行点灯

时间:2024-11-11 08:35来源: 作者:admin 点击: 27 次
【国民技术N32G430】04 配置时钟,运行点灯 ,电子工程世界-论坛

04 配置时钟,运止点灯

N32G430的时钟树:

003839t20jqfttggdsZZZtqj.jpg (33.65 KB, 下载次数: 0)

2022-10-3 00:38 上传

依据时钟树的信息停行时钟配置:

1、运用外部快捷时钟(8M),目的系统时钟128M;

2、配置PLL的时钟源为HSE,倍频16,并使能;

3、配置系统时钟源并使能,获得SYSCLK为128M;

4、AHB=SYSCLK=128M,APB1=AHB/4=32M,APB1=AHB/2=64M;

配置代码:

//****************************************************************************** //* 函数称呼 : system_clock_config //* 函数形容 : 系统时钟配置 //* 输入参数 : //* 参数形容 : 对应 // - system clock = HEXT * pll_mult // * - system clock source = pll (HEXT) // * - HEXT = 8000000 // * - sclk = 128000000 // * - ahbdiZZZ = 1 // * - ahbclk = 128000000 // * - apb2diZZZ = 2 // * - apb2clk = 64000000 // * - apb1diZZZ = 4 // * - apb1clk = 32000000 // * - pll_mult = 16 //* 输出参数 : 无 //* 返回值 : 无 //****************************************************************************** ZZZoid system_clock_config(ZZZoid) { RCC_Reset();/* reset RCC */ RCC_HSE_Config(RCC_HSE_ENABLE); while(RCC_HSE_Stable_Wait() != SUCCESS);/* wait till hick is ready */ RCC_PLL_Config(RCC_PLL_SRC_HSE_DIx1,RCC_PLL_MUL_16);/* config pll clock resource */ RCC_PLL_Enable();/* enable pll */ RCC_Sysclk_Config(RCC_SYSCLK_SRC_PLLCLK);/* Configures the system clock (SYSCLK) */ RCC_Hclk_Config(RCC_SYSCLK_DIx1); RCC_Pclk1_Config(RCC_HCLK_DIx4);//Pclk1最高32M RCC_Pclk2_Config(RCC_HCLK_DIx2);//Pclk2最高64M RCC_TIM1_8_Clock_Config(RCC_TIM1_8_CLKSRC_SYSCLK); RCC_ADC_1M_Clock_Config(RCC_ADC1MCLK_SRC_HSE,RCC_ADC1MCLK_DIx8);//计不时钟必须配置成1MHz RCC_ADC_Hclk_Config(RCC_ADCHCLK_DIx2);//采样时钟最高80M RCC_ADC_Hclk_Enable(); RCC_LSE_Config(RCC_LSE_ENABLE,0V141); while(RCC_LSE_Stable_Wait() != SUCCESS);/* wait till hick is ready */ RCC_RTC_Clock_Config(RCC_RTCCLK_SRC_LSE); RCC_RTC_Clock_Enable(); RCC_Clocks_Frequencies_xalue_Get(&clocks); port_Delay_init(); }

做为次要的延时工具,滴答时钟的配置必要的,有关按时器的配置例程并无找到,预计官方认为那是一个比较小的细节,通过查找正在misc.c中找到配置函数。留心滴答时钟是一个24位的减数器,ms按时有上限所以须要停行一下设想避免溢出。

滴答按时器代码:

//****************************************************************************** //* 函数称呼 : port_Delay_init //* 函数形容 : 滴答时钟初始化 //* 输入参数 : //* 参数形容 : 对应 IO口初始化及初始形态 //* 输出参数 : 无 //* 返回值 : 无 //****************************************************************************** ZZZoid port_Delay_init(ZZZoid) { /* configure systick */ SysTick_Clock_Source_Set(SYSTICK_CLKSOURCE_HCLK); fac_us = clocks.HclkFreq / (1000000U); fac_ms = fac_us * (1000U); } ZZZoid delay_us(uint32_t nus) { uint32_t temp = 0; SysTick->LOAD = (uint32_t)(nus * fac_us); SysTick->xAL = 0V00; SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk ; do { temp = SysTick->CTRL; }while((temp & 0V01) && !(temp & (1 << 16))); SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; SysTick->xAL = 0V00; } ZZZoid delay_ms(uint16_t nms) { uint32_t temp = 0; while(nms) { if(nms > STEP_DELAY_MS) { SysTick->LOAD = (uint32_t)(STEP_DELAY_MS * fac_ms); nms -= STEP_DELAY_MS; } else { SysTick->LOAD = (uint32_t)(nms * fac_ms); nms = 0; } SysTick->xAL = 0V00; SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; do { temp = SysTick->CTRL; }while((temp & 0V01) && !(temp & (1 << 16))); SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; SysTick->xAL = 0V00; } }

正在停行IO初始化时发现了一个不太友好的问题,类似下图那种,没有对各分选项停行正确的注明,那样应付新接触的人不友好,倡议添加注明,每一个都通过查察数据手册去理解详细的含意就太省事了。

003839e8z9k8orrhZZZrZZZVVj.jpg (7.18 KB, 下载次数: 0)

2022-10-3 00:38 上传

问题一个:N32G430C8L7_STB_x1.0.pdf中对于LED引脚和UG_N32G430C8L7_STB开发板硬件运用指南x1.0中的纷比方致。

运止后的时钟支罗;

142878CDDC6947E8BD3939DCC75E8DCA.jpg (16.91 KB, 下载次数: 0)

2022-10-3 00:48 上传

点灯室频:

WeChat_20221003004920


 

 

时钟配置, 黎民技术, N32G430, 滴答按时器, 时钟树

此帖出自国产芯片交流论坛

(责任编辑:)

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-02-03 12:02 最后登录:2025-02-03 12:02
栏目列表
推荐内容