完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
A正在使用LL libraty。我需要 PB1 上的简单 PWM 输出。
tiM2 初始化与 CH1 和 PA5 工作相关。 当我将设置更改为 CH4 并且 PB1 pwm 不会转到该引脚时。 PA 和 PB 都计时。 在调试器下,我检查了 MODER 寄存器,选择了 AF_5 功能。 工作代码: //在GPIO init函数中启用端口时钟 LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_5, LL_GPIO_MODE_ALTERNATE); LL_GPIO_SetPinPull(GPIOA, LL_GPIO_PIN_5, LL_GPIO_PULL_DOWN); LL_GPIO_SetPinSpeed(GPIOA, LL_GPIO_PIN_5, LL_GPIO_SPEED_FREQ_HIGH); LL_GPIO_SetAFPin_0_7(GPIOA, LL_GPIO_PIN_5, LL_GPIO_AF_5); /* 外设时钟使能 */ LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2); LL_TIM_SetPrescaler(TIM2, __LL_TIM_CALC_PSC(SystemCoreClock, 100000)); LL_TIM_EnableARRPreload(TIM2); LL_TIM_SetAutoReload(TIM2, __LL_TIM_CALC_ARR(SystemCoreClock, LL_TIM_GetPrescaler(TIM2), 2000)); LL_TIM_OC_SetMode(TIM2, LL_TIM_CHANNEL_CH1, LL_TIM_OCMODE_PWM1); LL_TIM_OC_SetCompareCH1(TIM2, (LL_TIM_GetAutoReload(TIM2) / 2)); LL_TIM_OC_EnablePreload(TIM2, LL_TIM_CHANNEL_CH1); LL_TIM_CC_EnableChannel(TIM2, LL_TIM_CHANNEL_CH1); LL_TIM_EnableCounter(TIM2); LL_TIM_GenerateEvent_UPDATE(TIM2); 而不是工作代码: //在GPIO init函数中启用端口时钟 LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_1, LL_GPIO_MODE_ALTERNATE); LL_GPIO_SetPinPull(GPIOB, LL_GPIO_PIN_1, LL_GPIO_PULL_DOWN); LL_GPIO_SetPinSpeed(GPIOB, LL_GPIO_PIN_1, LL_GPIO_SPEED_FREQ_HIGH); LL_GPIO_SetAFPin_0_7(GPIOB, LL_GPIO_PIN_1, LL_GPIO_AF_5); /* 外设时钟使能 */ LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2); LL_TIM_SetPrescaler(TIM2, __LL_TIM_CALC_PSC(SystemCoreClock, 100000)); LL_TIM_EnableARRPreload(TIM2); LL_TIM_SetAutoReload(TIM2, __LL_TIM_CALC_ARR(SystemCoreClock, LL_TIM_GetPrescaler(TIM2), 2000)); LL_TIM_OC_SetMode(TIM2, LL_TIM_CHANNEL_CH4, LL_TIM_OCMODE_PWM1); LL_TIM_OC_SetCompareCH4(TIM2, (LL_TIM_GetAutoReload(TIM2) / 2)); LL_TIM_OC_EnablePreload(TIM2, LL_TIM_CHANNEL_CH4); LL_TIM_CC_EnableChannel(TIM2, LL_TIM_CHANNEL_CH4); LL_TIM_EnableCounter(TIM2); LL_TIM_GenerateEvent_UPDATE(TIM2); 当我在 PB0 上设置 CH3 时出现同样的意外错误。 当然,我检查了常规的 GPIO 输出可能性和 PB1 工作。 我检查了勘误表,关于 PWM 功能的 GPIO 和 TIMERS 没有限制。 任何建议将不胜感激。 |
|
相关推荐
2个回答
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
1955 浏览 1 评论
2673 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1557 浏览 1 评论
3113 浏览 6 评论
5551 浏览 21 评论
530浏览 4评论
942浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
348浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
910浏览 3评论
867浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-6-26 07:38 , Processed in 1.126212 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191