22:【stm32】定时器三:输出比较

news2024/11/13 21:27:45

输出比较

  • 1、简介
  • 2、标准库编程

1、简介

通过CCR里面的值和计数器CNT里面的值进行比较,然后输出高电平/单片机,进而产生需要的信号。

在这里插入图片描述

如上图所示,预分频器71,则最小单元为1us,自动重装器为999,则周期为1ms,我们设定CCR的值为299,规定CCR<CNT时,输出比较器输出高电平,CCR>CNT时,输出低电平。则输出比较器就会输出周期为1ms,高电平为0.3ms,低电平为0.7ms的波形,即占空比为30%的PWM波形。

总结:波形周期 = 由预分频器和自动重装器决定。
占空比 = CCR/周期

我们观察输出比较器的内部结构如下:
在这里插入图片描述
模式选择:

在这里插入图片描述

极性选择:
在这里插入图片描述
走上面:极性不变。走下面:极性翻转。
OCx:总开关。
MOE:通道选择

2、标准库编程

在这里插入图片描述

实现:通过定时器TIM1的CH1的输出比较功能产生PWM波实现LED呼吸灯的效果
在这里插入图片描述
在这里插入图片描述

#include "stm32f10x.h"                  // Device header
#include "stm32f10x_pal.h"                  // Device header
#include <math.h>


void LED_Init(void);
void Time_Init(void);

int main(void)
{
	PAL_Init();
	LED_Init();
	Time_Init();
	while(1)
	{
		float t = PAL_GetTick() * 0.001;//获取当前的时间,然后转换为秒
		float duty = 0.5 + 0.5 * sin(0.6 *3.14 * t);//计算出占空比
		uint16_t ccr = duty * 1000;//通过占空比计算出CCR的值
		TIM_SetCompare1(TIM1, ccr);
	}
}

void LED_Init(void)
{
	//将PA8设置为复用推挽模式,
	//因为TIM1的CH1在PA8,我们通过PA8输出PWM波形实现呼吸灯
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽模式
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(GPIOA, &GPIO_InitStruct);
}

void Time_Init(void)
{
	//1. 使能挂载定时器TIM3的总线时钟
	RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1,ENABLE);//复位
	RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1,DISABLE);//复位
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//使能时钟
	
	//2. 使能ARR寄存器的预加载特性
	TIM_ARRPreloadConfig(TIM1,ENABLE);//打开预加载特性
	
	//3. 初始化时基单元,这些都是配置影子寄存器中
	TIM_TimeBaseInitTypeDef TIMInitStruct;
	TIMInitStruct.TIM_Prescaler = 71;//配置预分频器PSC
	TIMInitStruct.TIM_Period = 999;//配置自动重装寄存器ARR
	TIMInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//配置计数器为向上计数模式
	TIMInitStruct.TIM_RepetitionCounter = 0;//重复计数器为0
	TIM_TimeBaseInit(TIM1,&TIMInitStruct);
	
	//4. 初始化输出比较通道CH1
	TIM_OCInitTypeDef TIM_OCInitStruct;
	TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;//选择PWM1模式
	TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;//选择正极性
	TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;//使能开关
	TIM_OCInitStruct.TIM_Pulse = 0;//设置CCR的初值
	TIM_OC1Init(TIM1,&TIM_OCInitStruct);//选择CH1的输出比较
	
	//5. 闭合总开关
	TIM_CtrlPWMOutputs(TIM1,ENABLE);
	
	//6. 手动启动Update事件,这些都是配置影子寄存器中
	TIM_GenerateEvent(TIM1,TIM_EventSource_Update);
	
	//7. 使能定时器TIM3
	TIM_Cmd(TIM1,ENABLE);
}

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

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

相关文章

InternLM + LlamaIndex RAG 实践

1. 环境配置 首先创建一个虚拟环境 conda create -n llamaindex python3.10 为虚拟环境安装以下安装包 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia pip install einops pip install …

Midjourney提示词-动物系列-65

A super cute little anthropomorphic,sheep of the Chinese Zodiac, wearing berets ,in a Hanfu in red style,standing, eyes,cute tail,super realistic,super detail,luxurious,elegant,Unreal Engine,octane render, 8K,VRAY super realistic Pixar Style, Tiny cute…

百数功能插件技术解析:审批流程设置与数据填写便捷性探讨

低代码平台作为一种创新的开发工具&#xff0c;正逐渐受到企业的青睐。为了进一步提升用户体验&#xff0c;满足用户多样化的需求&#xff0c;百数低代码平台开通了“有问必答”板块。 问题1&#xff1a;功能插件到底有什么用&#xff1f;都用在哪些位置&#xff1f; 功能插件…

【大模型系列】Flash-VStream(2024.06)

● Paper&#xff1a;https://arxiv.org/pdf/2406.08085v1 ● Github&#xff1a;https://github.com/IVG-SZ/Flash-VStream?tabreadme-ov-file#structure ● HuggingFace&#xff1a;https://huggingface.co/spaces/IVGSZ/Flash-VStream-demo ● Author&#xff1a;Haoji Zha…

line-height的使用场景

