problem: 如果想用计时器定时微秒级,不要使能自动重载:代码如下:

static uint16_t counter;
void Delay_us(uint32_t us){
counter=0xffff-us-5;
__HAL_TIM_SetCounter(&htim14,counter);
HAL_TIM_Base_Start(&htim14);
while(counter<0xffff-6){
counter=__HAL_TIM_GetCounter(&htim14);
}
HAL_TIM_Base_Stop(&htim14);
}

否则会出现不能退出的异常
fix code

static uint16_t counter;
void Delay_us(uint32_t us){//max time 1500us(1.5ms)
counter=0xffff-us-99;
__HAL_TIM_SetCounter(&htim14,counter);
HAL_TIM_Base_Start(&htim14);
while(counter<0xffff-100&&counter>0xffff-1500){
counter=__HAL_TIM_GetCounter(&htim14);
}
HAL_TIM_Base_Stop(&htim14);
}

stm32 微秒定延时问题的更多相关文章

  1. windows下基于(QPC)实现的微秒级延时

    1.为什么会写windows下微秒级延时 在上一篇 实现memcpy()函数及过程总结 中测试memcpy的效率中,测试时间的拷贝效率在微秒级别,需要使用微秒级时间间隔计数. windows下提供Qu ...

  2. stm32中的延时函数

    //粗延时函数,微秒 void delay_nus(u16 time) { u16 i=0; while(time--) { i=10;  //自己定义 while(i--) ; } } //毫秒级的 ...

  3. STM32的精确延时

    /*---------------------------------------------------------- 文件名:systick.c 文件描写叙述:sysTick 系统滴答时钟1us中 ...

  4. STM32延时函数的四种方法

    单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms().本文基于STM32F207介绍4种不同方式实现的延时函数. 1.普通延时 这种延时方式应该是 ...

  5. 关于STM32的延时问题

    最近一直在搞一辆智能小车,用STM32单片机驱动,往上面加了很多外设,外型如下: 今天下午打算在LCD显示一个温度,却发现怎么都显示不了,也找不出原因,还好我们公司的郑工帮我看出了问题,让我顺利改过来 ...

  6. 使用系统定时器SysTick实现精确延时微秒和毫秒函数

    SysTick定时器简介 SysTick定时器是存在于系统内核的一个滴答定时器,只要是ARM Cortex-M0/M3/M4/M7内核的MCU都包含这个定时器,它是一个24位的递减定时器,当计数到 0 ...

  7. 织女星开发板RISC-V内核实现微秒级精确延时

    前言 收到VEGA织女星开发板也有一段时间了,好久没玩了,想驱动个OLED屏,但是首先要实现IIC协议,而实现IIC协议,最基本的就是需要一个精确的延时函数,所以研究了一下如何来写一个精确的延时函数. ...

  8. 嵌入式单片机STM32应用技术(课本)

    目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...

  9. STM32读取温湿度传感器DHT11和DHT21(AM2301)系列问题

    1.DHT11和DHT21传感器 这两种传感器都是奥松公司的产品,具体的传感器说明书在其官网上有(www.aosong.com). DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合 ...

  10. 在Cortex-M系列上如何准确地做us级延时?

    前几天刚好同事问起在Cortex-M上延时不准的问题,在网上也没找到比较满意的答案,干脆自己对这个问题做一个总结. 根据我们的经验,最容易想到的大概通过计算指令周期来解决.该思路在Cortex上并不是 ...

随机推荐

  1. 使用EmguCV3.0.0调用摄像头并设置帧率

    此教程使用emgu3.0.0,其他版本兼容性未知. 转载请注明出处: http://www.cnblogs.com/zaiyuzhong/p/open-camera-with-emgu3_0_0.ht ...

  2. 用tkinter编写一个获取图片资源的GUI工具

    目录 效果展示 导入tkinter库 窗口属性 按钮和输入框 文本输入框Text 运行 打包成exe文件 源码地址 本文可以学习到以下内容: 使用tkinter的Entry功能获取本地文件夹 使用tk ...

  3. C#开发上位机常用

    从深圳回内地几年了,突然想把之前项目中用到的东西做信合集,别忘记了!!!

  4. Java的JDK以及maven环境变量配置

    右键我的电脑->属性->高级->环境变量->系统变量 新建变量名(win7,win10系统变量)JAVA_HOME变量值填写D:\Java\jdk1.8.0_172为jdk的安 ...

  5. Ehlib的DBGridEh 控件导出到Excel

    use DBGridEhImpExp //必须引用此单元 procedure TInvoiceManager.ppmSaveSelectionClick(Sender: TObject); proce ...

  6. 如何为 Debian 11 安装图形用户界面 (GUI)

    如何为 Debian 11 安装图形用户界面 (GUI) allway2 于 2021-12-26 17:30:14 发布 11767 收藏 23文章标签: debian 服务器 linux版权 华为 ...

  7. centos上安装python3.6环境和 pip3

    本篇使用的方法,在不删除Python2的版本,使得Python3和Python2共存 1.yum 安装依赖命令: yum -y install zlib-devel bzip2-devel opens ...

  8. docker tomcat 环境构建

    docker build -t repos_local/centos-jdk7-tomcat7:0.0.1 . -t 设置tag名称, 命名规则registry/image:tag . 表示使用当前目 ...

  9. gitee 上传远程仓库失败

    1:添加本地id_rsa.pub文件内容到gitee SSH Keys (添加公开密钥) 2:设置本地的邮箱和用户名 git config --global user.name "MARS& ...

  10. jmeter取样器之KafkaProducerSampler(往kafka插入数据)

    项目背景 性能测试场景中有一个业务场景的数据抽取策略是直接使用kafka队列,该场景需要准备的测试数据是kafka队列里的数据,故需要实现插入数据到kafka队列,且需要实现控制每分钟插入多少条数据. ...