基于STM32F103的LED闪烁仿真-定时器中断方式

基于STM32F103的LED闪烁仿真

仿真软件:

       Proteus 8.17

编程软件:

       Keil 5

定时器简介:

高级控制定时器(TIM1和TIM8)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。

它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、

PWM、嵌入死区时间的互补PWM等)。

使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。

高级控制定时器(TIM1和TIM8)和通用定时器(TIMx)是完全独立的,它们不共享任何资源。它们可以同步操作。

TIM1和TIM8主要特性

TIM1和TIM8定时器的功能包括:

● 16位向上、向下、向上/下自动装载计数器

● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意

数值

● 多达4个独立通道:

─ 输入捕获

─ 输出比较

─ PWM生成(边缘或中间对齐模式)

─ 单脉冲模式输出

● 死区时间可编程的互补输出

● 使用外部信号控制定时器和定时器互联的同步电路

● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器

● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态

● 如下事件发生时产生中断/DMA:

─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)

─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

─ 输入捕获

─ 输出比较

─ 刹车信号输入

● 支持针对定位的增量(正交)编码器和霍尔传感器电路

● 触发输入作为外部时钟或者按周期的电流管理

本次实验仿真采用的TIM3定时器,16位自动装在模式,设定了一个1ms的定时器中断,用来精确定时来驱动LED的闪烁,避免使用阻塞式的延时来驱动LED。

电路介绍:

       由于是基础模版,所以电路较为简单,基本的复位电路加上时钟电路,时钟电路其实可有可无,因为STM32也有内部时钟,但是大家基本都用外部时钟,都用上STM32了,没必要省这点钱,哈哈哈~~

程序介绍:

       程序基于keil5开发,使用的是库函数开发,本次LED闪烁仿真延时采用的是定时器计数来确定时间,闪烁周期为1秒1次,也就是500ms亮500ms灭。

       STM32与51单片机不同,在使用GPIO时需要先使能对应的GPIO的时钟,然后设置对应的IO口的输入输出模式。本次仿真由于是驱动LED闪烁,所以将对应的IO口设置为推挽输出状态。

LED的IO口模式设置:

       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA的时钟

       GPIO_InitTypeDef GPIO_InitStruct;

       GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;

       GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;//PA0

       GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;     

       GPIO_Init(GPIOA,&GPIO_InitStruct);

       GPIO_SetBits(GPIOA,GPIO_Pin_0);

定时器初始化:

void TIM3_Int_Init(u16 arr,u16 psc)

{

  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

       NVIC_InitTypeDef NVIC_InitStructure;

       RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能

       //定时器TIM3初始化

       TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值      

       TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值

       TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim

       TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式

       TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位



       //中断优先级NVIC设置

       NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断

       NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级

       NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //从优先级3级

       NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能

       NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器



       TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断

       TIM_Cmd(TIM3, ENABLE);  //使能TIMx                               

}

主循环部分:

       仿真效果

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

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

相关文章

FastGPT学习(2)- 本地开发通过Navicat管理MongoDB、PostgreSQL数据库

1. 背景 前期已经完成FastGPT的本地化部署工作,通过Docker启动FastGPT的相关容器即可运行。(共6个容器) 2.本地化开发 2.1 前置依赖 2.2 源码拉取 git clone gitgithub.com:labring/FastGPT.git2.3 数据库管理 本地化运行的FastGPT使用…

007、链表的回文结构

