当前位置: 首页 > news >正文

STM32F40EZT6 PWM可控制电压原理

PWM可控制电压原理

        主要通过PWM 输入模式根据控制单位时间内输出的平均电压,以调节电压大小。而PWM输出模式通过调节占空比,控制平均电压大小;

设置TIM为PWM输出模式

        第一步:时钟使能:

                                GPIO,TIM;

        第二步:设置引脚为复用模式

        第三步:复用为指定TIM的PWM输出模式

        第四步:定时器时基单元的配置

        第五步:配置定时器的输出比较功能

void timeer14PWM_init(){
//  开启时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);//设置PWM输出引脚位复用模式GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;GPIO_InitStruct.GPIO_Mode= GPIO_Mode_AF;GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Low_Speed;GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_Init(GPIOF,&GPIO_InitStruct);//设置配置GIPOGPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
//	设置分频 将84MH降为10000HzTIM_TimeBaseInitStruct.TIM_Prescaler=84-1;
//	设置计数模式往上加,还是往下减TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
//	设置自动复位计数器为10000,恰好为1秒,2000相当于0.2秒TIM_TimeBaseInitStruct.TIM_Period=2000-1;
//	设置通用定时器分频为1TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
//	初始化定时器TIM_TimeBaseInit(TIM14, &TIM_TimeBaseInitStruct);//设置寄存器模式TIM_OCInitTypeDef TIM_OCInitStruct;
//设置位PWM输出模式TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStruct.TIM_Pulse=100;TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_Low;TIM_OC1Init(TIM14, &TIM_OCInitStruct);//	开启定时器TIM_Cmd( TIM14, ENABLE);}

相关文章:

  • 61. 旋转链表、Leetcode的Python实现
  • IntelliJ IDEA快捷键sout不生效
  • 探索控制领域:从电视遥控器到自动驾驶【基础概念理解、应用实例】
  • Ubuntu 搭建 DHCP ivp6 server 步骤
  • 精品Python考研调配系统考试成绩招生调剂-爬虫可视化大屏
  • 华为OD机试 - 统计射击比赛成绩 - 逻辑分析(Java 2023 B卷 100分)
  • YOLOv7优化:独家创新(SC_C_Detect)检测头结构创新,实现涨点 | 检测头新颖创新系列
  • 14.k8s滚动发布方案
  • MySQL -- 内置函数
  • 【生物信息学】单细胞RNA测序数据分析:计算亲和力矩阵(基于距离、皮尔逊相关系数)及绘制热图(Heatmap)
  • Golang Web3钱包开发指南
  • Spring整合Mybatis
  • XAMPP的下载安装配置详细教程
  • 分享一下微信小程序里怎么开店
  • MySQL-Galera-Cluster集群详细介绍
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • egg(89)--egg之redis的发布和订阅
  • E-HPC支持多队列管理和自动伸缩
  • Git学习与使用心得(1)—— 初始化
  • interface和setter,getter
  • Intervention/image 图片处理扩展包的安装和使用
  • Invalidate和postInvalidate的区别
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript创建对象的四种方式
  • Java精华积累:初学者都应该搞懂的问题
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue-router 实现分析
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 和 || 运算
  • 收藏好这篇,别再只说“数据劫持”了
  • 算法之不定期更新(一)(2018-04-12)
  • 通过几道题目学习二叉搜索树
  • 小程序01:wepy框架整合iview webapp UI
  • 小而合理的前端理论:rscss和rsjs
  • 积累各种好的链接
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​如何防止网络攻击?
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (07)Hive——窗口函数详解
  • (1)Nginx简介和安装教程
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (五)IO流之ByteArrayInput/OutputStream
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .net 无限分类
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .Net转Java自学之路—基础巩固篇十三(集合)