目录
定时器延时us
配置cubemx
编辑编辑新建模块
代码实现
测试代码
定时器延时us
复制工程模板

配置cubemx


 新建模块 
 
新建文件HardWare
添加文件HardWare


添加文件路径

 添加HardWare
 添加HardWare
或者直接输入/HardWare
添加.c和.h文件



.h文件
添加防重复定义代码
#ifndef __Delay_us_H__
#define __Delay_us_H__
#endif代码实现
Delay_us.c
#include <delay_us.H>
extern TIM_HandleTypeDef htim2;
void Delay_us(uint16_t us)
{     
	uint16_t differ = 0xffff-us-5;				
	__HAL_TIM_SET_COUNTER(&htim2,differ);	//设定TIM1计数器起始值
	HAL_TIM_Base_Start(&htim2);		//启动定时器	
	
	while(differ < 0xffff-5)//判断
	{	
		differ = __HAL_TIM_GET_COUNTER(&htim2);		//查询计数器的计数值
	}
	HAL_TIM_Base_Stop(&htim2);//关闭定时器
}Delay_us.h
#ifndef __Delay_us_H__
#define __Delay_us_H__
#include "tim.h"
#include "main.h"
void Delay_us(uint16_t us);
#endif如果报警,可以尝试代码最后换行
测试代码
同样添加灯进行验证
在main.c添加头文件
#include "Delay_us.h"同样实现LED闪烁
int num = 0;
	
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		Delay_us(1000);
		if(num ++ == 1000)
		{
            num = 0;
			HAL_GPIO_TogglePin(LED_Blue_GPIO_Port, LED_Blue_Pin);
		}
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */


















