PWM--

PWM

目录

PWM

pwm在电子行业的作用

pwm的参数

编程

1、初始化函数(时钟、IO、外设、其他)

- 初始化时钟,PB2,TIM3

- 初始化IO -- 这里用输出

- 外设 -- 配置定时器和pwm

-- 其他

2、应用 -主函数


-- 什么是PWM?

​脉冲宽度调制(PWM),简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

详解PWM原理、频率与占空比

在STM32中,PWM功能常用于控制电机速度、调节LED亮度、产生音频信号等应用。通过调整PWM的占空比(高电平时间占总周期的比例),可以控制输出信号的平均电压或功率。例如,如果PWM信号的占空比为50%,即高电平时间等于总周期的一半,那么输出信号的平均电压或功率也将为输入电压或功率的一半。

pwm在电子行业的作用

PWM 在电子行业的作用
PWM 波:具有一定频率,其(占空比)高电平可以调节的波。
占空比:高电平所占整个周期的比例
PWM 波是一种自然现象。
通过 PWM 波改变设备一定时间内的做功。 -- 调节电机转速、改变直流电压。

pwm的参数

-- 周期

高低电平变化所需要的时间,单位:ms
T=1/f T是周期,f是频率。

-- 频率

在1秒钟内,信号从高电平到低电平再回到高电平的次数,也就是说一秒钟PWM有多少个周期,单位Hz。
例如:如果频率为50Hz ,也就是说一个周期是20ms,那么一秒钟就有50次PWM周期。

-- 占空比

在一个脉冲周期内,高电平的时间占整个周期时间的比例,单位是% (0%-100%)。

-- 例题:

舵机的频率一般为频率为 50HZ,也就是一个 20ms 左右的时基脉冲, 而脉冲的高电平部分一般为 0.5ms-2.5ms 范围。如果时钟频率为10000hz,那么重装载值和比较值为多少?

答:
首先来解释时钟频率的含义:这是一个系统或设备中时钟信号的频率,影响每个时钟周期的时长。在这个例子中,时钟频率为 10000 Hz,意味着每秒有 10000 个时钟周期。
计算时钟周期的公式是:T=1/时钟频率,在这个例子中,T=1/10000=0.0001 秒,即每个时钟周期是0.1ms。
计算整个舵机脉冲周期对应的时钟周期数:
舵机周期为 20 ms,因此可以转换为时钟周期数:
舵机周期对应的时钟周期数 = 舵机周期/ 时钟周期 = 20ms/0.1ms = 200
这说明整个舵机信号的持续时间需要 200 个时钟周期。

alt text

结果: 重装载值:200 —— 这代表着舵机脉冲的总持续时间,设置为一个周期的时钟周期数。
比较值范围:
最小比较值:5 (代表 0.5 ms 的高电平宽度)
最大比较值:25 (代表 2.5 ms 的高电平宽度)

也可以简单理解, 

alt text

编程

-- 这章我们来实现控制LCD的亮度调制

1、初始化函数(时钟、IO、外设、其他)

  • 首先查看原理图

alt text

alt text

  • 可知引脚为PB0
- 初始化时钟,PB2,TIM3

-- 这里为什么不用tim8,用tim3的原因是,tim8是高级定时器,需要用到高级定时器时钟,而tim3是通用定时器,需要用到通用定时器时钟,通用定时器时钟是APB1,所以这里我们用tim3。

//时钟 B TIM3
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
- 初始化IO -- 这里用输出
//IO  
	GPIO_InitTypeDef GPIO_InitStructure = {0};						//定义结构体变量,并且将结构体变量赋初值
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; 						//引脚
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;			//速度
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;				//复用推挽输出
	GPIO_Init(GPIOB, &GPIO_InitStructure);
- 外设 -- 配置定时器和pwm

-- //可以查看固件库手册或者官方历程

这里我们看例程 

alt text

alt text

    //外设 tim时钟频率:72M
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure  = {0};
	TIM_TimeBaseStructure.TIM_Period = 999;											//重装载值//设置为1000的话,就填999(要-1)
    TIM_TimeBaseStructure.TIM_Prescaler = 71;				//分频值 		//进行72分频,就写71,是从0-71
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;								//时钟分频因子//默认写0,跟输入有关,暂时不用管
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;	//计数方式
        //周期是1ms,频率是1000

    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

alt text

  • 由这个图可知tim的时钟频率为72M

-- 这里我们设置为72分频(设置成多少根据实际情况),注意这里要写成71,因为是从0-71。那么72M经过72分频后变为1Mhz,1s计数1000000次。那么1ms计数1000次(就是重装载值),那么1ms就是1000次计数,那么1000-1就是999。
1ms计数到重装载值,那么周期就是1ms

  • 外设除了定时器还有pwm
    //pwm配置
	TIM_OCInitTypeDef  TIM_OCInitStructure = {0};
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;							//输出模式配置 					//PWM1和pwm2的高低电平相反,但是其他都是一样的,占空比或者
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //输出状态使能
    TIM_OCInitStructure.TIM_Pulse = 0;														//比较值
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;			//输出极性(有效电平)							//(这里是为高(有效电平))//当计数值低于比较值时,(输出有效电平)输出高电平。高于比较直时,输出无效电平//pwm2与pwm1相反

    TIM_OC3Init(TIM3, &TIM_OCInitStructure);
        
	
	TIM_Cmd(TIM3, ENABLE);//外设使能
  • pwm有pwm1和pwm2,他们的区别为 

    alt text

-- 其他
	//其它  //使能预加载寄存器 重装载值 比较值 如果这两个改变了,让设置的波形在下一个周期才会生效
    TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);
	TIM_ARRPreloadConfig(TIM3, ENABLE);

2、应用 -主函数

-- 通过按键1让LCD的屏幕逐渐越来越亮

    pwm_init();
	
	uint16_t b=100;
	while(1)
	{
			if(keytime>=50)//50ms执行一次
			{
				keytime=0;
				keyflag = get_key();
				switch(keyflag)
				{
					case 1: b+=100;
					if(b>=1000)
					{
						b=0;
					}
					TIM_SetCompare3(TIM3, b); break;
					case 2:  break;
				}
			}
    }
数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值