ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:441.28KB ,
资源ID:1705111      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1705111.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PWM发脉冲怎么精确控制发脉冲的个数呢.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PWM发脉冲怎么精确控制发脉冲的个数呢.docx

1、PWM发脉冲怎么精确控制发脉冲的个数呢PWM发脉冲-怎么精确控制发脉冲的个数呢STM32的PWM发送脉冲,周期和脉宽都可调了,但是现在不知道如何精确的控制所发的脉冲个数。具体要求就是在一段时间内大概50ms内发送5000-1W个脉冲 个数要很精确,误差2个以内可以接受该怎么控制呢?1.接上一个外部中断口,在中断中计数2.用一个定时器 对发脉冲的时间进行控制各位大侠还有什么好的办法吗?求解啊!PWM溢出中断计数,是个不错的解决办法。如果一个上升沿算一个脉冲的话,控制周期(频率)不就行了开启PWM输出的溢出中断,进入一次中断,就是一个波原子哥 是这里吗? 设置这个寄存器或者只是简单的定时器溢出中断

2、 oidTIM3_IRQHandler(void) if(TIM3-SR&0X0001)/溢出中断 ./计数 TIM3-SR&=(1SMCR |= 0x0007;/设定从模式控制寄存器,外部时钟模式1 上升沿驱动计数/TIM_UpdateDisableConfig(TIM4,ENABLE);TIM_ARRPreloadConfig(TIM2, ENABLE);TIM_ClearFlag(TIM2,TIM_FLAG_Update); /清除溢出中断标志TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);TIM_Cmd(TIM2,ENABLE);/是否开启时钟(开启后每

3、发送一个脉冲,定时器加一)void Tim3_Slave_Init(void)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_DeInit(TIM3);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);NVIC_Configuration(9);TIM_TimeBaseStructure.TIM_Period= XBUF3 - 1; TIM_TimeBaseStructure.TIM_Prescaler= 0; /时钟预分频数TIM_TimeBaseStructure.TIM_ClockD

4、ivision=0; /采样分频TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/向上溢出TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);TIM_SelectInputTrigger(TIM3,TIM_TS_ITR3);/选择TIM2的输入触发源 内部触发3 TIM4TIM_InternalClockConfig(TIM3);TIM3-SMCR |= 0x0007;/设定从模式控制寄存器,外部时钟模式1 上升沿驱动计数/TIM_UpdateDisableConfig(TIM4,ENAB

5、LE);TIM_ARRPreloadConfig(TIM3, ENABLE);TIM_ClearFlag(TIM3,TIM_FLAG_Update); /清除溢出中断标志TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);TIM_Cmd(TIM3,ENABLE);/是否开启时钟(开启后每发送一个脉冲,定时器加一)/* 函数名:TIM4_Mode_Config* 描述 :配置TIM4输出的PWM信号的模式,如周期、极性、占空比* 输入 :无* 输出 :无* 调用 :内部调用*/void TIM4_PWM_Init(u16 T)TIM_TimeBaseInitTypeD

6、ef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;u16 CCR1_Val = (T+1)/2;u16 CCR2_Val = (T+1)/2;u16 CCR3_Val = (T+1)/2;u16 CCR4_Val = (T+1)/2;/* -TIM1 Configuration: generate 4 PWM signals with 4 different duty cycles:TIM1CLK = 36 MHz, Prescaler = 0x0, TIM1 counter clock = 36 MHzTIM1 AR

7、R Register = 999 = TIM1 Frequency = TIM1 counter clock/(ARR + 1)TIM1 Frequency = 36 KHz.TIM1 Channel1 duty cycle = (TIM1_CCR1/ TIM1_ARR)* 100 = 50%TIM1 Channel2 duty cycle = (TIM1_CCR2/ TIM1_ARR)* 100 = 50%TIM1 Channel3 duty cycle = (TIM1_CCR3/ TIM1_ARR)* 100 = 50%TIM1 Channel4 duty cycle = (TIM1_CC

8、R4/ TIM1_ARR)* 100 = 50%- */* Time base configuration */TIM_TimeBaseStructure.TIM_Period = T-1;/T usTIM_TimeBaseStructure.TIM_Prescaler = 72-1;TIM_TimeBaseStructure.TIM_ClockDivision = 0;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);TIM4-CR

9、1 &= (u16)0x03FD);/ UDIS enable/* PWM1 Mode configuration: Channel1 */TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = CCR1_Val;TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OC1Init(TIM4, &TIM_OCInitStructure);TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);/* PWM1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1