[STM32G0] STM32F030内部晶振怎么设置,内部晶振是延时函数怎么设置

[复制链接]
3862|48
powerantone 发表于 2025-3-10 20:00 | 显示全部楼层
在时钟控制寄存器中启用HSI。
stormwind123 发表于 2025-3-10 21:00 | 显示全部楼层
当你没有使用内部晶振而是使用外部晶振时,你需要根据外部晶振的频率来重新配置系统时钟,并相应地调整SysTick_Init函数中的重载值计算逻辑。但是,延时函数的实现逻辑本身(即基于SysTick的轮询方式)通常不需要改变。
pmp 发表于 2025-3-11 13:30 | 显示全部楼层
在编写延时函数时,应尽量避免在中断处理函数中进行复杂的操作,以免影响系统的实时性。
louliana 发表于 2025-3-11 14:04 | 显示全部楼层
通常CubeMX生成的代码会自动处理这些,但有时候可能需要手动调整。
jkl21 发表于 2025-3-11 14:45 | 显示全部楼层
在Pinout & Configuration选项卡中,点击RCC。在HSE(高速外部时钟)和LSE(低速外部时钟)选项中,将其设置为Disable,因为我们要使用内部晶振。
chenci2013 发表于 2025-3-11 15:20 | 显示全部楼层
SysTick是内嵌在Cortex-M处理器中的一个24位倒计时定时器,可以通过设置计数值和重装值来实现不同的延时效果。
cashrwood 发表于 2025-3-11 17:17 | 显示全部楼层
通过RCC_OscInitTypeDef结构体的HSIState字段设置为RCC_HSI_ON来使能内部高速时钟。
lzbf 发表于 2025-3-11 21:09 | 显示全部楼层
可以通过编写一个简单的for循环来模拟延时。这种方法不精确,因为它依赖于编译器和处理器的优化以及当前系统的负载。
pentruman 发表于 2025-3-12 17:06 | 显示全部楼层
推荐使用STM32CubeMX              
uiint 发表于 2025-3-12 18:08 | 显示全部楼层
通过STM32CubeMX工具,可以轻松配置STM32F030的内部晶振和SysTick定时器,生成初始化代码。
alvpeg 发表于 2025-3-12 20:48 | 显示全部楼层
在STM32中,延时函数通常通过软件循环或硬件定时器来实现。
tabmone 发表于 2025-3-12 21:18 | 显示全部楼层
使用HAL库的延时函数              
物联万物互联 发表于 2025-3-13 11:07 | 显示全部楼层
你是想要延迟多长时间呀?毫秒还是微秒?不同时间的延迟,实现的方法也不太一样。
claretttt 发表于 2025-3-14 10:41 | 显示全部楼层
配置STM32F030的内部晶振并实现延时函数。
backlugin 发表于 2025-3-14 11:12 | 显示全部楼层
使用生成的代码,可以实现基于内部晶振的系统时钟和基于SysTick的延时函数
loutin 发表于 2025-3-14 11:24 | 显示全部楼层
配置时钟树的时候,可能需要调整系统时钟到合适的频率,比如72MHz,这样延时会更精确。
jtracy3 发表于 2025-3-14 12:46 | 显示全部楼层
可以使用 STM32CubeMX 配置 STM32F030 的内部晶振
tifmill 发表于 2025-3-14 17:05 | 显示全部楼层
volatile uint32_t ms_ticks = 0;

// SysTick中断处理函数
void SysTick_Handler(void) {
    ms_ticks++;
}

// 延时函数,单位为毫秒
void delay_ms(uint32_t ms) {
    uint32_t start = ms_ticks;
    while ((ms_ticks - start) < ms);
}
wang21 发表于 2025-3-14 18:17 | 显示全部楼层
延时如果在主程序中,用不精确的for延时;如果延时在中断中,用定时器延时。
jtracy3 发表于 2025-3-14 22:55 | 显示全部楼层
自定义延时函数(基于滴答定时器)​
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部