关于STM32通用定时器更新事件中断

2023-10-27

 //定时器3中断服务程序 
 void TIM3_IRQHandler(void)
 {                 
  if(TIM3->SR&0X0001) //产生更新事件
  {
   LED1=!LED1;
   LED0=!LED0;                             
       
  TIM3->SR&=~(1<<0);//清除中断标志位     
 }
 //通用定时器中断初始化
 //这里时钟选择为APB1的2倍,而APB1为36M
 //arr:自动重装值。
 //psc:时钟预分频数
 //这里使用的是定时器3!
 void Timerx_Init(u16 arr,u16 psc)
 
  TIM3->SMCR&=0xfffffff8;   //从模式控制寄存器设置预分频时钟由内部时钟提供
  RCC->APB1ENR|=1<<1;       //TIM3时钟使能    
  TIM3->ARR=arr;            //设定计数器自动重装值 
  TIM3->PSC=psc;            //预分频器7200,得到10Khz的计数时钟,//CK_CNT=Fck_psc/([15:0]+1)
  TIM3->CR1|=1<<4;          //计数器向下计数
  TIM3->CR1|=1<<7;          //每一次更新事件(UEV)时,才把预装在寄存器的内容送到影子寄存器
  TIM3->CR1&=0xfffffffd;    //设置UDIS允许更新事件(UEV)
  TIM3->CR1&=0xfffffffb;   //设置更新请求源                
  TIM3->CR1|=0x01;          //使能计数器
  TIM3->DIER|=1<<0;         //允许更新中断          
  MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2         
 
 int main(void)
  
  Stm32_Clock_Init(9); //系统时钟设置72MHZ
 delay_init(72);      //延时初始化
 uart_init(72,9600);  //串口初始化
 LED_Init();      //初始化与LED连接的硬件接口
 Timerx_Init(5000,7199);//10Khz的计数频率,计数到5000为500ms      
 while(1)
 {
    delay_ms(200);
    TIM3->EGR|=0x0001;
 
 
 
 }
}


 

这样设置以后,个人做了测试,可以在计数器在计数到2000时,设置了TIM3->EGR|=0x0001;更新事件发生,并产生了更新事件中断,同时,对计数器重新初始化

 
 

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

关于STM32通用定时器更新事件中断 的相关文章

  • 如何更改闪存的起始地址?

    我正在使用 STM32F746ZG 和 FreeRTOS Flash的起始地址是0x08000000 但我想把它改成0x08040000 我通过谷歌搜索了这个问题 但没有找到解决方案 我更改了链接器脚本 如下所示 MEMORY RAM xr
  • 初始化 ST-Link 设备时出错 - 无法连接到设备

    我目前正在使用 ST Link 调试器对我的 STM32F3 Discovery 板进行编程 我使用的IDE是Atollic TrueStudio 5 5 2 现在我面临一个非常奇怪的问题 那就是我不断收到消息 初始化 ST Link 设备
  • 在地址“0xXXXXXX”处中断,没有可用的调试信息,或在程序代码之外

    配置 使用 Nucleo L476RG 使用 GNU ARM Eclipse 我从 STM32CubeMX 生成了一个极简代码 我已经在我的板载 ST Link 中刷新了 J link 驱动程序 一直在尝试为我的代码运行调试器 但我的程序计
  • GCC - 如何停止链接 malloc?

    我正在努力将我的代码缩减到最小的骨架大小 我使用的是只有 32k 闪存的 STM32F0 需要很大一部分闪存用于数据存储 我的代码已经有大约 20k 闪存大小 其中一些是由于使用了 STM32 HAL 函数 我可以在以后需要时对其进行解释和
  • 以字符串形式接收数字(uart)

    我正在尝试通过 uart 接收一个包装为字符串的数字 我发送数字 1000 所以我得到 4 个字节 空字符 但是 当我使用 atoi 将数组转换为数字并将整数与 1000 进行比较时 我并不总是得到正确的数字 这是我用于接收号码的中断处理函
  • 140-基于stm32单片机智能晾衣杆控制系统Proteus仿真+源程序

    资料编号 140 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 光敏传感器 蜂鸣器 LED灯 制作一个基于stm32单片机智能晾衣杆控制系统Proteus仿真 2 通过光敏传感器
  • 133-基于stm32单片机停车场车位管理系统Proteus仿真+源程序

    资料编号 133 一 功能介绍 1 采用stm32单片机 4位数码管 独立按键 制作一个基于stm32单片机停车场车位管理系统Proteus仿真 2 通过按键进行模拟车辆进出 并且通过程序计算出当前的剩余车位数量 3 将剩余的车位数量显示到
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • 毕设开题分享 单片机智能教室系统(智能照明+人数统计)

    1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 单片机智能教室系统 智能照明 人数统计 大家可用于 课程设计 或 毕业设计 项目分享 https gitee com feifei1122 simulation project
  • CMSIS & STM32,如何开始? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 STM32 上使用 CMSIS 启动项目 网上一搜 没找到具体的教程 有些使用 SPL 开始项
  • 特殊寄存器

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

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

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加

