在测试程序的时候,我们通常要进行程序的运行时间测定以及判断程序运行的先后时间,对于大多数运行的程序来说,us(微秒)级别的时钟是足够了的。
所以,这里利用STM32CubeMX来设置精确到微妙(us)的定时器。

1.0 在本项目中时钟选择的是TIM2,时钟源是内部时钟:

TIM2的时钟来自APB1:


由图可以知道,如果APB1预分频系数等于1,则X1=1,那么CK_PSC = APB1; 如果APB1预分频系数不等于1,则X2=2,那么CK_PSC =2* APB1。
在本项目中时钟配置如下:

HCLK =168 MHZ, APB1 Prescaler =4 ,APB1 =42 MHZ
所以CK_PSC =2* APB1=84 MHZ
CK_CNT(时钟频率) = 84 / N (N指的是PSC分频系数)
所以要在STM32CubeMX上配置,PSC分频系数为84,如下:

故CK_CNT(时钟频率) = 1 MHZ,所以TIM2时钟计时精度为1us,足以满足跟踪DMA每个中断发生的时间。
2.0 计时函数如下:

/**
* @brief  读取上电后Time2 的计数值计数频率 1MHZ (1us)
* @param  : No
* @retval  No
*/
uint32_t STimeus(void)
{uint32_t x;INTX_DISABLE();x = htim2.Instance->CNT; //恰好在CNT计数进位时 有BUGINTX_ENABLE();return x;
}//关闭所有中断(但是不包括fault和NMI中断)
__asm void INTX_DISABLE(void)
{CPSID IBX LR
}
//开启所有中断
__asm void INTX_ENABLE(void)
{CPSIE IBX LR
}

在汇编代码中,CPSID CPSIE 用于快速的开关中断。

汇编指令BX LR,用于函数跳转,一个普通子函数返回与异常(中断)返回的汇编指令都是BX LR。

3.0 时间标签

//时间标签void Tp()
{int t = STimeus();BaseType_t St;MessageQ Commaddata;Commaddata.len = t;//    Commaddata.message = (uint8_t *)" ";Commaddata.MessageType = TIMESAMP;xQueueSendToBackFromISR(MsgQueueHandle, &Commaddata, &St);
}

时间标签是通过STimeus()函数获得当前的计时时间,然后通过FreeRTOS 的队列方式将获得的时间传输出去,当然也可以根据你目前的自己的办法来

利用STM32CubeMX来设置精确到微妙(us)的定时器相关推荐

  1. 利用STM32CubeMX配置基于STMF32F407的FREERTOS操作系统控制直流电机速度和超声波测距实验

    前两周做基于STM32F407芯片的嵌入式系统设计的实验,主要完成利用超声波测距(电脑上用串口显示超声波所测距离,障碍物近于20cm时,使LED灯闪烁,并且可以通过串口更改报警距离)和利用编码器读取电 ...

  2. STM32利用STM32CubeMX驱动SDRAM

    STM32利用STM32CubeMX驱动SDRAM 本次发布FMC总线驱动SDRAM的博客,为下次发布LTDC外设驱动RGB屏的博客做准备.利用STM32CubeMX和HAL库,生成的工程代码具有很强 ...

  3. 如何利用Excel批量设置化学式下标

    今天跟大家分享一下如何利用Excel批量设置化学式下标 1.打开Excel文件,如下图我们想要批量将下面的不标准化学式转为标准化学式. 2.首先我们选中化学式单元格区域 3.点击下图选项(Excel工 ...

  4. vue设置右边距_利用页面布局设置制作工资条(不用函数)

    利用页面布局设置制作工资条(不用函数) 彭怀文 第一节和第二节分别讲了使用函数或排序的办法,将工资表转化工资条,但是美中不足的是标题行只能是单标题行,对于多标题行或者含有合并单元格的标题行却没有办法解 ...

  5. css如何利用transparent属性设置透明度?transparent属性绘制各种三角形

    想到用css设置元素透明度,大家的第一反应会是:用Opacity属性来设置透明度,其实在css中还有其他设置透明度的方法.本章给大家介绍用transparent属性设置透明度,以及用transpare ...

  6. html设置表单透明度,css利用transparent属性设置透明度的方法

    css利用transparent属性设置透明度的方法 发布时间:2020-09-14 13:44:46 来源:亿速云 阅读:188 作者:小新 这篇文章主要介绍css利用transparent属性设置 ...

  7. RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程

    (1)RT Thread利用STM32CUBEMX来创建模板工程 1.参考文档: 基于 CubeMX 移植 RT-Thread Nano:RT-Thread 文档中心 注意:串口2必须使能异步模式(启 ...

  8. 如何利用SEO技术设置文章网页标题

    如何利用SEO技术设置文章网页标题 做SEO优化的朋友都知道一个基本原则,那就是网站最核心的权重排名就是集中在网站首页,而影响排名最大的因素就是网站标题,一个设置标题得当的网站,如果关键字竞争不是很大 ...

  9. 利用TXT文本设置QQ空白名字昵称详细教程

    利用TXT文本设置QQ空白名字昵称详细教程 第一步,在桌面创建个新建文本文档 第二步,进入新建文本文档[这步不用说吧] 第三步,右键-点击-显示Unicode控制字符 第四步,鼠标移动到 -插入Uni ...

最新文章

  1. epoll 的实现原理以及与poll,select 的对比
  2. 《面向对象分析与设计》读书笔记——第一章 复杂性
  3. 网页瀑布流效果实现的几种方式
  4. Linux之RPM 软件包管理
  5. GDB调试——常用命令
  6. Python 生成器 迭代器
  7. 前端学习(2532):Vuex中action
  8. bootstrap 导航菜单 折叠位置_教大家如何编写一个网页导航条
  9. JavaEE实战班第13天
  10. CSS基础——CSS字体样式属性【学习笔记】
  11. jpg转pdf怎么转换?jpg转pdf方法
  12. oracle毕业论文题目,2012届本科毕业论文设计题目参考
  13. 微信H5音乐自动播放
  14. 07169软件开发工具与环境考试大纲
  15. web工程师的自我修养
  16. 【读书笔记】程序员们需读的一本书《软技能:代码之外的生存指南》 | 约翰 Z.森梅兹
  17. springboot昆明学院档案管理系统毕业设计源码311758
  18. 应届生必看的2021互联网行业求职指南,真香!
  19. linux将多个文件打包成一个文件,将多个文件打包成一个shell
  20. 「数据结构」普林斯顿算法课第二周作业

热门文章

  1. asp毕业设计——基于asp+access的毕业生信息管理系统设计与实现(毕业论文+程序源码)——毕业生信息管理系统
  2. java.exe内存占用高_windows java.exe内存暴涨解决、idea跑java\ tomcat内存无限增长
  3. 2、AP上线的那些事儿(1)capwap建立过程、设备初始化以及二层上线
  4. 必读的AI和深度学习博客
  5. 计算机主机显卡安装,电脑如何安装独立显卡|电脑安装独立显卡的方法
  6. javaweb mysql购物车_java web开发之实现购物车功能
  7. python3数据经base64解码后带b'的解决办法
  8. 实现选择器多选依次下发
  9. 期货交易怎么买空(期货怎么买做空)
  10. 软件测试 | 手把手教你如何使用 Fiddler 抓包工具(电脑+手机端)