STM32F10X(Cortex-M3)系统定时器寄存器笔记和系统定时器精准延时函数

Cortex-M3系统定时器寄存器笔记和系统定时器精准延时函数

  • 简介
  • 系统定时器寄存器
    • STK_CTRL
    • STK_LOAD
    • STK_VAL
    • STK_CALIB
  • STM32F10X(Cortex-M3)精准延时函数

简介

在STM32F10X(Cortex-M3)除了通用定时器和看门狗定时器外,还有一个系统定时器(SysTick)
拿STM32F103C8T6来说,有7个定时器,3个通用定时器,1个高级定时器,2个看门狗定时器,最后还有一个24位倒计数器,也就是系统定时器
在这里插入图片描述
由于它没有像通用定时器和高级定时器的PWM或者其它功能,只能用来计数。所以通常用来计时,利用用它写精准延时函数。
因为这是Cortex-M3共有的,所以在STM32手册里是看不见系统定时器的寄存器。
在ST官网STM32F103C8T6的编程手册可以看见Cortex-M3的编程手册
在这里插入图片描述

系统定时器寄存器

STK_CTRL

在这里插入图片描述
SysTick control and status register,这个寄存器就是控制寄存器了。
COUNT FLAG就是看计数值计完没0还没计完 1记完了。
CLK SOURCE顾名思义就是时钟了,0就是AHB的时钟除以8,如果你AHB是72M,那么系统定时器就是9M。
TICK INT就是使能中断事件的,0不使能,1使能,使能完后应该要去NVIC里开启系统定时器的中断使能。
ENABLE就是使能计数了,1使能。

STK_LOAD

在这里插入图片描述
SysTick reload value register顾名思义就是加载计数值的寄存器,22位的。

STK_VAL

在这里插入图片描述
这个就是看现在计数值是多少的寄存器。

STK_CALIB

在这里插入图片描述
这个寄存器是或者定时器时钟/8的1ms的校准值的,比如72M/8=9M,1ms的计数值就是9000,那么TENMS得到的值就是9000。

STM32F10X(Cortex-M3)精准延时函数

代码如下,这是堵塞延时。

