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); //清空计数标志	
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue如何动态加载显示本地图片资源

在实际开发中&#xff0c;根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答&#xff1a;为什么vite项目不可以用require&#xff1f; 原因在于&#xf…

vue项目设置的端口号运行后会自动加一问题解决

vue项目设置的端口号运行后会自动加一问题解决 主要原因是之前运行项目后没有完全的关闭服务&#xff0c;导致再次运行项目端口号被占用&#xff0c;自动加一&#xff01; 问题解决 打开任务管理器&#xff0c;在进程中找到node相关进程&#xff0c;右键结束任务

长期有效的文本二维码怎么生成?将文字做成二维码只需3步

现在经常会在扫描二维码的时候&#xff0c;发现很多的二维码种会展现文字的内容&#xff0c;比如常见的有物品信息、个人信息、信件等等。通过生成二维码的方式&#xff0c;来让其他人扫码获取内容&#xff0c;这种方式可以有效地降低成本&#xff0c;而且获取内容的方式也更加…

HDFS中常用的Shell命令 全面且详细

HDFS中常用的Shell命令目录 一、ls命令 二、mkdir 命令 三、put命令 四、get命令 五、mv命令 六、rm命令 七、cp命令 八、cat命令 前言 安装好hadoop环境之后&#xff0c;可以执行hdfs相关的shell命令对hdfs文件系统进行操作&#xff0c;比如文件的创建、删除、修改文…

企微hook框架

https://wwm.lanzoum.com/ipUTp1ot1twh 密码:hvev 免费的企微框架 支持文本消息&#xff0c;图片消息&#xff0c;视频消息&#xff0c;文件消息。 其他可自行下载测试。 有兴趣可以进群交流。720192224 BOOL WxWorkSendData(string data) { WX_GETOBJDATA ob…

Linux课程三课---Linux开发环境的使用(yum的相关)

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

前端基础自学整理|HTML + JavaScript + DOM事件

目录 一、HTML 1、Html标签 2、Html元素 3、基本的HTML标签 二、CSS 样式 层叠样式表 三、JavaScript 使用示例 四、HTML DOM 通过可编程的对象模型&#xff0c;javaScript可以&#xff1a; window document 1、查找HTML元素 2、操作HTML元素 获取元素的属性 四…

基于Java jsp+mysql+Spring的汽车出租平台租赁网站平台设计和实现

基于Java jspmysqlSpring的汽车出租平台租赁网站平台设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留…

使用JDBC操作数据库(IDEA编译器)

目录 JDBC的本质 ​ JDBC好处 JDBC操作MySQL数据库 1.创建工程导入驱动jar包 2.编写测试代码 ​相关问题 JDBC的本质 官方(sun公司) 定义的一套操作所有关系型数据库的规则&#xff0c;即接口各个数据库厂商去实现这套接口&#xff0c;提供数据库驱动jar包我们可以使用这…

【数据库】达梦数据库DM8开发版安装

目录 一、达梦数据库概述 1.1 达梦数据库简介 1.2 产品特性 1.3 产品架构 二、安装前准备 2.1 新建 dmdba 用户 2.2 修改文件打开最大数 2.3 挂载镜像 2.4 新建安装目录 2.5 修改安装目录权限 三、数据库安装 3.1 命令行安装 3.2 配置环境变量 四、配置实例 4.1…

离散数学(一) 集合

属于关系 表示 枚举法; 叙述法; 文氏图法 基数 空集 全集 全集是相对唯一的

LaunchPad 市场的复苏,Penpad 成新兴生力军

以 Fair Launch 为主要启动方式的铭文市场的爆发&#xff0c;推动了 LaunchPad 市场的复苏&#xff0c;绝多数所铭文项目都能通过 Fairr Launch 的方式筹集资金实现启动&#xff0c;该赛道的爆发不仅推动了数百亿美元的热钱开始在链上不断涌动&#xff0c;同时也进一步形成了新…

智慧工地uniapp项目管理系统源码

目录 智慧工地的核心 智慧工地特点 智慧工地的优势 智慧工地应用场景 智慧工地平台---项目版&#xff08;端&#xff09; 智慧工地数字栾生平台 三位一体全数据贯通 智慧工地是指应用物联网、大数据、云计算、人工智能等新兴技术&#xff0c;对建筑工地进行数字化、信息…

Maven的环境搭建

前提: 安装 jdk Maven 工作时需要通过网络下载各种插件以完成任务&#xff0c;因此应保证网络的通 畅。 1,下载maven服务器 官网:http:// maven .apache. org 下载如图 2,安装,配置Maven 点击下载二进制的 apache-maven -3.6.0-bin.zip 进行解压&#xff0c;”然后在系统环境…

【鸿蒙 HarmonyOS 4.0】网络请求

一、介绍 资料来自官网&#xff1a;文档中心 网络管理模块主要提供以下功能&#xff1a; HTTP数据请求&#xff1a;通过HTTP发起一个数据请求。WebSocket连接&#xff1a;使用WebSocket建立服务器与客户端的双向连接。Socket连接&#xff1a;通过Socket进行数据传输。 日常…

万字干货-京东零售数据资产能力升级与实践

开篇 京东自营和商家自运营模式&#xff0c;以及伴随的多种运营视角、多种组合计算、多种销售属性等数据维度&#xff0c;相较于行业同等量级&#xff0c;数据处理的难度与复杂度都显著增加。如何从海量的数据模型与数据指标中提升检索数据的效率&#xff0c;降低数据存算的成…

无线充电器沦为帮凶,不仅操纵语音助手,还能烧毁手机

据BleepingComputer消息&#xff0c;佛罗里达大学和 CertiK的一项学术研究表明&#xff0c;名为“VoltSchemer”的新攻击利用电磁干扰&#xff0c;不仅可以让现成的无线充电器操纵智能手机的语音助手&#xff0c;还能够对设备以高热的形式进行物理破坏。 这种近乎有些科幻的方…

干货分享丨我用过超有效的英语学习资料

这两天陈楚都提到了精读《经济学人》的事情&#xff0c;我来谈谈自己的感想吧。 学习本身就是反人性的事情&#xff0c;所以别指望世上有什么超牛的技巧可以七天精通外国语言。 当然了&#xff0c;随着现代技术的发展&#xff0c;这个愿望还真有可能实现。 前段时间&#xff0c…

Aigtek高压放大器是什么东西做的

在许多电子应用中&#xff0c;需要将低电压信号放大到较高电压以满足特定的需求。为了实现这个目标&#xff0c;高压放大器被广泛采用。高压放大器是一种专用电子设备&#xff0c;使用特定的电路和器件来增益输入信号的电压。它通常由以下几个主要组成部分构成。 电源供应 高压…

bugku3

前女友 md5 进去又是讴歌乱进的东西 源代码 看到code.txt,访问一下 <?php if(isset($_GET[v1]) && isset($_GET[v2]) && isset($_GET[v3])){$v1 $_GET[v1];$v2 $_GET[v2];$v3 $_GET[v3];if($v1 ! $v2 && md5($v1) md5($v2)){if(!strcmp($v3,…