STM32-TIM4-定时器中断

2023-10-28

#include "project.h"
#include "timer.h"
//TIM4_Init(2000 ,72);//定时2ms
/*
	定时器中断的定时时间设定
	定时器只需要配置时钟、TIM和NVIC即可
*/
void TIM4_Init(u16 period, u16 prescaler)
{
	NVIC_InitTypeDef NVIC_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);		//使能TIM4时钟
	
	NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;				//TIM4中断
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;	//先占优先级0级
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;			//从优先级0级
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;				//IRQ通道被使能
	NVIC_Init(&NVIC_InitStructure);								//根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
	
	TIM_TimeBaseStructure.TIM_Period = period-1;				//总的值设置为0xFFFF,设定计数器自动重装值
	TIM_TimeBaseStructure.TIM_Prescaler = prescaler-1;			//预分频器
	TIM_TimeBaseStructure.TIM_ClockDivision = 0;				//设置时钟分割:TDTS = Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;	//TIM向上计数模式
	TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);				//根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
	
	TIM_Cmd(TIM4, ENABLE);										//开启定时器
	TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);					//开启定时器更新中断
}

//定时器4中断服务程序	 
void TIM4_IRQHandler(void)
{
	static u16 tmr200ms = 0;
	static u16 tmr1s =0;
	if(TIM_GetITStatus(TIM4, TIM_IT_Update) == SET) 			//溢出中断
	{
		TIM_ClearITPendingBit(TIM4, TIM_IT_Update);				//清除中断标志位
	
	}
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32-TIM4-定时器中断 的相关文章

  • 处理器指令周期执行时间

    我的猜测是 no operation 内在 ARM 指令应花费 1 168 MHz 来执行 前提是每个NOP在一个时钟周期内执行 我想通过文档验证这一点 有关处理器指令周期执行时间的信息是否有标准位置 我试图确定 STM32f407IGh6
  • 如何更改闪存的起始地址?

    我正在使用 STM32F746ZG 和 FreeRTOS Flash的起始地址是0x08000000 但我想把它改成0x08040000 我通过谷歌搜索了这个问题 但没有找到解决方案 我更改了链接器脚本 如下所示 MEMORY RAM xr
  • 在地址“0xXXXXXX”处中断,没有可用的调试信息,或在程序代码之外

    配置 使用 Nucleo L476RG 使用 GNU ARM Eclipse 我从 STM32CubeMX 生成了一个极简代码 我已经在我的板载 ST Link 中刷新了 J link 驱动程序 一直在尝试为我的代码运行调试器 但我的程序计
  • 在 MCU 内部 FLASH 中从一个固件跳转到另一个固件

    我目前正在开发针对 STM32F030C8 的引导加载程序固件应用程序 我在分散文件中指定引导加载程序应用程序将占用主内存位置 0x08000000 到 0x08002FFF 扇区 0 到扇区 2 我还编写了一个主固件应用程序 存储在0x0
  • STM32 F072上的软件如何跳转到bootloader(DFU模式)?

    STM32应用笔记2606对此进行了讨论 但没有简单的代码示例 该答案已使用 IAR EWARM 在 STM32F072 Nucleo 板上进行了测试 这个答案使用 STM32标准外设库 仅此而已 请注意 验证您是否成功进入引导加载程序模式
  • 优化 ARM Cortex M3 代码

    我有一个 C 函数 它尝试将帧缓冲区复制到 FSMC RAM 这些函数将游戏循环的帧速率降低至 10FPS 我想知道如何分析反汇编的函数 我应该计算每个指令周期吗 我想知道CPU把时间花在哪里 在哪个部分 我确信该算法也是一个问题 因为它的
  • 134-基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真+源程序...

    资料编号 134 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 ds1302时钟 DHT11温湿度 电机 蜂鸣器 制作一个基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真 2 通过DH
  • 138-基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真+源程序

    资料编号 138 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 LED灯 蜂鸣器 电位器 制作一个基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真 2 通过DHT1
  • 137-基于stm32单片机智能保温杯控制装置Proteus仿真+源程序

    资料编号 137 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DS18B20传感器 电机 制作一个基于stm32单片机智能保温杯控制装置Proteus仿真 2 通过DS18b20传感器检测当前保温杯水的温度 并且
  • 匹配 STM32F0 和 zlib 中的 CRC32

    我正在研究运行 Linux 的计算机和 STM32F0 之间的通信链路 我想对我的数据包使用某种错误检测 并且由于 STM32F0 有 CRC32 硬件 并且我在 Linux 上有带有 CRC32 的 zlib 所以我认为在我的项目中使用
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • 硬件基础-电容

    电容 本质 电容两端电压不能激变 所以可以起到稳定电压作用 充放电 电容量的大小 想使电容容量大 使用介电常数高的介质 增大极板间的面积 减小极板间的距离 品牌 国外 村田 muRata 松下 PANASONIC 三星 SAMSUNG 太诱
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • Freertos低功耗管理

    空闲任务中的低功耗Tickless处理 在整个系统运行得过程中 其中大部分时间都是在执行空闲任务的 空闲任务之所以执行 因为在系统中的其他任务处于阻塞或者被挂起时才会执行 因此可以将空闲任务的执行时间转换成低功耗模式 在其他任务解除阻塞而准
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • 从没有中断引脚并且在测量准备好之前需要一些时间的传感器读取数据的最佳方法

    我正在尝试将压力传感器 MS5803 14BA 与我的板 NUCLEO STM32L073RZ 连接 根据 第 3 页 压力传感器需要几毫秒才能准备好读取测量值 对于我的项目 我对需要大约 10 毫秒来转换原始数据的最高分辨率感兴趣 不幸的
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板

随机推荐

  • 软件工程——第11章面向对象设计知识点整理

    本专栏是博主个人笔记 主要目的是利用碎片化的时间来记忆软工知识点 特此声明 文章目录 1 什么是面向对象设计 OOD 2 优秀设计的主要特点是
  • java的集合进阶学习

    1 集合类 集合类的特点 提供一种存储空间可变的存储模型 存储的数据容量可以随时发生改变 2 集合体系结构 3 Collection集合 Collection集合常用方法 Collection集合的遍历 4 List集合特点 LinkedL
  • Moka 发布行业首个 AI 原生 HR SaaS 产品 “Moka Eva”,全面布局 AGI 时代

    2023 年 6 月 28 日 Moka 在北京召开 2023 夏季新品发布会 Moka CEO 李国兴发布了 Moka 首个 AI 原生 HR SaaS 整体解决方案以及面向 AGI 时代的 AI HR 伙伴 Moka Eva 这是 Mo
  • 微信小程序-毕业设计完整项目介绍(微信小程序+Java后台SSM框架)

    基于微信小程序的培训机构系统 前言 该系统作为本科毕业设计 可能还有很多的不足 只是当时做这个系统的时候 由于需要使用java语言作为后端实现与微信小程序界面数据交互 看遍网上很多的案例基本后台都是php语言用于编写接口 几乎没找到过jav
  • 服务器系统如何账务处理,云服务器的账务处理

    云服务器的账务处理 内容精选 换一换 单独购买的云硬盘为数据盘 可以在云硬盘列表中看到磁盘属性为 数据盘 磁盘状态为 可用 此时需要将该数据盘挂载给云服务器使用 本章节指导用户挂载共享云硬盘 若云硬盘无法挂载至云服务器 处理方法请参见云硬盘
  • servlet容器_简述Servlet与Servlet容器

    1 什么是Servlet Java Servlet是运行在web服务器或者应用服务器上的程序 它是作为来自WEB浏览器或者HTTP客户端的请求 与HTTP服务器上的数据库或者应用程序之间的中间层 2 Servlet架构 3 Servlet接
  • 树莓派配置WIFI

    在命令行输入 sudo nano etc wpa supplicant wpa supplicant conf 在文件最后中添加 network ssid WIFI名称 psk wifi密码
  • 深入剖析阻塞式socket的timeout

    1 前言 网络编程中超时时间是一个重要但又容易被忽略的问题 对其的设置需要仔细斟酌 本文讨论的是socket设置为阻塞模式 如果socket处于阻塞模式运行时 就需要考虑处理socket操作超时的问题 所谓阻塞模式 是指其完成指定的操作之前
  • 【Vue基础】Vuex全局管理的基本代码结构及其使用

    Vuex全局管理的基本代码结构及其使用 一 代码结构及其使用 1 state 提供唯一的公共数据源 组件访问 state 中数据的第一种方式 this store state 全局数据名称 组件访问 state 中数据的第二种方式 mapS
  • 逻辑回归与线性回归的区别与联系

    逻辑回归与线性回归都属于广义线性回归模型 其区别与联系从以下几个方面比较 分类与回归 回归模型就是预测一个连续变量 如降水量 价格等 在分类问题中 预测属于某类的概率 可以看成回归问题 这可以说是使用回归算法的分类方法 输出 直接使用线性回
  • SElinux

    SElinux是一个linux安全增强功能 其允许用户和管理员对访问控制有更多的控制权 访问控制可以做到哪个用户可能访问哪些资源的级别 这些资源可以来自文件 标准的Linux存取控制 如文件权限 rwxr xr x 由用户或用户运行的程序修
  • Unity切换声音

    遇到了切换声音的问题 怕忘记写下笔记 public AudioClip Audios 声音的列表 private bool bool false 做点击那个音乐的判断 public void Press if bool false this
  • OpenCV识别数码管穿线法(进阶版)

    文章目录 一 基础版本 二 进阶一版 1 颜色分离改进 2 外轮廓识别圈出ROI 三 进阶二版 1 规则进阶 2 计算时间 3 统计最少出现的数字 4 代码Release 一 基础版本 https blog csdn net sandalp
  • 在 Jenkins CICD 管道中集成 ArcherySec + OWASP ZAP

    在 Jenkins CI CD 管道中集成 ArcherySec OWASP ZAP 参考 https blog archerysec com integrate archerysec owasp zap in jenkins cicd p
  • uniapp本地存储详解

    uniapp本地存储详解 前言 在开发uniapp应用时 我们常常需要使用本地存储来保存一些数据 比如用户登录信息 设置项等 使得应用能够在设备上保存和读取数据 以便提供更好的用户体验和离线功能支持 本文将简单介绍uniapp中的本地存储相
  • sklearn——随机森林RandomForestClassifier的参数含义

    n estimators 森林中决策树的数量 默认100 表示这是森林中树木的数量 即基基评估器的数量 这个参数对随机森林模型的精确性影响是单调的 n estimators越大 模型的效果往往越好 但是相应的 任何模型都有决策边界 n es
  • 数据库系统原理实验—SQL学习总结

    总结 一 CREATE 创建 1 创建模式 2 创建表 3 创建索引 4 创建视图 5 创建角色 二 INSERT 插入 1 插入信息到表里 三 ALTER 修改 1 修改表 四 SELECT 查询 1 查询指定列 2 查询经过计算的值 3
  • GLSL学习笔记

    From http apps hi baidu com share detail 19177385 GLSL语言内置的变量 包括内置的顶点属性 attribute 一致变量 uniform 易变变量 varying 以及常量 const 一
  • 论文阅读《Boros: Secure Cross-Channel Transfers via》

    文章目录 题目 Boros Secure Cross Channel Transfers via Channel Hub 1 介绍 2 背景及相关工作 3 构造思路 4 形式化描述 5 实施和评价 题目 Boros Secure Cross
  • STM32-TIM4-定时器中断

    include project h include timer h TIM4 Init 2000 72 定时2ms 定时器中断的定时时间设定 定时器只需要配置时钟 TIM和NVIC即可 void TIM4 Init u16 period u