打印
[电机应用]

stm32F207ZET6 TIM1_CH4的复用口PE14不输出pwm波形

[复制链接]
1655|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
豌豆爹|  楼主 | 2023-10-18 09:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/* TIM1 init function */
void MX_TIM1_Init(uint32_t arr,uint32_t psc)
{

/* USER CODE BEGIN TIM1_Init 0 */

/* USER CODE END TIM1_Init 0 */

TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};

/* USER CODE BEGIN TIM1_Init 1 */

/* USER CODE END TIM1_Init 1 */
htim1.Instance = TIM1;
htim1.Init.Prescaler = psc;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = arr;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = (arr * 3)/4;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;

//sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_SET;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
{
Error_Handler();
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */

/* USER CODE END TIM1_Init 2 */
HAL_TIM_MspPostInit(&htim1);

}

main函数里while按计数设置tim1_ch4的占空比;


while (1)
{
/* USER CODE END WHILE */

        HAL_Delay(500);
        __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_4,plus_cnt);
        //drv8424_step(200,half_T);

/* USER CODE BEGIN 3 */
}

使用特权

评论回复
沙发
LOVEEVER| | 2023-10-21 10:57 | 只看该作者
楼主,你这个STM32的建议在ST专区进行咨询

使用特权

评论回复
板凳
小夏天的大西瓜| | 2023-10-28 21:20 | 只看该作者
感觉还是设置的问题导致的

使用特权

评论回复
地板
tpgf| | 2023-11-6 16:07 | 只看该作者
没有对io口的初始化代码啊

使用特权

评论回复
5
wowu| | 2023-11-6 16:46 | 只看该作者
这个引脚的复用功能得在io设置的时候定义一下啊

使用特权

评论回复
6
AdaMaYun| | 2023-11-6 20:29 | 只看该作者
楼主这个需要IO口复用设置

使用特权

评论回复
7
xiaoqizi| | 2023-11-6 21:13 | 只看该作者
好像发错版块了吧 应该在st的版块啊

使用特权

评论回复
8
wakayi| | 2023-11-6 21:51 | 只看该作者
如果换成其他引脚就没有问题了吗

使用特权

评论回复
9
木木guainv| | 2023-11-7 08:09 | 只看该作者
楼主把这个引脚定义为什么功能了呢

使用特权

评论回复
10
磨砂| | 2023-11-7 23:23 | 只看该作者
定时器和时钟都有配置代码 但是没有引脚的配置代码啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

513

主题

1978

帖子

5

粉丝