完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我只是想测试和验证 PWM 波形的某些时钟频率是否正确。我使用 CubeMX 生成了一些代码,将 MCU 的时钟频率设置为 72 mHz,我正在尝试实现 20 kHz 的 PWM 频率。我启用了定时器 1,通道 1 作为输出通道(多路复用到我板上的引脚 E9)。我还确保调用 HAL_tiM_PWM_Start,这样我的计时器就会真正开始计数,从而生成波形。目前我将脉冲设置为一个应该产生 100% 占空比的值,但无论我设置什么占空比,我都不会得到任何波形。
将引脚连接到逻辑分析仪表明没有任何东西被捕获并且引脚一直保持低电平。我通过将引脚连接到带有 LED 的面包板来确认这一点,当我单步执行我的代码时,没有任何东西会驱动 LED 打开。我在 Keil 中的步骤中注意到端口 E 的 IDR 寄存器将切换位 9,因此 PWM 必须以某种方式影响引脚状态,但 ODR 和 BSRR 寄存器始终保持为 0。附上我的代码:
|
|
相关推荐
1个回答
|
|
确保该引脚确实如您所想的那样连接。如果是 Nucleo 或 Disco 板,请检查跳线/焊桥。作为测试,将给定的引脚设置为输出并在 GPIO_ODR 中切换它,也许在调试器中,以查看对 LED 的影响。
对于定时器操作,读取并检查(或发布)TIM 和相关 GPIO 寄存器内容。确保 GPIOx_MODER 设置为 AF,并且在 GPIOx_AFR 中为给定的引脚选择了正确的 AF;由于 Timer1 是一个高级定时器,请确保设置了 TIMx_BDTR.MOE。 定时器不会以任何方式影响 GPIO_ODR/GPIO_BSRR。OTOH,GPIO_IDR 反映了引脚的实际状态,不管它是如何驱动的(除非在 GPIOx_MODER 中设置为模拟)。 我不使用多维数据集。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2655 浏览 1 评论
3216 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1790 浏览 1 评论
3619 浏览 6 评论
5997 浏览 21 评论
946浏览 4评论
1319浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
591浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1309浏览 3评论
1369浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 07:52 , Processed in 1.066148 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号