STM32之17.PWM脉冲宽度调制

 一·LED0脉冲宽度调制在TIM14_CHI,先将LED(PF9)代码配置为AF推挽输出模式,将PF9引脚连接到TIM14,

 

#include <stm32f4xx.h>static GPIO_InitTypeDef GPIO_InitStruct;void Led_init(void)
{//打开端口F的硬件时钟,就是供电
//打开端口F的硬件时钟,就是供电RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//打开端口E的硬件时钟,就是供电RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);GPIO_InitStruct.GPIO_Pin   =  GPIO_Pin_9 ; 	//9 号引脚GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF; //GPIO_Mode_AF;//输出模式GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStruct.GPIO_Speed = GPIO_High_Speed;//高速,速度越高,响应越快,但是功耗会更高GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_NOPULL;//不使能上下拉电阻GPIO_Init(GPIOF,&GPIO_InitStruct);//将PF9引脚连接到TIM14GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_10 ; 	//9 10号引脚GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_OUT;//输出模式GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStruct.GPIO_Speed = GPIO_High_Speed;//高速,速度越高,响应越快,但是功耗会更高GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_NOPULL;//不使能上下拉电阻GPIO_Init(GPIOF,&GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_13 | GPIO_Pin_14; 	//9 10号引脚GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_OUT;//输出模式GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStruct.GPIO_Speed = GPIO_High_Speed;//高速,速度越高,响应越快,但是功耗会更高GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_NOPULL;//不使能上下拉电阻GPIO_Init(GPIOE,&GPIO_InitStruct);GPIO_WriteBit(GPIOF,GPIO_Pin_9,Bit_SET);GPIO_WriteBit(GPIOF,GPIO_Pin_10,Bit_SET);GPIO_WriteBit(GPIOE,GPIO_Pin_13,Bit_SET);GPIO_WriteBit(GPIOE,GPIO_Pin_14,Bit_SET);
}

 二·在配置TIM14定时器脉冲宽度

调动比较值1-100内,越小灯越亮

如果PWM信号的频率很高,比如大于80Hz,那么人眼就无法感知到灯的闪烁,而只能感知到灯的亮度。这时候,占空比越大,表示高电平的时间越长,灯就会越亮。

如果PWM信号的频率很低,比如小于50Hz,那么人眼就能感知到灯的闪烁,而不是灯的亮度。这时候,占空比越大,表示高电平的时间越长,灯就会闪烁得更明显。

void TIM14_init(void)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;TIM_OCInitTypeDef  TIM_OCInitStructure;//使能TIM14的硬件时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);//配置TIM14的定时时间TIM_TimeBaseStructure.TIM_Period = 100-1;  //自动重载,输出频率为100HzTIM_TimeBaseStructure.TIM_Prescaler = 2100-1;   //预分频值为8400    84000000/8400=10000(1S)TIM_TimeBaseStructure.TIM_ClockDivision = 0;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //从0开始计数,然后计数到TIM_Period这个值就触发中断TIM_TimeBaseInit(TIM14, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;		//PWM1的工作模式		TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//允许输出脉冲TIM_OCInitStructure.TIM_Pulse = 20;	//比较值80TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//有效状态为高电平//配置TIM3的中断触发:时间更新TIM_OC1Init(TIM14,&TIM_OCInitStructure);//使能TIM14工作TIM_Cmd(TIM14, ENABLE);}

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

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

相关文章

成都睿趣科技:抖音开网店前期的流程是什么

随着互联网的快速发展&#xff0c;电子商务成为了商业领域中的一大利器&#xff0c;而在电商领域中&#xff0c;抖音作为一个强大的平台&#xff0c;也吸引了众多商家的目光。然而&#xff0c;要在抖音上开设一家成功的网店&#xff0c;并不是一件简单的事情&#xff0c;需要经…

微服务基础知识

文章目录 微服务基础知识一、系统架构的演变1、单体应用架构2、垂直应用架构3、分布式SOA架构&#xff08;1&#xff09;什么是SOA&#xff08;2&#xff09;SOA架构 4、微服务架构5、SOA和微服务的关系&#xff08;1&#xff09;SOA&#xff08;2&#xff09;微服务架构 二、分…

More Effective C++学习笔记(4)

目录 条款16&#xff1a;谨记 80 - 20 法则条款17&#xff1a;考虑使用lazy evaluation&#xff08;缓式评估&#xff09;条款18&#xff1a;分期摊还预期的计算成本条款19&#xff1a;了解临时对象来源条款20&#xff1a;协助完成 “ 返回值优化 ”条款21&#xff1a;利用重载…

JDBC基础

文章目录 创建依赖基本步骤案例1. statement案例&#xff08;不常用&#xff09;&#xff1a;2.prepared 案例&#xff08;常用&#xff09;3.prepared curd 案例&#xff08;获取列信息&#xff09;5.事务一致性&#xff08;转账&#xff09; 创建依赖 各个版本有各个的依赖包…

决策树算法:随机森林民主算法【02/2】

决策树民主&#xff1a;随机森林算法 一、介绍&#xff1a; 记住您在阅读亚马逊上的所有评论后进行的最后一次购买&#xff0c;或者在查看 IMDb 评级后您观看的以前的电影。人类是社会动物&#xff0c;他人的意见和行为自然会影响我们。我们的决定在很大程度上取决于“群体智慧…

Matlab分割彩色图像

