已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时?

(已知相关公式:CK_CNT=定时器时钟/ (TIMx_PSC +1))

这是STM32官方库给出的配制系统定时器中断的库函数:
static __INLINE uint32_t SysTick_Config(uint32_t ticks){
if (ticks > SysTick_LOAD_RELOAD_Msk) return (1);
SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;
NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);
SysTick->VAL = 0;
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk;
return (0);
}
只需要把形参ticks赋值为50就能让系统定时器每20ms中断一次。
温馨提示:内容为网友见解,仅供参考
无其他回答

3.已知STM32系统时钟频率为72 MHz,如何设置相关寄存器,实现10ms...
设置系统时钟:使用RCC寄存器设置PLL倍频系数,将系统时钟频率设置为72 MHz。选择合适的定时器:在STM32中有多个定时器可供选择,根据需要选取合适的定时器。假设在这里我们选用TIM2定时器。配置定时器:使用TIM2的相关寄存器配置定时器的时钟源、分频系数和计数周期等参数。可以将定时器的时钟源设置为内部时...

2.若系统时钟为72MHz 要定时10MS 应如何计算和设置相关寄存器?
将时间精度设置为 1ms,可以通过设置相关寄存器实现。例如,假设要将时间精度设置为 1ms,则需要将定时器溢出方式设置为 1,同时将定时器溢出周期设置为 72MHz\/1000 = 0.0072s。可以通过设置相关寄存器实现。根据公式计算出需要设置的定时器间隔值。例如,假设当前定时器间隔值为 1000Hz,时间精度为 1ms...

mdk硬件仿真STM32 怎么查看当前系统时钟
1、首先打开main.c文件,在头写一个delay的延时方法,如下图。2、然后在延时方法下面写出自定义设置系统时钟的方法,如下图。3、然后就可以在入口程序中首先调用 设置系统时钟方法,传入对应的参数,先设置好系统时钟,然后再设置LED灯的点亮熄灭之间加入延时方法,如下图。4、然后编译代码,下图中可以看...

STM32串口波特率大小计算
STM32的波特率设置并非直接设置,而是通过USART_BRR寄存器的巧妙组合实现。这个寄存器采用分数形式,前4位用于小数部分,后12位用于整数部分。要设定实际波特率,我们需要理解USART_BRR与串口时钟源fck的分频因子USARTDIV的关系。公式如下:USART_BRR = (整数部分 * 16) + (小数部分)举个例子,如果目标波特...

如何在MDK中查看系统时钟配置
FREQ_48MHz 48000000 *\/ \/* #define SYSCLK_FREQ_56MHz 56000000 *\/ define SYSCLK_FREQ_72MHz 72000000 endif 默认是定义的72M。另外一个就是,在调试时,KEIL的Peripherals菜单下,找到RCC,如果你安装的版本有硬件仿真,可以直接看到系统时钟频率,没有的话,就找到相关寄存器自己去算了。

STM32中,systick具体延时时间怎么计算的?
\/* 好了我们开始讲解程序1us是怎么实现的,我们使用时钟源为APB时钟,APB系统频率陪配置为72MHZ SYSTICK_LOAD = SystemCoreClock \/ 1000000; SysTick重载初值重要的地方就在这里 1:SystemCoreClock 这个是什么意思,跟踪库函数找到如下:ifdef SYSCLK_FREQ_HSE uint32_t SystemCoreClock = SYSCLK_...

STM32-FSMC学习(1)
FSMC挂载在HCLK(72MHz)的AHB总线上,支持同步和异步存储器,通过调整FSMC_BTR的CLKDIV可以进行时钟分频。它能适应不同设备的时序模型,确保高效的数据传输。STM32提供了多种模式来匹配不同存储器的信号线,如NOR FLASH的NWE和NOE,模式1\/2\/3定义了读写操作和时序。FSMC精确控制NOR FLASH的时序,确保...

stm32f103 dma是怎么实现的
STM32中 DMA1有7个通道,DMA2有5个通道(DMA2 仅存在大容量产品中)。DMA挂载的时钟为AHB总线,其时钟为72Mhz,所以可以实现高速数据搬运。STM32F103RBT6 只有1 个DMA控制器,DMA1 ,下面我们就针对DMA1 进行介绍。从外设(TIMx、ADC、SPIx 、I2Cx 和USARTx )产生的DMA请求,通过逻辑或输入到DMA...

STM32F103正点原子学习笔记系列——基础定时器
STM32定时器分为基本、通用和高级三种类型,基本定时器如TIM6、TIM7,具备16位递增计数器、16位预分频器等特性。基本定时器的更新事件可以触发中断或DMA请求,影子寄存器确保在更新事件产生时值被更新。设置预分频系数、计数器溢出值等参数控制定时器的计数模式与溢出条件。定时器中断相关寄存器如控制寄存器、...

【STM32F103ZET6开发板】第2-12-2讲:通用定时器和高级定时器
头文件及路径配置,确保工程正确加载与运行。- **路径设置**:在工程配置中添加必要的头文件路径,确保代码能够正确引用标准库与自定义函数。通过上述实验流程与代码实现,深入理解了STM32F103ZET6开发板中通用定时器与高级定时器的功能,以及如何利用它们进行脉冲信号的测量与频率分析。

相似回答