
硬件使用STM32G030C8T6的PA6的AF5功能,即TIM16_CH1驱动一个无源蜂鸣器,输出一个2.7K-2.9K的方波,占空比为50%,始终没有成功,查阅datasheet发现PA6也可以映射AF1功能,即TIM3_CH1,将PWM初始化代码中的TIM16替换为TIM3,正常输出方波。MDK里查看了TIM3和TIM16配置后寄存器,完全一样,再改回TIM16,依然不行。确认了PA6的IO配置,尤其是AF寄存器,均是对的。同样的问题,在G070上验证了一样,也是TIM3能输出PWM而TIM16不行。哪位帮我分析分析,谢过!贴一下TIM3的代码 void TIM3_PWMConfig(void) { LL_TIM_InitTypeDef TIM_InitStruct = {0}; LL_TIM_OC_InitTypeDef TIM_OC_InitStruct = {0}; LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3); TIM_InitStruct.Prescaler = SystemCoreClock/1000000-1; TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; TIM_InitStruct.Autoreload = 0xAC*2-1; //频率2.9KHz TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; LL_TIM_Init(TIM3, &TIM_InitStruct); LL_TIM_EnableARRPreload(TIM3); LL_TIM_OC_EnablePreload(TIM3, 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 = 0xAC; TIM_OC_InitStruct.OCPolarity = LL_TIM_OCPOLARITY_HIGH; LL_TIM_OC_Init(TIM3, LL_TIM_CHANNEL_CH1, &TIM_OC_InitStruct); LL_TIM_OC_DisableFast(TIM3, LL_TIM_CHANNEL_CH1); LL_TIM_SetTriggerOutput(TIM3, LL_TIM_TRGO_RESET); LL_TIM_DisableMasterSlaveMode(TIM3); LL_TIM_CC_EnableChannel(TIM3, LL_TIM_CHANNEL_CH1); LL_TIM_EnableCounter(TIM3); } |
STM32MP135D的TIM2使用ETR作为外部时钟时,无法使用PE15作为输入
STM32CubeMX 配置STM32G070RBT6TR时无法使能PVD中断
STM32G070RBT6TR STM32CubeMX ADC配置后使用的是内部参考电压且零点的读数太大了
测评在哪里发?
定时器使用DMA突发传输功能时,传入指针从常量数组改为变量数组后,传输功能异常。测试官方用例一样,是何原因?
Group Study vs. Solo Study: What Works Best?
分享一个PWM+DMA的BUG
STM32G070CBT6使用硬件SPI无法读出W25Q128的ID
STM32的TIM触发SPI的DMA发送使用NSS时MSSI的问题
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
TEST TIM16 PA6.7z
2022-10-8 11:13 上传
点击文件名下载附件
下载积分: ST金币 -18.27 MB, 下载次数: 13, 下载积分: ST金币 -1
你好,感谢回复!用你的代码验证确实OK,后来我把你CUBE文件的库改成LL,其他设置不变,我一直都在使用LL库,就不行了,我查看了一下LL库生成的代码,没有使能TIM16以及CH1输出,添加了下面两行代码后,查看LL库和HAL库的寄存器结果是完全一样的,但LL库就是没有输出。
LL_TIM_EnableCounter(TIM16);
LL_TIM_CC_EnableChannel(TIM16, LL_TIM_CHANNEL_CH1);
确实是这个问题,之前参与对比的TIM3没有这个寄存器,CUBEMX使用LL库时没有置位BDTR->MOE,手动置位一下就好了。
感谢关注。
我也是这种问题,的确是这样解决的