会自动在tim.c里面生成代码,如下:

/* Includes ------------------------------------------------------------------*/
#include "tim.h"

/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

TIM_HandleTypeDef htim17;

/* TIM17 init function */
void MX_TIM17_Init(void)
{

htim17.Instance = TIM17;
htim17.Init.Prescaler = 0;
htim17.Init.CounterMode = TIM_COUNTERMODE_UP;
htim17.Init.Period = 65535;
htim17.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim17.Init.RepetitionCounter = 0;
if (HAL_TIM_Base_Init(&htim17) != HAL_OK)
{
Error_Handler();
}

}

void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{

if(tim_baseHandle->Instance==TIM17)
{
/* USER CODE BEGIN TIM17_MspInit 0 */

/* USER CODE END TIM17_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM17_CLK_ENABLE();
/* USER CODE BEGIN TIM17_MspInit 1 */

/* USER CODE END TIM17_MspInit 1 */
}
}

void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{

if(tim_baseHandle->Instance==TIM17)
{
/* USER CODE BEGIN TIM17_MspDeInit 0 */

/* USER CODE END TIM17_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM17_CLK_DISABLE();
}
/* USER CODE BEGIN TIM17_MspDeInit 1 */

/* USER CODE END TIM17_MspDeInit 1 */
}

然后自己再写一个函数;

/* USER CODE BEGIN 4 */

void Delay_us(uint16_t nus)
{
__HAL_TIM_SetCounter(&htim17, 0);//htim17

__HAL_TIM_ENABLE(&htim17);

while(__HAL_TIM_GetCounter(&htim17) < (36 * nus));//36是系统时钟,更改这里就行了。
/* Disable the Peripheral */
__HAL_TIM_DISABLE(&htim17);
}

/* USER CODE END 4 */

因为36 * 1/36M 对应的就是1us,用定时器来做延时是很准的。

STM32 CubeMX如何生成微秒(us)级延时相关推荐

  1. stm32实现毫秒ms微秒us级延时

    stm32实现毫秒ms微秒us级延时 上一篇文章简单捋了一下32时钟初始化的过程,对systick嘀嗒定时器有了一定的了解吧 实现方法有很多种,推荐一个博客:https://blog.csdn.net ...

  2. python实现亚毫秒(微秒)级延时

    python实现亚毫秒(微秒)级延时 python的常用延时函数为time.sleep,最小延时精度为0.001秒,即time.sleep(0.001)延时为1毫秒,在windows10操作系统下,逻 ...

  3. 一、STM32用HAL库实现uS级延时

    一.应用场景 STM32CubeMX可视化初始化配置,结合 HAL 库,给STM32软件开发提高了效率,但 HAL 库封装的延时函数目前仅支持 mS 级别的延时,日常很多情况下会用到 uS延时,比如I ...

  4. 无需另配定时器在STM32 HAL下实现微秒级延时(兼容FreeRTOS)

    目录 前言 一.代码部分 二.使用和验证 1.引入头文件 2.初始化 3.使用和验证 三.可移植性 总结 前言 接触HAL库差不多两年了,一直苦于HAL库没有自带微秒级的延时,网上的前辈们给出的解决方 ...

  5. stm32实现Systick的毫秒级延时和微妙级延时

    学习目标: stm32实现Systick的毫秒级延时和微妙级延时 学习内容: 1.Systick 工作原理 Systick(系统定时器)是ARM Cortex M3/M4 内核的一个外设,因为所有的C ...

  6. Windows 微秒级 延时

    QueryPerformanceCounter()这个函数返回高精确度性能计数器的值,它可以以微妙为单位计时. // 微秒级延时 参数: 微秒 void Control::MySleep(DWORD ...

  7. 20140627-STM8L101F3P6关于微秒级延时函数不同写法的波形

    总结一下STM8L101F3P6工作在16MHz下,利用死循环.中断等不同写法的微秒级延时函数精度的情况. 一.死循环空指令的写法,延时函数程序如下: /*********************** ...

  8. c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS

    最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...

  9. STM32 cubeMX下配置STM32单片机使无源蜂鸣器输出PWM波并放音乐

    1.首先我们要了解定时器(timer) timer分为三种:高级定时器(tim1,tim8),基本定时器(tim6,tim7),通用定时器(tim2,tim3,tim4,tim5). 基本定时器:它有 ...

最新文章

  1. MyBatis 之 动态SQL
  2. 多个类的DLL封装及调用
  3. linux命令无视错误,llinux 的一些命令和错误
  4. spark TaskMemoryManager shuffle 内存管理
  5. sklearn炼丹术之——Linear Models汇总
  6. Distribution download cancelled. Using distribution from 'https://services.gradle.org/distributions/
  7. 如何在CentOS 7上安装和安全配置MariaDB 10
  8. 【高等数学】多元函数f(x,y...)的泰勒(Taylor)展开式
  9. 11种基于ARM的嵌入式操作系统
  10. [转]Ceph:OpenStack标配Linux PB级分布式文件系统详解
  11. 矩阵转置---c语言实现
  12. win10计算机控制面板在哪里,Win10控制面板在哪里?Win10怎么打开控制面板?
  13. 快手:星星之火,寒冬燎原
  14. php形状特征提取方法,LowB沙箱-PHP动态特征提取
  15. 基于java的物流信息管理系统(计算机毕业设计)
  16. 微博指定日期舆情数据爬虫获取—基于中文金融词典(python)
  17. Cover Letter Response Letter
  18. 链接:https://pan.baidu.com/s/1U-UlYoranUvpfj97XLrHvQ 提取码:ZMTD
  19. JavaScript高级编程语言基础语法
  20. CVPR 2023 接收结果出炉!再创历史新高!录用2360篇!(附10篇最新论文)

热门文章

  1. oracle oem 13c新特性,【EMCC】Oracle 13c OEM 安装测试(13.2.0.0)
  2. windows挂载nas存储 NAS Share / NFS系统
  3. c语言实现gps坐标转化,C语言计算GPS卫星位置
  4. 2016年(第15届)中国软件业务收入前百家企业名单(zz)
  5. 因果AI如何发现因果
  6. DevOps 面试小宝典:总有一个你会用到
  7. 超模脸、网红脸、萌娃脸...换头像不重样?我开源了5款人脸生成器
  8. SQL Server 2017无法启动,提示“系统找不到指定的文件”【虚拟机内安装的】
  9. App 适配 iOS 11
  10. 网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)