STM32学习笔记---TIM_GetFlagStatus和TIM_GetITStatus两个固件库函数的区别,程序员大本营,技术文章内容聚合第一站。
在程序执行时,在执行主程序之前还会执行一个SystemInit函数(详见:STM32学习笔记(一)丨建立工程丨GPIO 通用输入输出),这个函数的作用就是配置RCC时钟树。 RCC时钟树可以分为两部分:时钟产生电路和时钟分配电路。 时钟产生电路 在时钟产生电路,有四个振荡源,分别是内部的8MHz高速RC振荡器、外部的4-16...
*/ uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx) { /* Check the parameters */ assert_param(IS_TIM_ALL_PERIPH(TIMx)); /* Get the Prescaler Register value */ return TIMx->PSC; }2.21、TIM_GetFlagStatus 主程序标志位获取函数原型:FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_...
TPAD_Get_Val函数用来获取一次电容按键捕获值,包括电容按键放电和输入捕获过程。 先调用TPAD_Reset函数完成电容按键放电过程,并复位计数器。 接下来,使用TIM_GetFlagStatus函数获取当前计数器的输入捕获状态,如果成功输入捕获就使用TPAD_TIM_GetCaptureX函数获取此刻定时器捕获/比较寄存器的值并返回该值。如果还没有发生...
还有一些 GET 类的函数,例如 TIM_GetCounter 获取当前计数器值,TIM_GetPrescaler 获取当前预分频器系数。以及用于获取和清除标志位的 TIM_GetFlagStatus、TIM_ClearFlag、TIM_GetITStatus 以及 TIM_ClearITPendingBit。 我们如上进行配置(参数配置以定时 1s 为例): ...
今天试了下,对于TIM2,加上if(TIM_GetITStatus(TIM2,TIM_IT_Update!=RESET))可以解决问题;对于ADC,采用delay()替代while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET)可以解决问题。但为啥移植后就不行了,疑问还是没有解决,期待中。 回复 使用道具 举报 正点...
return TIM_GetCounter(TIM2); } //当定时器产生更新中断时,这个函数就会自动被执行 void TIM2_IRQHandler(void) { //检查中断标志位,TIM_FLAG_Update为想看的中断标志位 if(TIM_GetFlagStatus(TIM2, TIM_FLAG_Update)== SET) { //清除相应的标志位 ...
29 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); 30 //设置PLL为系统时钟源 31 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 32 //判断PLL是否是系统时钟 33 while(RCC_GetSYSCLKSource() != 0x08); 34 } 35 //允许TIM2的时钟
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {} RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource() != 0x08) {} } RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); ...