void delay_ms(uint32_t ms)
{SysTick->LOAD=ms*9000;//预装载值SysTick->CTRL |=(1<<0);//系统定时器开始计数while(!(SysTick->CTRL&(1<<16)));SysTick->CTRL&=~(1<<0); //系统定时器停止计数SysTick->CTRL&=~(1<<16); //清空计数标志
}void delay_us(uint32_t us)
{SysTick->LOAD=us*9;//预装载值SysTick->CTRL |=(1<<0);//系统定时器开始计数while(!(SysTick->CTRL&(1<<16)));SysTick->CTRL&=~(1<<0); //系统定时器停止计数SysTick->CTRL&=~(1<<16); //清空计数标志	
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/695783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6 | (一)ES6 新特性(上) | 尚硅谷Web前端ES6教程

文章目录 &#x1f4da;ES6新特性&#x1f4da;let关键字&#x1f4da;const关键字&#x1f4da;变量的解构赋值&#x1f4da;模板字符串&#x1f4da;简化对象写法&#x1f4da;箭头函数&#x1f4da;函数参数默认值设定&#x1f4da;rest参数&#x1f4da;spread扩展运算符&a…

干货分享 | TSMaster 序列发送模块在汽车开发测试中的应用

众所周知&#xff0c;序列发送模块可以不需要脚本代码实现测试中特定控制报文序列的发送&#xff0c;该模块多用于循环顺序控制的测试案例中。序列发送模块的常用场景&#xff0c;主要是针对一些新开发的产品需要通过该模块来验证产品功能等等。本文重点和大家分享一下关于TSMa…

力扣102 二叉树的层序遍历 Java版本

文章目录 题目描述思路代码 题目描述 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[…

辉辉数码:目前电视盒子哪个最好?目前性能最好的电视盒子

大家好&#xff0c;我是辉辉&#xff0c;上期测评发布后我收到了很多粉丝的反馈希望我这期能分享电视盒子推荐&#xff0c;看看目前电视盒子哪个最好。我购入了市面上最热门的十几款电视盒子对比配置、系统后整理了五款目前性能最好的电视盒子推荐给大家。 品牌型号&#xff1…

计算机网络-局域网和城域网(二)

1.局域网互联设备&#xff1a; 2层网桥&#xff08;生成树、源路由&#xff09;、3层交换机、路由器。网桥要求3层以上协议相同&#xff0c;1、2层协议不同可互联。 2.生成树网桥&#xff1a; 又叫透明网桥&#xff0c;IEEE802.1d&#xff0c;生成树算法。基本思想是在网桥之…

Spring Security学习(六)——配置多个Provider(存在两种认证规则)

前言 《Spring Security学习&#xff08;五&#xff09;——账号密码的存取》一文已经能满足一般应用的情况。但实际商业应用也会存在如下的情况&#xff1a;用户提交的账号密码&#xff0c;能在本地的保存的账号密码匹配上&#xff0c;或者能在远端服务认证中匹配上&#xff…

提示找不到msvcr110.dll怎么解决?这5个方法简单有效搞定

在计算机系统运行过程中&#xff0c;如果发现无法找到msvcr110.dll这个特定的动态链接库文件&#xff0c;通常会引发一系列问题和困扰。首先&#xff0c;这可能导致某些应用程序无法正常启动或运行&#xff0c;因为msvcr110.dll是许多基于Microsoft Visual C编译的应用程序所必…

如何使用Docker本地部署Jupyter+Notebook容器并结合内网穿透实现远程访问

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

新版Java面试专题视频教程——多线程篇①

新版Java面试专题视频教程——多线程篇① Java多线程相关面试题 0. 问题汇总0.1 线程的基础知识0.2 线程中并发安全 1.线程的基础知识1.1 线程和进程的区别&#xff1f;1.2 并行和并发有什么区别&#xff1f;1.3 创建线程的四种方式1.4 runnabl…

ES6 | (二)ES6 新特性(下) | 尚硅谷Web前端ES6教程

文章目录 &#x1f4da;迭代器&#x1f407;定义&#x1f407;工作原理&#x1f407;自定义遍历数据 &#x1f4da;生成器函数&#x1f407;声明和调用&#x1f407;生成器函数的参数传递&#x1f407;生成器函数案例 &#x1f4da;Promise&#x1f4da;Set&#x1f407;Set的定…

fastApi笔记05-路径参数和数值校验

使用Path可以对路径参数声明与Query相同类型的校验和元数据 from typing import Annotatedfrom fastapi import FastAPI, Path, Queryapp FastAPI()app.get("/items/{item_id}") async def read_items(item_id: Annotated[int, Path(title"The ID of the item …

微服务篇之限流

一、为什么要限流 1. 并发的确大&#xff08;突发流量&#xff09;。 2. 防止用户恶意刷接口。 二、限流的实现方式 1. Tomcat限流 可以设置最大连接数&#xff0c;但是每一个微服务都有一个tomcat&#xff0c;实现起来非常麻烦。 2. Nginx限流 &#xff08;1&#xff09;控…

假如C++进入Linux内核,那么需要做哪些改造?

假如C进入Linux内核&#xff0c;那么需要做哪些改造&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xf…

ChatGPT安卓版正式发布,附安装包,但有款手机无法使用

ChatGPT安卓版如约而至&#xff0c;OpenAI正式宣布该应用已在谷歌应用商店上架&#xff0c;用户可以免费下载&#xff0c;对话不限次数。 但是安卓版ChatGPT目前仅在美国、印度、孟加拉国和巴西提供下载&#xff0c;下周将会推广至更多国家。 网页端下载链接&#xff1a; http…

五、矩阵的运算

1、矩阵的加减: 前提:两个矩阵必须是同形矩阵。 矩阵加减具有交换律,矩阵矩阵相乘没有交换律。 计算结果:元素级运算。 2、矩阵的数乘: 计算结果:元素级运算。这里要区别与行列式的数乘。 3、矩阵与向量的乘法: 前提:矩阵的列数等于向量的行数。 计算方式:左列…

【Linux基础】vim、常用指令、组管理和组权限

Linux基础 1、目录结构2、vi和vim3、常用指令运行级别找回密码帮助指令时间日期指令搜索查找文件目录操作磁盘管理指令压缩和解压缩 4、组管理和组权限用户操作指令权限 1、目录结构 Linux的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录“/”&a…

C++之Easyx——图形库的基本功能(2):来点色彩

一、setbkcolor 函数定义 void EGEAPI setbkcolor(color_t color, PIMAGE pimg NULL); // 设置当前绘图背景色&#xff08;设置并做背景色像素替换&#xff09; 使用说明 void EGEAPI setbkcolor(颜色RGB, PIMAGE pimg NULL); // 设置当前绘图背景色&#xff08;…

备战蓝桥杯---动态规划(应用3之空间优化)

话不多说&#xff0c;直接看题&#xff1a; 我们不妨把问题抽象一下&#xff1a; 首先&#xff0c;我们由裴蜀定理知道如果两个数互质&#xff0c;那么axbyc一定有整数解&#xff08;只要c为1的倍数也就是整数&#xff09;&#xff0c;因此问题就转换为求选一些数使他们gcd1&a…

适用于 Linux、Windows 和 macOS 的免费 ONLYOFFICE 桌面应用程序

前言&#xff1a; 最近也是发现了一款特别好用的免费ONLYOFFICE 桌面应用程序忍不住分享给大家&#xff0c;这款编辑器能够打开、阅读和编辑多种文件类型&#xff0c;包括.docx文档、.pptx幻灯片和.xlsx表格等开放XML格式的Office文档。此外&#xff0c;ONLYOFFICE桌面编辑器还…

收入统计-嵌入式高级软件音频工程师

加我微信hezkz17&#xff0c;可申请进入数字音频系统研究开发交流答疑群&#xff0c;加群附加赠送 蓝牙耳机音频&#xff0c;DSP音频开发资料 1 固定工资收入 2 科技创业收入 3 总收入36K