STM32使用定时器延时

STM32F427 使用定时器T4作为延时定时器

设置如下:主要是预分频设置为90,因为系统APB1的时钟是90Hz
在这里插入图片描述预分频90

在这里插入图片描述

#ifndef __DELAY_H__
#define __DELAY_H__
#include "stdint.h"

void delay_us(uint32_t us);
void delay_ms(uint32_t us);


#endif

C文件

#include "delay.h"
#include "main.h"

#include "stdio.h"
extern TIM_HandleTypeDef htim4;
//使用一个定时器延时1us
void delay_us(uint32_t us)
{
	if(us>65535)
	{	
		us=65535;
		printf("%s %d param us is overrun \r\n",__FILE__,__LINE__);
	}
	//计数器清零
	__HAL_TIM_SET_COUNTER(&htim4,0);
	//设置重载值,也就是需要计数的最大值
	__HAL_TIM_SET_AUTORELOAD(&htim4,us);
	//开始计数
	HAL_TIM_Base_Start(&htim4);
	//等待计数事件到
	while(!__HAL_TIM_GET_FLAG(&htim4,TIM_FLAG_UPDATE));
	//清除转态标志
	__HAL_TIM_CLEAR_FLAG(&htim4,TIM_FLAG_UPDATE);
	//停止计数
	HAL_TIM_Base_Stop(&htim4);
	
}	
//使用一个定时器延时1ms
void delay_ms(uint32_t ms)
{
	for(uint32_t i=0;i<ms;i++)
	{
		delay_us(1000);
	}
	
}




  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Car12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值