
用STM32F103C8写了一个 TIM4 PWM输出 输出通道为CH4,但不出PWM,不知寄存器哪里设置不对,求高手指点, 系统时钟为72MHz TIM4_PWMOut_Init(999,71); void TIM4_PWMOut_Init(u16 arr,u16 psc) { RCC->APB1ENR|=1<<2; //TIM4时钟使能 RCC->APB2ENR|=1<<3;//使能B端口时钟 TIM4->PSC=psc; //72000000/72=1Mh TIM4->ARR=arr; //1000000/1000=1000 PWM频率为1K TIM4->CCR4=500; TIM4->CCMR2|=(6<<12);//PWM模式样 TIM4->CCMR2|=(1<<11);//开启预装载功能 TIM4->CCER|=(1<<12);//CH4 开启输出对应管脚 TIM4->CCER|=0<<13;//高电平有效 TIM4->CR1|=0<<4;//向上计数 TIM4->CR1|=(1<<7);//自动重装允许 TIM4->SR=0X00; TIM4->DIER|=1<<0;//允许更新 TIM4->DIER|=1<<4;//允许CH4中断 TIM4->EGR|=1<<4; TIM4->CR1|=0x01; //使能计数器 MY_NVIC_Init(1,3,TIM4_IRQn,2);//中断 } void TIM4_IRQHandler(void) { if(TIM4->SR&0X0010) { TIM4->SR&=~(1<<4); } } |
STM32F105 USB HID RCC設定
STM32F103VCT6单片机的复位引脚和地引脚短路
【官方例程】STM32F107以太网官方例程
【MCU实战经验】基于STM32F103C8T6的hart总线调试器设计
求教STM32F103进入STOP模式后用外部中断唤醒的问题
基于STM32F103RCT6的无源蜂鸣器音乐播放(生日快乐歌)
STM32F103c8t6有没有DAC 功能?
STM32F103x中文数据手册
新手求教,为何在我电脑上找不到STM32F1Xx.h文件
金龙107例程汇总(STM32F107)
问题找到了,是GPIO输出模式没有配对,要配成复用功能输出,之前配成通用输出功能,PWM就出不来;所以不是GPIO映射问题,手册缺省是TIM4 CH4输出,如果需要映射的话,手册会写在RAMAP那一栏在;可以结贴了,谢谢各位网友的帮助,
评分
查看全部评分
main.c:
MX_TIM2_Init(200,1000);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
config:
/* TIM2 init function */
void MX_TIM2_Init(int pulse,int period)
{
TIM_MasterConfigTypeDef sMasterConfig;
TIM_OC_InitTypeDef sConfigOC;
htim2.Instance = TIM2;
htim2.Init.Prescaler = 0;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = period;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = pulse;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
HAL_TIM_MspPostInit(&htim2);
}
是你理解手册有问题吧,这个TIM4 CH4没有重映射,如果要重映射需要开启AFIO,重映射手册上会写在REMAP栏中,现在我实现了;你一直说是映射问题,所以你说的不对,呵呵~,
学习过程总会遇到问题,别自己懂一点,说话就那种盛气凌人,你的原话"手册是原理说明而已,当然不会教你怎么做,该怎样做,自己百度吧",况且你又没有说对,
感谢这两位网友,andrewz anywill提醒让我找到问题的根源,同时也谢谢其他网友热心回答
看你好像没有配置映射gpio引脚,如果还不行用库的试试,寄存器的要一个一个试,有点麻烦。
手册上没有提IO要映射,见图片
有TIM4
缺省就是TIM4_CH3,手册没有提要管脚映射