STM32
登录
直播中
史晓明
8年用户
1012经验值
私信
关注
[问答]
STM32G070使用PWM1功能结合单脉冲模式输出任意个数脉冲,为什么不是低电平?
开启该帖子的消息推送
stm32G0
PWM
脉冲
使用PWM1功能结合单脉冲模式输出任意个数脉冲,比如输出3个脉冲,最后电平是高,为什么不是低电平?OCIdleState并不起作用,可以修改配置成低电平吗?下面是代码配置
ti
M_InitStruct.Prescaler = Prescaler;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = Period;
TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
TIM_InitStruct.RepetitionCounter = 2;
LL_TIM_Init(TIM1, TIM_InitStruct);
LL_TIM_EnableARRPreload(TIM1);
LL_TIM_OC_EnablePreload(TIM1, LL_TIM_CHANNEL_CH1);
TIM_OC_InitStruct.OCMode = LL_TIM_OCMODE_PWM1;
TIM_OC_InitStruct.OCState = LL_TIM_OCSTATE_DISABLE;
TIM_OC_InitStruct.OCNState = LL_TIM_OCSTATE_DISABLE;
TIM_OC_InitStruct.CompareValue = Pulse;
TIM_OC_InitStruct.OCPolarity = LL_TIM_OCPOLARITY_HIGH;//LL_TIM_OCPOLARITY_LOW;//
TIM_OC_InitStruct.OCNPolarity = LL_TIM_OCPOLARITY_HIGH;
TIM_OC_InitStruct.OCIdleState = LL_TIM_OCIDLESTATE_LOW;
TIM_OC_InitStruct.OCNIdleState = LL_TIM_OCIDLESTATE_LOW;
LL_TIM_OC_Init(TIM1, LL_TIM_CHANNEL_CH1, TIM_OC_InitStruct);
LL_TIM_OC_DisableFast(TIM1, LL_TIM_CHANNEL_CH1);
// TIM_InitStruct.Autoreload = Period;
LL_TIM_SetOnePulseMode(TIM1, LL_TIM_ONEPULSEMODE_SINGLE);
LL_TIM_SetTriggerOutput(TIM1, LL_TIM_TRGO_RESET);
LL_TIM_SetTriggerOutput2(TIM1, LL_TIM_TRGO2_RESET);
LL_TIM_DisableMasterSlaveMode(TIM1);
TIM_BDTRInitStruct.OSSRState = LL_TIM_OSSR_DISABLE;
TIM_BDTRInitStruct.OSSIState = LL_TIM_OSSI_DISABLE;//LL_TIM_OSSI_ENABLE;//
TIM_BDTRInitStruct.LockLevel = LL_TIM_LOCKLEVEL_OFF;
TIM_BDTRInitStruct.DeadTime = 0;
TIM_BDTRInitStruct.BreakState = LL_TIM_BREAK_DISABLE;
TIM_BDTRInitStruct.BreakPolarity = LL_TIM_BREAK_POLARITY_HIGH;
TIM_BDTRInitStruct.BreakFilter = LL_TIM_BREAK_FILTER_FDIV1;
TIM_BDTRInitStruct.BreakAFMode = LL_TIM_BREAK_AFMODE_INPUT;
TIM_BDTRInitStruct.Break2State = LL_TIM_BREAK2_DISABLE;
TIM_BDTRInitStruct.Break2Polarity = LL_TIM_BREAK2_POLARITY_HIGH;
TIM_BDTRInitStruct.Break2Filter = LL_TIM_BREAK2_FILTER_FDIV1;
TIM_BDTRInitStruct.Break2AFMode = LL_TIM_BREAK_AFMODE_INPUT;
TIM_BDTRInitStruct.AutomaticOutput = LL_TIM_AUTOMATICOUTPUT_ENABLE;
LL_TIM_BDTR_Init(TIM1, TIM_BDTRInitStruct);
回帖
(1)
袁嫚玲
2024-3-14 14:03:12
你在现有配置下,注意 我说的是你有配置前提下,将PWM输出模式改为PWM2即可。
其实,基于单脉冲模式实现指定个数脉冲输出可以有多种配置。
另外,你提及的OCIdleState并不起作用是正常的,该配置是针对互补输出才有作用。
你在现有配置下,注意 我说的是你有配置前提下,将PWM输出模式改为PWM2即可。
其实,基于单脉冲模式实现指定个数脉冲输出可以有多种配置。
另外,你提及的OCIdleState并不起作用是正常的,该配置是针对互补输出才有作用。
举报
更多回帖
rotate(-90deg);
回复
相关问答
stm32G0
PWM
脉冲
能不能讲下下面的
PWM
生成(边缘或中间对齐
模式
)和
单脉冲模式
输出
2017-03-30
5891
如何将TIM
1
CH
1
设置为
输出
PWM
?
2023-01-06
535
关于RM0016
单脉冲模式
设置问题
2023-08-08
445
请问怎么配置TIM为
单脉冲模式
2019-03-05
4175
COMP2在
STM32L1
上触发
单脉冲模式
2018-10-23
4441
请问如何生成可重复的
单脉冲
波形?
2022-12-26
502
STM32
TIM
1
重复计数器+
单脉冲模式
产生精确
个数
脉冲
2014-05-05
35271
STM32
高级定时器TIM
1
和TIM8的
单脉冲模式
都实现不了吗?
2018-08-23
6493
使用定时器控制
pwm
发送
脉冲
,如何能够同时控制频率,
脉冲
个数
2023-08-05
465
有什么方法可以在一种
脉冲模式
下启动定时器吗?
2023-02-08
458
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分