随机推荐

  • python操作redis

    目录 python操作redis 安装redis模块 基本链接 连接池连接 redis字符串操作 redis hash操作 redis 列表操作 redis 其它操作 redis管道 django中集成redis python操作redis
  • 为本地项目配置git地址,并推送到远程仓库

    1 进入该项目文件夹 cd Users kk Desktop project k demo 将上面项目路径换成你自己的项目路径 2 初始化git 使用git init 将该项目变成一个可以通过git管理的项目 git init 3 通过gi
  • vue-cli使用指南

    目录 vue全家桶 技术栈 使用vue cli搭建Vue项目 单页的编写 axios的使用 vuex的使用 vuex中数据的保留时间 axios的全局拦截 axios的跨域问题 全局常量 使用Mock模拟后端接口返回数据 嵌套路由 路由守卫
  • 95-38-030-Buffer-Java NIO中-关于DirectBuffer,HeapBuffer的疑问

    文章目录 1 说明 2 疑问 3 RednaxelaFX 1 说明 本文摘要 https www zhihu com question 57374068 2 疑问 Java NIO中 关于DirectBuffer HeapBuffer的疑问
  • CUDA的几种Synchronize

    首先对这三个函数做一下解释 cudaDeviceSynchronize 等待所有线程都处理完成 kernel function处理完成 用在cpu的c code中 cudaThreadSynchronize 功能和cudaDeviceSyn
  • Pycharm的使用技巧与效率提升

    总第010篇 本文主要梳理了pycharm在使用过程中的一些技巧 便于提升工作效率 pycharm主要分为两个版本 一个是专业版本 此版本功能强大 主要是为python和web开发者准备的 需要付费 另一个是社区版本 比较轻量级 主要是为p
  • 读别人写的代码 VS 自己写代码

    概述 专业程序员非常重要的一项技能是读别人写的代码 这项技能甚至比自己写代码更重要 分析 这让我想到很多程序员讨厌去阅读代码 来接受它吧 人人都喜欢编写代码 写代码是很有乐趣的事 但阅读代码却是一种困难的工作 它不仅仅繁重 而且很无聊 让我
  • 使用Docker进行模型部署

    文章目录 1 思路 2 实现步骤 2 1 数据 模型准备 2 2 镜像制作 2 3 使用 1 思路 因为多数公司正式集群都不能使用公网环境 对于模型部署比较麻烦 所以想这在公网环境下完成模型调试 然后根据相关环境和参数直接制作一个docke
  • C++中static_cast/const_cast/dynamic_cast/reinterpret_cast的区别和使用

    C风格的强制转换较简单 如将float a转换为int b 则可以这样 b int a 或者b int a C 类型转换分为隐式类型转换和显示类型转换 隐式类型转换又称为标准转换 包括以下几种情况 1 算术转换 在混合类型的算术表达式中 最
  • gsonformat java代码_插件GsonFormat快速實現JavaBean

    寫在前面的話 本文章只適合使用AndroidStudio的小伙伴觀看 還在糾結eclipse的小伙伴趕緊洗洗睡吧 最近看見一篇快速實現javaBean的屎丟丟插件 這是一個根據JSONObject格式的字符串 自動生成實體類參數 如果想要使
  • windows编程中wParam和lParam消息

    windows编程中wParam和lParam消息 1 WM PAINT消息 LOWORD lParam 是客户区的宽 HIWORD lParam 是客户区的高 2 滚动条WM VSCROLL或WM HSCROLL消息 LOWORD wPa
  • 【Vim】Vim 常用编辑操作

    目录 正则表达式 vim 命令 vim的工作模式 撤销修改 重做与保存 光标移动命令 文本插入操作 文本删除操作 文本复制 剪切与粘贴 文本的修改与替换 多窗口操作 正则表达式 简单地说 正则表达式是一种符号表示法 用于识别文本模式 在某种
  • 神经网络中epoch、batch、batch_size、epoch、iteration理解

    1 epoch 当一个完整的数据集通过神经网络一次并且返回一次的过程称为一个epoch 然而 当一个epoch对于计算机太过庞大时 就需要把它分成多个小块 2 batch 在不能将数据一次性通过神经网络的适合 就需要将数据集分成几个batc
  • 记录服务器上,不定时出现io.lettuce.core.RedisCommandTimeoutException: Command timed out after xxx millisecond(s)

    记录服务器上 不定时出现io lettuce core RedisCommandTimeoutException Command timed out after 12 millisecond s 日志 org springframework
  • E--释怀的RT--2023河南萌新联赛第(二)场:河南工业大学

    示例1 输入 5 0 1 0 0 10 输出 4 说明 前四个方格被最后一个心岩照亮 示例2 输入 5 0 1 0 0 1 输出 3 说明 第一个方格和第三个方格被第二个格子的心岩照亮 第四个方格被第五个格子的心岩照亮 一共有三个格子被照亮
  • SQLZOO习题(我的错题)

    SQLZOO习题 目录 SQLZOO习题 一 All the vowels 参考答案 备注 二 Nobel Quiz 解释 三 Knights of the realm 答案 备注 四 Chemistry and Physics last
  • shell转义,单引号与双引号,反撇号

    http www cnblogs com mydomain archive 2011 10 15 2213017 html 1 转义 单引号和双引号都能关闭shell对特殊字符的处理 不同的是 双引号没有单引号严格 单引号关闭所有有特殊作用
  • 我们的那些故事(写给1987—1990年出生的同学,希望您能够看看)

    花开无声 岁月无痕 突然回首 人生的旅途已经走了四分之一 我们这一辈 也就是96 97年开始上小学 02年上初中 05年上高中 07 08 09年上大学的 12年或者13年毕业的 我们知道的太多 看到了太多 听到了太多 新的 旧的 保守的
  • linux 查看内存 udimm rdimm,服务器UDIMM、LRDIMM、RDIMM三种内存如何区别

    随着应用程序的不断增长 内存被迫承担着更大压力 目前不管是服务器还是PC领域 DDR4内存技术依旧是主流 由于DDR4采用并行传输 为保证并行数据能有效传输 必须在内存条上下功夫 而在服务器领域 目前使用的内存条类型 DIMM 主要有三种
  • 关于STM32通用定时器更新事件中断

    定时器3中断服务程序 void TIM3 IRQHandler void if TIM3 gt SR 0X0001 产生更新事件 LED1 LED1 LED0 LED0 TIM3 gt SR 1 lt lt 0 清除中断标志位 通用定时器中