1.定时器概念
定时器实现也是依靠中断实现
定时器分为
嘀嗒定时器:在STM32操作系统中可以用到
基本定时器:TIM6 TIM7 (定时)
通用定时器:TIM2-TIM5 (测量PWM)
高级定时器:TIM1 TIM8 (电机,数字电源)
定时器本质就是计数器
我们在stmcubemx里面设置最大频率为100MHZ
假如说我们要定时500ms,500ms进行一次中断,执行中断执行函数
这个我们使用通用定时器,TIM2最大计数为65536
我们计算出来计数需要50 000000,
此时我们需要预分频器,分配后小于65536,
实现500ms翻转灯引脚电平实现闪烁
1.stm32cubemx配置
2.配置GPIOB
直接展示代码了,没有什么可说的
void MY_LED_Init(void)
{__HAL_RCC_GPIOB_CLK_ENABLE(); //开启GPIOB时钟GPIO_InitTypeDef GPIO_INIT;GPIO_INIT.Mode=GPIO_MODE_OUTPUT_PP; //设置推挽模式GPIO_INIT.Pin=GPIO_PIN_10; //设置LED 十号引脚GPIO_INIT.Pull=GPIO_NOPULL; //不设置上下拉GPIO_INIT.Speed=GPIO_SPEED_FREQ_LOW; //设置低HAL_GPIO_Init(GPIOB,&GPIO_INIT);}
gpio.h声明一下
2.开启定时器
参数为哪一个定时器
3.处理中断函数
所有的中断函数名都在
启动文件中
跳转一下
需要我们自己实现