[嵌入式软件][启蒙篇][仿真平台] STM32F103实现定时器

[嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

文章目录

  • 一、定时器
    • (1) 简介
      • STM32定时器计算公式
    • (2) 示例代码(基本定时功能)
    • (3) 仿真效果 (基本定时功能)
    • (4) 示例代码(PWM 呼吸灯)
    • (5) 仿真效果 (PWM 呼吸灯)

一、定时器

(1) 简介

  1. 基本定时功能:1秒钟进入定时器中断干一件事,类似手机设置闹钟。
  2. 输入捕获功能:记录车轮滚动次数。
  3. 输出比较功能:生成精确的周期性信号或触发特定时序的操作
  4. PWM生成功能:用于控制电机速度、LED亮度调节,风扇风速调节等等。
  5. 编码器接口功能:旋转按钮、鼠标滚轮等等。
  6. 高级定时功能:实现更复杂的定时和PWM应用。

STM32定时器计算公式

先上公式:
Tout = ((arr+1)*(psc+1))/Tclk ;
其中:
Tclk:定时器的输入时钟频率(单位MHZ)
Tout:定时器溢出时间(单位为s)

例如:
TIM1_Init();
TIM_Period = arr; eg;9
TIM_Prescaler = psc; eg:7199

以STM32F103ZET6为例,其时钟工作频率为72MHZ,即:
Tout = ((9+1)×(7199+1))/72000000 = 0.001s = 1ms

(2) 示例代码(基本定时功能)

#include "sys.h"
#include "stm32f10x_conf.h"
#include "delay.h"
#include "led.h"
#include "usart.h"
#include "tim.h"
#include <stdint.h>
#include <stdio.h>uint32_t cnt = 0;
void TIM1_UP_IRQHandler(void) {cnt++;if (cnt >= 100000) { // 实际计数1000次,由于仿真时间不准确,所以这里写100000cnt = 0;LED = !LED;}
}int main() {// LED初始化LED_Init();//串口初始化uart_init(115200);// 初始化定时器1TIM1_Init();while(1) {}
}

(3) 仿真效果 (基本定时功能)

在这里插入图片描述

(4) 示例代码(PWM 呼吸灯)

todo

(5) 仿真效果 (PWM 呼吸灯)

todo

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

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

相关文章

修改Linux 分区 UUID

注意事项修改磁盘 uuid 的时候&#xff0c;磁盘不能被挂载需要先卸载 #/dev/sdb5 硬盘设备分区名称 sudo umount /dev/sdb5 生成UUID的命令[不适合NTFS nfs等windows格式] uuidgen 查看硬盘分区设备名字以及UUID的命令 blkid 修改 exit 2 3 4 #!/bin/bash MY_UUID$(uuidge…

美易makeasy平台:小米汽车雄心勃勃

正文&#xff1a; 在当今这个科技飞速发展的时代&#xff0c;不断有企业家提出宏伟的目标&#xff0c;引领行业向前迈进。近日&#xff0c;小米集团创始人雷军在社交平台上转发央视财经关于小米汽车的报道&#xff0c;并宣布了一个令人瞩目的目标&#xff1a;通过15到20年的不…

【GitHub项目推荐--12306 抢票助手 python】【转载】

这个项目名很干脆&#xff0c;不知道以为是 12306 网站的源码&#xff0c;其实不是这是全 GitHub最德高望重的抢票小助手&#xff0c;功能一直在更新&#xff0c;且现已支持 Python 3.6 以上版本。 开源地址&#xff1a;https://github.com/testerSunshine/12306

利用GPU加速自定义风格图像生成-利用GPU加速结合了ControlNet/ Lora的Stable Diffusion XL

点击链接完成注册&#xff0c;参加本次在线研讨会 https://www.nvidia.cn/webinars/sessions/?session_id240124-31319 随着AI技术的发展, 数字内容创建业务也变得越来越火热。生成式AI模型的发布, 让我们看到了人工智能在各行各业的潜力。您只需要用语言简单描述自己希望看…

【Java】Maven的安装与配置

初识Maven Maven是专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#xff1a; 提供了一套标准化的项目结构 提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c;打包&#xff0c;发布……&#xff09; 提供了一套依赖管理机制 标准化的…

质疑鸿蒙系统的是什么人群?为什么要杠

《HarmonyOSNEXT星空版》已堵住大部分人质疑的嘴。就在本月1月18&#xff0c;华为鸿蒙生态千帆启航仪式正式&#xff0c;HarmonyOSNEXT鸿蒙星河版发布&#xff1a;全面自研。 架构层面&#xff0c;HarmonyOSNEXT不依赖传统的Unix内核和Linux内核&#xff0c;而是实现了AI大模型…

《高教学刊》是什么级别的期刊?是正规期刊吗?是核心期刊吗?

​标题解答 1、《高教学刊》是什么级别的期刊&#xff1f; 省级 2、《高教学刊》是核心期刊吗&#xff1f; 不是&#xff0c;只是封面有核心字样 《高教学刊》刊发高等教育教学与高教理论研究成果&#xff0c;交流高校教学与建设的改革措施和实践经验&#xff0c;探索高等教…

每天五分钟计算机视觉:掌握迁移学习使用技巧

本文重点 随着深度学习的发展,迁移学习已成为一种流行的机器学习方法,它能够将预训练模型应用于各种任务,从而实现快速模型训练和优化。然而,要想充分利用迁移学习的优势,我们需要掌握一些关键技巧。本文将介绍这些技巧,帮助您更好地应用迁移学习技术。 迁移学习的关键…

LeetCode每日一题 | 670. 最大交换

文章目录 题目描述问题分析程序代码 题目描述 原题链接 给定一个非负整数&#xff0c;你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 问题分析 由于至多交换一次数字中的任意两位。 因此&#xff0c;我们只需要从右往左遍历&#xff08;从个位开始&#xff0…

高客单价企业必读:私域运营趋势分析与实操技巧

一、深入挖掘&#xff1a;场景洞察的新维度 当我们收到销售的群发信息时&#xff0c;通常会感到被打扰或骚扰&#xff0c;这是因为这些信息通常是基于广泛的受众群体发送的&#xff0c;缺乏针对个体消费者的定制化和个性化。这种缺乏个性化的沟通方式很容易被消费者视为不必要…

Temu活动库存设置多少合适,Temu活动要押金吗?-站斧浏览器

Temu活动库存设置多少合适&#xff1f; 对于Temu活动库存的设置&#xff0c;并没有固定的标准。其设置应根据商品的特性、市场需求、以及您的销售目标等因素进行综合考虑。然而&#xff0c;以下是一些建议&#xff0c;可以帮助您做出决策&#xff1a; 商品特性&#xff1a;某…

C++中命名空间、缺省参数、函数重载

目录 1.命名空间 2.缺省参数 3.函数重载 1.命名空间 在C中定义命名空间我们需要用到namespace关键字&#xff0c;后面跟上命名空间的名字&#xff0c;结构框架有点类似结构体&#xff08;如图所示&#xff09; 上面的代码我一一进行讲解&#xff1a; 1.我们先来说第三行和main函…

MAXWELL

MAXWELL 一、maxwell是什么 maxwell 官网地址&#xff1a;http://maxwells-daemon.io/ 因为官网是纯英文的&#xff0c;倒是不难懂&#xff0c;但总觉得写的略粗糙&#xff08;也可能笔者英文水平确实拉胯&#xff0c;有待提高&#xff09;。所以还是自己百度了一下。 当my…

测试必须要知道的四个主要阶段

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

力扣hot100 反转链表 指针 递归 一题多解

Problem: 206. 反转链表 文章目录 思路&#x1f496; 迭代 双指针&#x1f496; 递归 思路 &#x1f468;‍&#x1f3eb; 大佬题解 &#x1f496; 迭代 双指针 ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( 1 ) O(1) O(1) /*** Definition for …

LLM RAG 多种方式装载LLM的实践

一、大模型系统中检索增强生成&#xff08;RAG&#xff09;的意义 当前大模型在处理特定领域或者高度专业化的查询时表现出知识缺失&#xff0c;当所需信息超出模型训练数据范围或需要最新数据时&#xff0c;大模型可能无法提供准确答案。基于行业SOP、行业标准、互联网实时信…

C语言静态链表的实现

在静态链表中&#xff0c;元素之间按照顺序存储在数组中&#xff0c;数组中的每个元素都包含两个部分&#xff1a;数据部分和游标部分。数据部分用于存储元素的值&#xff0c;游标部分用于指示下一个元素的索引位置。这种结构使得在插入和删除操作时&#xff0c;只需要修改游标…

【Android 10】 BatteryController

学习了一下电池的相关模式&#xff0c;也就是它的观察者模式&#xff0c;先附上图 图应该挺清晰的&#xff0c;BatteryControllerImpl就是被观察者&#xff0c;BatteryControllerImpl重写了CallbackController的两个方法用于添加或移除观察者。 void addCallback(T listener);…

vivado 预设文件、IP设置(_P)、用户参数、以太网时钟处理、GT位置限制、当前可识别板的IP列表

了解预设文件 预设文件有助于在特定配置中自定义IP核心。PS7、axi_emc和当linear_flash或DDR3_SDRAM 界面是在Vivado IP集成商的Board选项卡中选择的。预设文件使用XML格式。preset_file是为特定的Board文件定义的&#xff0c;可以是用于将预设应用于多个IP。 <ip_presets…

UG制图-视图与投影

当我们进入图纸页后&#xff0c;我们需要对产品进行投影然后进行标注 注意&#xff1a;如果是从零件3D中直接进入制图&#xff0c;默认情况下图框所在的图层是不显示的&#xff0c;我们可以通过菜单或者快捷键ctrl L进入图层设置模块&#xff0c;将图层170和173勾选为显示 我…