利用STM32CubeMX来设置精确到微妙(us)的定时器
在测试程序的时候,我们通常要进行程序的运行时间测定以及判断程序运行的先后时间,对于大多数运行的程序来说,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)的定时器相关推荐
- 利用STM32CubeMX配置基于STMF32F407的FREERTOS操作系统控制直流电机速度和超声波测距实验
前两周做基于STM32F407芯片的嵌入式系统设计的实验,主要完成利用超声波测距(电脑上用串口显示超声波所测距离,障碍物近于20cm时,使LED灯闪烁,并且可以通过串口更改报警距离)和利用编码器读取电 ...
- STM32利用STM32CubeMX驱动SDRAM
STM32利用STM32CubeMX驱动SDRAM 本次发布FMC总线驱动SDRAM的博客,为下次发布LTDC外设驱动RGB屏的博客做准备.利用STM32CubeMX和HAL库,生成的工程代码具有很强 ...
- 如何利用Excel批量设置化学式下标
今天跟大家分享一下如何利用Excel批量设置化学式下标 1.打开Excel文件,如下图我们想要批量将下面的不标准化学式转为标准化学式. 2.首先我们选中化学式单元格区域 3.点击下图选项(Excel工 ...
- vue设置右边距_利用页面布局设置制作工资条(不用函数)
利用页面布局设置制作工资条(不用函数) 彭怀文 第一节和第二节分别讲了使用函数或排序的办法,将工资表转化工资条,但是美中不足的是标题行只能是单标题行,对于多标题行或者含有合并单元格的标题行却没有办法解 ...
- css如何利用transparent属性设置透明度?transparent属性绘制各种三角形
想到用css设置元素透明度,大家的第一反应会是:用Opacity属性来设置透明度,其实在css中还有其他设置透明度的方法.本章给大家介绍用transparent属性设置透明度,以及用transpare ...
- html设置表单透明度,css利用transparent属性设置透明度的方法
css利用transparent属性设置透明度的方法 发布时间:2020-09-14 13:44:46 来源:亿速云 阅读:188 作者:小新 这篇文章主要介绍css利用transparent属性设置 ...
- RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程
(1)RT Thread利用STM32CUBEMX来创建模板工程 1.参考文档: 基于 CubeMX 移植 RT-Thread Nano:RT-Thread 文档中心 注意:串口2必须使能异步模式(启 ...
- 如何利用SEO技术设置文章网页标题
如何利用SEO技术设置文章网页标题 做SEO优化的朋友都知道一个基本原则,那就是网站最核心的权重排名就是集中在网站首页,而影响排名最大的因素就是网站标题,一个设置标题得当的网站,如果关键字竞争不是很大 ...
- 利用TXT文本设置QQ空白名字昵称详细教程
利用TXT文本设置QQ空白名字昵称详细教程 第一步,在桌面创建个新建文本文档 第二步,进入新建文本文档[这步不用说吧] 第三步,右键-点击-显示Unicode控制字符 第四步,鼠标移动到 -插入Uni ...
最新文章
- epoll 的实现原理以及与poll,select 的对比
- 《面向对象分析与设计》读书笔记——第一章 复杂性
- 网页瀑布流效果实现的几种方式
- Linux之RPM 软件包管理
- GDB调试——常用命令
- Python 生成器 迭代器
- 前端学习(2532):Vuex中action
- bootstrap 导航菜单 折叠位置_教大家如何编写一个网页导航条
- JavaEE实战班第13天
- CSS基础——CSS字体样式属性【学习笔记】
- jpg转pdf怎么转换?jpg转pdf方法
- oracle毕业论文题目,2012届本科毕业论文设计题目参考
- 微信H5音乐自动播放
- 07169软件开发工具与环境考试大纲
- web工程师的自我修养
- 【读书笔记】程序员们需读的一本书《软技能:代码之外的生存指南》 | 约翰 Z.森梅兹
- springboot昆明学院档案管理系统毕业设计源码311758
- 应届生必看的2021互联网行业求职指南,真香!
- linux将多个文件打包成一个文件,将多个文件打包成一个shell
- 「数据结构」普林斯顿算法课第二周作业
热门文章
- asp毕业设计——基于asp+access的毕业生信息管理系统设计与实现(毕业论文+程序源码)——毕业生信息管理系统
- java.exe内存占用高_windows java.exe内存暴涨解决、idea跑java\ tomcat内存无限增长
- 2、AP上线的那些事儿(1)capwap建立过程、设备初始化以及二层上线
- 必读的AI和深度学习博客
- 计算机主机显卡安装,电脑如何安装独立显卡|电脑安装独立显卡的方法
- javaweb mysql购物车_java web开发之实现购物车功能
- python3数据经base64解码后带b'的解决办法
- 实现选择器多选依次下发
- 期货交易怎么买空(期货怎么买做空)
- 软件测试 | 手把手教你如何使用 Fiddler 抓包工具(电脑+手机端)