juventus9554 发表于 2022-10-8 20:11

PA15 怎么用PWM

STM32CUBE生成的代码PA15使用定时器2ch1,无输出,改为通用引脚可以正常使用,有用过的吗?

午夜粪车 发表于 2022-10-8 20:14

您是怎么配置的呢

juventus9554 发表于 2022-10-8 20:17


juventus9554 发表于 2022-10-8 20:19


xxrs 发表于 2022-10-8 20:21

时钟配置的图呢

juventus9554 发表于 2022-10-8 20:24


juventus9554 发表于 2022-10-8 20:33


定时器1,3,4 PWM都正常就这个JTAG复用重映射的不行

supernan 发表于 2022-10-8 20:36

在配置的时候 生成的代码给瞅瞅

jiaxw 发表于 2022-10-8 20:45

你 也可以改用别的引脚 如果感觉复用不好的话

juventus9554 发表于 2022-10-8 20:47


/* TIM2 init function */
static void MX_TIM2_Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;
TIM_OC_InitTypeDef sConfigOC;

htim2.Instance = TIM2;
htim2.Init.Prescaler = 71;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 999;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
{
    Error_Handler();
}

sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
{
    Error_Handler();
}

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 = 999;
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);
}

juventus9554 发表于 2022-10-8 20:52


else if(htim->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspPostInit 0 */

/* USER CODE END TIM2_MspPostInit 0 */

    /**TIM2 GPIO Configuration   
    PA15   ------> TIM2_CH1
    */
      __HAL_AFIO_REMAP_SWJ_NOJTAG();
    GPIO_InitStruct.Pin = GPIO_PIN_15;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    __HAL_AFIO_REMAP_TIM2_ENABLE();//__HAL_AFIO_REMAP_TIM2_PARTIAL_1();//

/* USER CODE BEGIN TIM2_MspPostInit 1 */

/* USER CODE END TIM2_MspPostInit 1 */
}
自己改的    __HAL_AFIO_REMAP_TIM2_ENABLE();加的      __HAL_AFIO_REMAP_SWJ_NOJTAG(); 也不行;用别的引脚当让可以,但这问题让人纠结,想不明白怎么就不行

renyaq 发表于 2022-10-8 20:54

看代码是没有问题的

dengdc 发表于 2022-10-8 20:56

把这个端口作为时钟输出端口、

yszong 发表于 2022-10-8 20:59

这个引脚跟其他的不同吧

dingy 发表于 2022-10-8 21:01

首先这个是JTAG引脚,肯定需要先设置成普通引脚,再用定时器就可以了

wuhany 发表于 2022-10-8 21:04

我记得哪篇**上写过的

juventus9554 发表于 2022-10-8 21:07

PWM脉宽调节

wyjie 发表于 2022-10-8 21:10

和STM32f103ze有大的区别吗?

zwll 发表于 2022-10-8 21:12

这个是啥编译器?这么简单明了的

juventus9554 发表于 2022-10-8 21:17

这个是stm32cube 生成初始化代码,不是编译器,编译器用的KEIL
页: [1] 2
查看完整版本: PA15 怎么用PWM