- 博客(3)
- 收藏
- 关注
原创 关于使用STM32定时器为什么芯片上电后计数是从1开始,而不是0
原因:下图是初始化时基单元函数TIM_TimeBaseInit()函数中的一段代码。注释意思为但是它的弊端就是,更新事件和更新中断是同时发生的,更新中断会置更新中断标志位。当我们之后一旦初始化完了,更新中断就会立刻进入。所以当我们使用定时器计数时,会造成少计一个数(即一上电,计数值就是从1开始,而不是0)。解决的办法就是在开启中断前,初始化时基单元TIM_TimeBaseInit()函数后,调用TIM_ClearFlag()函数清除中断标志。加上这条代码后,芯片一上电就是从0开始计数了。
2024-01-18 19:26:27
556
1
原创 STM32定时器中断配置步骤_影子寄存器_时钟_时钟树_固件库
本文分两大部分:一、定时器中断这部主要是简单的介绍了一下定时器,给出了定时器中断的配置步骤及实例代码。如果只是想实现定时器中断代码,则只需参考本部分即可。二、补充&深入在这一部分中,简单介绍了一下定时器的框图、影子寄存器、时钟、时钟树。另外还讲解了使用固件库编写定时器相关代码时,需要对固件库中默认参数进行更改的地方。
2024-01-18 13:32:03
1641
1
原创 中断系统_框图_配置步骤
当同时发生多个中断请求时,CUP不需要判断哪个先执行,当多个中断请求发生时NVCI会对其进行优先级排序,最后选择优先级最高的中断请求传达到CPU,CPU则执行相应的中断服务程序即可(NVIC相当于医院的叫号系统,CPU相当于医生)GPIO端口线经过SYSCFG(数据选择器)后分为16个中断线,这16个中断线再通过EXTI(外部中断控制器)与NVIC连接。NVIC为内核外设,而RCC只管内核外的外设,所以也不需要使能】① 使能时钟(GPIO时钟、SYSCFG时钟)CPU如何知道该中断对应的服务程序是哪个?
2024-01-16 17:55:25
606
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人