line-height:字面含义为行高&#xff0c;行高有三部分组成&#xff0c;分为内容高度&#xff0c;上间距&#xff0c;下间距。 可以看到文本在div盒子中的默认位置是左上角。此时文字部分的行高只有内容高度在支撑&#xff0c;上间距和下间距都是0。鼠标在字体上滑动时的蓝色部…

【重点】人工智能大语言模型技术发展研究报告2024|附下载

人工智能作为引领新一轮科技产业革命的战略性技术和新质生产力重要驱动力&#xff0c;正在引发经济、社会、文化等领域的变革和重塑。 2023 年以来&#xff0c;以ChatGPT、GPT-4 为代表的大模型技术的出台&#xff0c;因其强大的内容生成及多轮对话能力&#xff0c;引发全球新…

第2章-06-Cookie在网站回话中的作用

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲,后续完整更新内容如下。 文章…

3.5mm耳机插头制作手机内录线电路图

1.背景 无人直播或录屏直播手机mic会对外界声音的录入&#xff0c;而且很嘈杂。 2.实现功能 手机酷狗播放音频&#xff0c;同时手机内打开录音软件录音&#xff0c;同一台手机操作。 3.电路图 接线分为2种&#xff0c;国标和美标&#xff0c;自己尝试&#xff0c;肯定有一…

链表OJ题——链表的中间节点

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 链表的中间节点 二、解题思路 三、解题代码

Python优化算法09——黏菌优化算法(SMA)

科研里面优化算法都用的多&#xff0c;尤其是各种动物园里面的智能仿生优化算法&#xff0c;但是目前都是MATLAB的代码多&#xff0c;python几乎没有什么包&#xff0c;这次把优化算法系列的代码都从底层手写开始。 需要看以前的文章可以参考&#xff1a;Python优化算法_阡之尘…

护眼台灯有辐射吗?三大劣质护眼台灯危害曝光!

护眼台灯有辐射吗&#xff1f;护眼台灯旨在提供便利、健康的光线环境&#xff0c;但作为光学测评师&#xff0c;我注意到一些低品质的护眼台灯可能存在严重问题。这些台灯如果使用劣质材料制造&#xff0c;在使用过程中可能会释放有害辐射&#xff0c;长期接触甚至可能引发黄斑…

AI副业:用百度文库AI,我也能轻松创建漫画、画本?

前言 作为一种受众广泛的艺术形式&#xff0c;漫画的影响力应该不需要我多说什么。 强烈的视觉化和叙事性&#xff0c;让漫画成为无数年轻读者的阅读启蒙&#xff0c;也让无数二十一世纪青年拥有了自己的「漫画梦」。可是要制作出一份能拿得出手的漫画谈何容易&#xff0c;先…

SpringCloud之一注册中心(Eureka)

一、Eureka概述 Eureka是Netflix公司开源的一个服务注册与发现的中间组件。 在微服务架构系统之中&#xff0c;我们经常提三个角色&#xff1a;注册中心 (Register)、服务提供者(Provider)、服务消费者(Consumer)。 1.注册中心&#xff1a;服务提供者可以将服务发布到注册中心…

<数据集>考场行为识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;2192张 标注数量(xml文件个数)&#xff1a;2192 标注数量(txt文件个数)&#xff1a;2192 标注类别数&#xff1a;2 标注类别名称&#xff1a;[cheating, good] 序号类别名称图片数框数1cheating128214412good1067…

边界dp注意重叠边界

前言&#xff1a;这个题目感觉不是简单的背包问题&#xff0c;因为我们这个是有限制的 想到了之前写的边界的dp&#xff0c;本来想定义二维dp&#xff0c;发现没必要二维dp&#xff0c;一维dp就够了&#xff0c;dp[i] 表示填充 1 - i 需要的最少的数量&#xff0c;符合子问题的…

Redis内存淘汰

Redis内存淘汰 Redis可以存储多少数据 maxmemory配置&#xff0c;默认是注释掉的。 #maxmemory <bytes>我们可以主动配置maxmemory&#xff0c;maxmemory支持各种单位&#xff0c;默认是字节 maxmemory 1024 maxmemory 1024KB maxmemory 1024MB maxmemory 1024GB当Re…

三大低速总线之一:UART

三大低速总线之一&#xff1a;UART 文章目录 三大低速总线之一&#xff1a;UART前言一、UART协议二、设计1.整体说明2.rx波形设计 三 程序实现 前言 三大低速总线&#xff1a;UART、IIC、SPI&#xff0c;其中IIC和SPI是同步通讯&#xff0c;UART是异步的。 优点&#xff1a; …

CSS\JS实现页面背景气泡logo上浮效果

效果图&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Bubble Logo…

Linux_at任务调度

目录 at定时任务 基本介绍 at命令格式 at命令选项 at时间定义 at任务调度实例 at定时任务 基本介绍 at是一次性的定时计划任务&#xff0c;默认atd守护进程每60秒检测作业队列&#xff0c;检查作业运行时间&#xff0c;时间与当前时间匹配则执行。 ps-ef指令检测当前在运…

如何使用ssm实现农家乐信息平台的设计与实现+vue

TOC ssm066农家乐信息平台的设计与实现vue 第1章 绪论 1.1 课题背景 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。所以各…