1 Star 2 Fork 2

AI头条/stm32_arm_learn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
timx_utils.c 1.42 KB
一键复制 编辑 原始数据 按行查看 历史
AI头条 提交于 1年前 . lesson10 PWM呼吸灯
#include "timx_utils.h"
#include "led_utils.h"
#include "stm32f10x.h"
/**
* @brief 初始化定时器
* @param preriod: 自动重装载寄存器周期值
* @param prescaler: 时钟预分频数
*/
void tim4_init(u16 preriod, u16 prescaler)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
TIM_TimeBaseStructure.TIM_Period = preriod;
TIM_TimeBaseStructure.TIM_Prescaler = prescaler;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
// 初始化
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
// 中断使能
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
// 使能定时器
TIM_Cmd(TIM4, ENABLE);
// 中断优先级NVIC设置
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
/**
* @brief 初始化定时器
* @param ms: 定时器中断时间
*/
void tim4_init_ms(u16 ms)
{
// 直接调用 timx_init 函数
tim4_init(ms*2, 36000-1);
}
static u8 n=0;
void TIM4_IRQHandler(void)
{
if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET)
{
led_lightn(n);
n++;
if(n>9){
n=0;
}
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xundh/stm32_arm_learn.git
git@gitee.com:xundh/stm32_arm_learn.git
xundh
stm32_arm_learn
stm32_arm_learn
master

搜索帮助