Rtthread学习笔记(二)使用外部晶振时钟HSE

一、创建RT-Thread Studio工程

在这里插入图片描述

二、创建STM32Cube工程

在这里插入图片描述
在这里插入图片描述

三、替换SystemClock_Config()函数

1.在stm32cube创建的工程main.c中复制void SystemClock_Config(void),
2.打开RT-Thread Studio工程,替换board.c中的SystemClock_Config();
3.编译下载
在这里插入图片描述

好的,以下是一个使用HSE外部晶振作为系统主时钟的MM32SPIN06PF例子: ```c #include "mm32.h" int main(void) { // 使能外部晶振并设置为主时钟源 RCC_HSEConfig(RCC_HSE_ON); RCC_WaitForHSEStartUp(); RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE); RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLKConfig(RCC_HCLK_Div1); // 设置PLL时钟源 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6); // 使能PLL RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); // 设置系统时钟为PLL时钟 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // 配置时钟中断 NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = RCC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); RCC_ClearFlag(); RCC_ITConfig(RCC_IT_HSERDY | RCC_IT_PLLRDY | RCC_IT_CSS, ENABLE); // 其他初始化操作 // ... while(1) { // 主循环 // ... } } void RCC_IRQHandler(void) { if(RCC_GetITStatus(RCC_IT_HSERDY) != RESET) { // HSE晶振稳定后的操作 RCC_ClearITPendingBit(RCC_IT_HSERDY); } else if(RCC_GetITStatus(RCC_IT_PLLRDY) != RESET) { // PLL稳定后的操作 RCC_ClearITPendingBit(RCC_IT_PLLRDY); } else if(RCC_GetITStatus(RCC_IT_CSS) != RESET) { // CSS中断处理 RCC_ClearITPendingBit(RCC_IT_CSS); } } ``` 这个例子中,我们首先使能了外部晶振,并将其设置为系统主时钟源。然后,我们配置了PLL时钟源,并将主时钟源设置为PLL时钟。接着,我们配置了时钟中断,并在主循环中等待中断的发生。在时钟中断处理函数中,我们可以根据需要进行相关的操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值