完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的 MCU 是 STM32F103C8,我需要 2 个 PWM 信号,它们相互完成到 %100 占空比。(即:PWM1=%60 和 PWM2 =%40)。当一个 PWM 通道为高时,另一个需要为低,反之亦然。
重要的是,这两个 PWM 信号不应同时为高电平。所以我想在相反的 PWM 模式下使用 2 个通道。然而,占空比会发生变化,并且它们在整个代码中不会相同,因此在更改这些通道的 CCR 值时,我相信模式可能会被打破并且这些信号可能会同时变高,即使是很短的时间。 有没有一种我可以遵循的方法来维持完成的 PWM 信号而不会同时使它们变高,并且是否有预防措施或安全措施来防止它们同时变高? 编辑: 我需要将死区时间设置为 50 ns 左右,我的时钟周期为 13.8 ns 我需要将 tiM1_BDTR 寄存器的 DTG 位设置为 0x04。(这些是 BDTR 寄存器的 [0-7] 位)。我不想更改 [8-15] 位。但我不确定如何访问和更改 STM32 中的各个位。我想我以前在 PIC 中使用的方法在 STM 中不起作用。 所以我想我可以像这样一点一点地改变每一点:
|
|
相关推荐
1个回答
|
|
在 STM32F103C8 中有高级定时器 TIM1,其中通道 1、2、3 具有互补输出。
阅读参考手册中的14.3.11 Complementary outputs and dead-time insertion和 TIM1 capture/compare enable register (TIMx_CCER)的描述。 如果由于某种原因不能使用 TIM1,则必须确保预加载 CCR 寄存器(为这些通道设置 TIM_CCMR*_OC*PE 位),并在一个定时器周期内更新它们,这最好在定时器更新中断。当 PWM 频率高于 ~100 kHz 时,这可能会很棘手。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2666 浏览 1 评论
3221 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1793 浏览 1 评论
3622 浏览 6 评论
6003 浏览 21 评论
949浏览 4评论
1321浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
595浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1314浏览 3评论
1372浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 04:03 , Processed in 1.111861 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号