0、题目描述 链表回文结构 1、法1 一个复杂的问题可以拆解成几个简单的问题,找中间节点和逆置链表(翻转链表)之前都做过。 class PalindromeList { public://1、找中间节点ListNode* FindMid(ListNode* A){if (A nullptr || A->next …

博客搭建之路:hexo搜索引擎收录

文章目录 hexo搜索引擎收录以百度为例 hexo搜索引擎收录 hexo版本5.0.2 npm版本6.14.7 next版本7.8.0 写博客的目的肯定不是就只有自己能看到,想让更多的人看到就需要可以让搜索引擎来收录对应的文章。hexo支持生成站点地图sitemap 在hexo下的_config.yml中配置站点…

‘perl‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

‘perl’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 明明已经根据教程安装了perl环境,但是在cmd中依赖报该错误,本章教程提供解决办法。 一、激活perl环境 state shell ActiveState-Perl-5.36.0此时输入perl -v 是可以直接输出perl版本号的。 二、找到perl的执…

跨域的几种情况和如何解决跨域问题

在网站开发中,经常会遇到跨域问题,下面总结一下集中常见的跨域问题。 1. 不同域名属于跨域,如:www.a.com 和www.b.com,另外www.a.com 和www.a.com.cn也属于不同域名。 2. 主域名和子域名(二级域名、三级域…

192×144像素是几寸照片?如何手机拍照制作

在数字摄影时代,像素是衡量照片质量的重要指标之一。那么,192144像素的照片相当于多少英寸呢?又如何使用手机拍摄并制作这样的照片呢?本文将为您解答。 首先,我们需要了解像素和英寸之间的关系。像素是图像的最小单位&…

分布式篇(分布式事务)(持续更新迭代)

一、事务 1. 什么是事务 2. 事务目的 3. 事务的流程 4. 事务四大特性 原子性(Atomicity) 一致性(Consistency) 持久性(Durability) 隔离性(Isolation) 5. MySQL VS Oracle …

14款被严重低估的安全红队测试工具推荐,网络攻防|网络安全必看的工具合集推荐!

大家好,我是小强 工具往往可以决定网络安全渗透测试或红队演练活动的成败。虽然Kali中的许多工具都已经过验证且稳定可靠,但并不能适合所有渗透测试场景。对于安全红队而言,需要在不同测试需求下,确保有足够的装备来实现测试目标…

洞见数据未来,StarRocks Summit Asia 2024 即将启幕!

在 AI 时代,我们需要怎样的数据基础软件? 数据量和数据类型的需求飞速上涨,我们不仅需要将历史上各种基础设施中的数据进行分析使用,还要关注性能、灵活性、性价比,以及确保单一可信数据源。这一切构成了当前大数据领…

三维管线管网建模工具MagicPipe3D V3.5.3

经纬管网建模系统MagicPipe3D,本地离线参数化构建地下管网三维模型(包括管道、接头、附属设施等),输出标准3DTiles、Obj模型等格式,支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析&…

喜报!腾讯云存储获第三届“鼎新杯”优秀案例!

引言 2024年9月24日-25日,由中国通信标准化协会主办、中国信息通信研究院(简称“中国信通院”)承办、中国通信企业协会支持的“2024数字化转型发展大会”在北京召开。大会公布了第三届“鼎新杯”数字化转型应用大赛案例评选结果。 腾讯云存…

预算不够,怎么跟KOL砍价?(内附砍价模板)

​在当今的数字营销时代,海外红人(KOL)的影响力不容小觑。他们的一篇帖子、一个视频,甚至是一张照片,都有可能为企业带来巨大的流量和销量。 当企业满怀希望地找到一位粉丝众多、影响力强的KOL,准备洽谈合作…

2024年双十一有什么必买好物推荐?双11最值得关注的宝藏好物分享

​随着2024年双十一购物狂欢节的到来,各种实用且富有创意的小物件成为了大家关注的焦点。在这场全民参与的购物盛宴中,一款既能满足日常需求又能提升生活便捷性的宝藏好物——充电宝,成为了许多人心目中的首选。无论是忙碌的上班族&#xff0…

【前端Vue学习笔记】组件注册方式 组件传递数据 组件事件 透传 插槽slot 组件生命周期 动态组件 异步组件 依赖注入 Vue应用

文章目录 组件注册方式全局注册全局注册的缺点推荐使用局部注册步骤 组件传递数据-Props步骤注意事项 组件传递多种数据类型组件传递Props效验默认值必选项注意警告 组件事件父组件代码子组件代码 组件之间传递数据的方案父传子子传父 组件事件配合v-model使用步骤:…

linux网络编程5——Posix API和网络协议栈,使用TCP实现P2P通信

文章目录 Posix API和网络协议栈,使用TCP实现P2P通信1. socket()2. bind()3. listen()4. connect()5. accept()6. read()/write(), recv()/send()7. 内核tcp数据传输7.1 TCP流量控制7.2 TCP拥塞控制——慢启动/拥塞避免/快速恢复/快速重传 8. shutdown()9. close()9…

【线下培训】龙信科技应邀参与了由教育部网络安全与执法虚拟教研室(中国刑事警察学院)举办的学术讲座

文章关键词:电子数据取证培训、产学研推进、手机取证、介质取证 2024年10月23日,龙信科技应邀参与了由教育部网络安全与执法虚拟教研室(中国刑事警察学院)举办的学术讲座。在这次学术交流中,我们公司的技术专家陈杰以…

Redis Search系列 - 第一讲 创建索引

目录 一、引言二、全文检索基本概念三、创建索引 一、引言 Redis Search 是 Redis 的一个模块,用于提供全文搜索和二级索引功能。它允许在 Redis 数据库中执行复杂的搜索查询,并支持多种数据类型和查询操作。以下是 Redis Search 的一些关键特性&#x…

学习threejs,使用canvas样式化粒子

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.PointCloud简介1.11 …

Vue3+ts+vite自动导入vue的依赖

Vue3tsvite自动导入vue的依赖 unplugin-auto-import 主要依赖 npm i -D unplugin-auto-import// vite.config.ts import AutoImport from unplugin-auto-import/viteexport default defineConfig({plugins: [AutoImport({ imports: ["vue", "vue-router"…

团体标准审查结果一般会有哪几种情况?

1. 通过: • 标准质量高:标准的内容符合国家法律法规和相关标准的要求,技术指标科学、合理、先进,具有较强的适用性和可操作性 • 材料完整规范:送审材料齐全,标准的格式、文本编写等符合规定,为…