彩色图像 彩色图像除有亮度信息外&#xff0c;还包含有颜色信息。以最常见的RGB&#xff08;红绿蓝&#xff09;彩色空间为例来简要说明彩色图像&#xff1a; 彩色图像可按照颜色的数目来划分。例如&#xff0c;256色图像和真彩色图像&#xff08;2的16次方&#xff1d;21677…

智信数科SMS短信平台安装教程

智信SMS客户端下载 使用智信SMS短信平台前&#xff0c;需要前往公司官网或者百度网盘共享地址下载最新版本的短信平台。 下载地址一&#xff1a;公司官网 下载地址二&#xff1a;百度网盘共享&#xff08;推荐&#xff09; 智信SMS客户端安装 安装前&#xff0c;确保您已经正…

【MySQL系列】Select语句单表查询详解(二)ORDERBY排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Oracle的学习心得和知识总结(二十八)|Oracle数据库数据库回放功能之论文二翻译及学习

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《Oracle Database SQL Language Reference》 2、参考书籍&#xff1a;《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

私有化部署即时通讯平台,30分钟替换钉钉和企业微信

随着企业对即时通讯和协作工具的需求不断增长&#xff0c;私有化部署的即时通讯平台成为企业的首选。WorkPlus作为有10余年行业深耕经验与技术沉淀品牌&#xff0c;以其安全高效的私有化部署即时通讯解决方案&#xff0c;帮助企业在30分钟内替换钉钉和企业微信。本文将深入探讨…

adb 命令

1.adb shell dumpsys activity top | find "ACTIVITY" 查看当前运行的activity包名 2.adb shell am start -n 包名/页面名 打开应用的页面 3.查看将要启动或退出app的包名 adb shell am monitor 只有在启动或退出的时候才会打印 4.查看当前启动应用的包名 ad…

【动手学深度学习】--20.目标检测和边界框

文章目录 目标检测和边界框1.目标检测2.边界框 目标检测和边界框 学习视频&#xff1a;物体检测和数据集【动手学深度学习v2】 官方笔记&#xff1a;目标检测和边界框 在图像分类任务中&#xff0c;我们假设图像中只有一个主要物体对象&#xff0c;我们只关注如何识别其类别…

用Idea把SpringBoot项目打包镜像上传至docker

1、设置docker把2375端口开起来 命令查看docker装在哪里 vim docker.service 新增 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 2、配置Dockerfile 我在跟pom同一层 3、配置docker-maven-plugin <plugin><groupId>com.spotify</groupId><arti…

c语言调用mciSendString播放音乐

如下所示&#xff0c;这是一个使用c语言调用系统方法mciSendString()&#xff0c;让系统播放音乐的示例&#xff1a; baihuaxiang 代码&#xff1a; #include <graphics.h> #include <Windows.h> #include <mmsystem.h>#pragma comment(lib,"WINMM.LIB…

element-ui中的el-table合并单元格

描述&#xff1a; 在写项目的时候有时候会经常遇到把行和列合并起来的情况&#xff0c;因为有些数据是重复渲染的&#xff0c;不合并行列会使表格看起来非常的混乱&#xff0c;如下&#xff1a; 而我们想要的数据是下面这种情况&#xff0c;将重复的行进行合并&#xff0c;使表…

STM32设置为I2C从机模式(HAL库版本)

STM32设置为I2C从机模式&#xff08;HAL库版本&#xff09; 目录 STM32设置为I2C从机模式&#xff08;HAL库版本&#xff09;前言1 硬件连接2 软件编程2.1 步骤分解2.2 测试用例 3 运行测试3.1 I2C连续写入3.2 I2C连续读取3.3 I2C单次读写测试 4 总结 前言 我之前出过一篇关于…

XXX程序 详细说明

用于记录理解PC程序的程序逻辑 1、程序的作用 根据原作者的说明&#xff08;文件说明.txt&#xff09;&#xff0c;该程序 (PC.py) 的主要作用是提取某一个文件夹中的某个设备 (通过config中的信息看出来是Ag_T_8) 产生的日志文件&#xff0c;然后提取其中某些需要的数据&…

内网渗透神器CobaltStrike之权限提升(七)

Uac绕过 常见uac攻击模块 UAC-DLL UAC-DLL攻击模块允许攻击者从低权限的本地管理员账户获得更高的权限。这种攻击利用UAC的漏洞&#xff0c;将ArtifactKit生成的恶意DLL复制到需要特权的位置。 适用于Windows7和Windows8及更高版本的未修补版本 Uac-token-duplication 此攻…

Web3和去中心化:互联网的下一个演化阶段

文章目录 Web3和去中心化的定义Web3&#xff1a;去中心化&#xff1a; 为什么Web3和去中心化如此重要&#xff1f;数据隐私和安全&#xff1a;去中心化的创新&#xff1a;去除中间商&#xff1a; Web3和去中心化的应用领域去中心化金融&#xff08;DeFi&#xff09;&#xff1a…

Qt下使用ModbusTcp通信协议进行PLC线圈/保持寄存器的读写(32位有符号数)

文章目录 前言一、引入Modbus模块二、Modbus设备的连接三、各寄存器数据的读取四、各寄存器数据的写入五、示例完整代码总结 前言 本文主要讲述了使用Qt的Modbus模块来进行ModbusTcp的通信&#xff0c;实现对PLC的线圈寄存器和保持寄存器的读写&#xff0c;基于TCP/IP的Modbus…