打印
[STM32G0]

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

[复制链接]
楼主: onlycook
手机看帖
扫描二维码
随时随地手机跟帖
21
powerantone| | 2025-3-10 20:00 | 只看该作者 回帖奖励 |倒序浏览
在时钟控制寄存器中启用HSI。

使用特权

评论回复
22
stormwind123| | 2025-3-10 21:00 | 只看该作者
当你没有使用内部晶振而是使用外部晶振时,你需要根据外部晶振的频率来重新配置系统时钟,并相应地调整SysTick_Init函数中的重载值计算逻辑。但是,延时函数的实现逻辑本身(即基于SysTick的轮询方式)通常不需要改变。

使用特权

评论回复
23
pmp| | 2025-3-11 13:30 | 只看该作者
在编写延时函数时,应尽量避免在中断处理函数中进行复杂的操作,以免影响系统的实时性。

使用特权

评论回复
24
louliana| | 2025-3-11 14:04 | 只看该作者
通常CubeMX生成的代码会自动处理这些,但有时候可能需要手动调整。

使用特权

评论回复
25
jkl21| | 2025-3-11 14:45 | 只看该作者
在Pinout & Configuration选项卡中,点击RCC。在HSE(高速外部时钟)和LSE(低速外部时钟)选项中,将其设置为Disable,因为我们要使用内部晶振。

使用特权

评论回复
26
chenci2013| | 2025-3-11 15:20 | 只看该作者
SysTick是内嵌在Cortex-M处理器中的一个24位倒计时定时器,可以通过设置计数值和重装值来实现不同的延时效果。

使用特权

评论回复
27
cashrwood| | 2025-3-11 17:17 | 只看该作者
通过RCC_OscInitTypeDef结构体的HSIState字段设置为RCC_HSI_ON来使能内部高速时钟。

使用特权

评论回复
28
lzbf| | 2025-3-11 21:09 | 只看该作者
可以通过编写一个简单的for循环来模拟延时。这种方法不精确,因为它依赖于编译器和处理器的优化以及当前系统的负载。

使用特权

评论回复
29
pentruman| | 2025-3-12 17:06 | 只看该作者
推荐使用STM32CubeMX              

使用特权

评论回复
30
uiint| | 2025-3-12 18:08 | 只看该作者
通过STM32CubeMX工具,可以轻松配置STM32F030的内部晶振和SysTick定时器,生成初始化代码。

使用特权

评论回复
31
alvpeg| | 2025-3-12 20:48 | 只看该作者
在STM32中,延时函数通常通过软件循环或硬件定时器来实现。

使用特权

评论回复
32
tabmone| | 2025-3-12 21:18 | 只看该作者
使用HAL库的延时函数              

使用特权

评论回复
33
物联万物互联| | 2025-3-13 11:07 | 只看该作者
你是想要延迟多长时间呀?毫秒还是微秒?不同时间的延迟,实现的方法也不太一样。

使用特权

评论回复
34
claretttt| | 2025-3-14 10:41 | 只看该作者
配置STM32F030的内部晶振并实现延时函数。

使用特权

评论回复
35
backlugin| | 2025-3-14 11:12 | 只看该作者
使用生成的代码,可以实现基于内部晶振的系统时钟和基于SysTick的延时函数

使用特权

评论回复
36
loutin| | 2025-3-14 11:24 | 只看该作者
配置时钟树的时候,可能需要调整系统时钟到合适的频率,比如72MHz,这样延时会更精确。

使用特权

评论回复
37
jtracy3| | 2025-3-14 12:46 | 只看该作者
可以使用 STM32CubeMX 配置 STM32F030 的内部晶振

使用特权

评论回复
38
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);
}

使用特权

评论回复
39
wang21| | 2025-3-14 18:17 | 只看该作者
延时如果在主程序中,用不精确的for延时;如果延时在中断中,用定时器延时。

使用特权

评论回复
40
jtracy3| | 2025-3-14 22:55 | 只看该作者
自定义延时函数(基于滴答定时器)​

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则