你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f103rbt6使用stm32cubemx配置pwm无输出

[复制链接]
我爱电子啊 提问时间:2024-12-5 17:25 / 已解决
以下是我使用stm32cubemx生成的代码,使用示波器查看没有任何波形,pwm启动函数也加了,就是没有输出,找了好久还是没有解决,求解惑!


void MX_TIM3_Init(void)
{

/* USER CODE BEGIN TIM3_Init 0 */

/* USER CODE END TIM3_Init 0 */

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

/* USER CODE BEGIN TIM3_Init 1 */

/* USER CODE END TIM3_Init 1 */
htim3.Instance = TIM3;
htim3.Init.Prescaler = 72-1;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 416;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 200;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM3_Init 2 */
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_4);//此函数为开启pwm输出
/* USER CODE END TIM3_Init 2 */
HAL_TIM_MspPostInit(&htim3);

}


void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{

if(tim_baseHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspInit 0 */

/* USER CODE END TIM2_MspInit 0 */
/* TIM2 clock enable */
__HAL_RCC_TIM2_CLK_ENABLE();

/* TIM2 interrupt Init */
HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM2_IRQn);
/* USER CODE BEGIN TIM2_MspInit 1 */

/* USER CODE END TIM2_MspInit 1 */
}
else if(tim_baseHandle->Instance==TIM3)
{
/* USER CODE BEGIN TIM3_MspInit 0 */

/* USER CODE END TIM3_MspInit 0 */
/* TIM3 clock enable */
__HAL_RCC_TIM3_CLK_ENABLE();
/* USER CODE BEGIN TIM3_MspInit 1 */

/* USER CODE END TIM3_MspInit 1 */
}
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{

GPIO_InitTypeDef GPIO_InitStruct = {0};
if(timHandle->Instance==TIM3)
{
/* USER CODE BEGIN TIM3_MspPostInit 0 */

/* USER CODE END TIM3_MspPostInit 0 */

__HAL_RCC_GPIOB_CLK_ENABLE();
/**TIM3 GPIO Configuration
PB1     ------> TIM3_CH4
*/
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN TIM3_MspPostInit 1 */

/* USER CODE END TIM3_MspPostInit 1 */
}

}

void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{

if(tim_baseHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspDeInit 0 */

/* USER CODE END TIM2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM2_CLK_DISABLE();

/* TIM2 interrupt Deinit */
HAL_NVIC_DisableIRQ(TIM2_IRQn);
/* USER CODE BEGIN TIM2_MspDeInit 1 */

/* USER CODE END TIM2_MspDeInit 1 */
}
else if(tim_baseHandle->Instance==TIM3)
{
/* USER CODE BEGIN TIM3_MspDeInit 0 */

/* USER CODE END TIM3_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM3_CLK_DISABLE();
/* USER CODE BEGIN TIM3_MspDeInit 1 */

/* USER CODE END TIM3_MspDeInit 1 */
}
}
收藏 评论7 发布时间:2024-12-5 17:25

举报

7个回答
xmshao 回答时间:2024-12-5 17:57:05

image.png

image.png

xmshao 回答时间:2024-12-5 17:57:01
使用CUBEMX配置实现PWM输出还是很简单的。








HAL_TIM_PWM_Start(&htim3,  TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim3,  TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim3,  TIM_CHANNEL_3);


如果这没有输出就检查硬件,芯片焊接有无问题,管脚弄错没有,电源有无问题。
我爱电子啊 回答时间:2024-12-5 18:31:22

xmshao 发表于 2024-12-5 17:57
使用CUBEMX配置实现PWM输出还是很简单的。</p>
<p>

直接使用定时器模式驱动io翻转正常,说明硬件没有问题,我是直接配置的第四个通道

image.png

image.png

我爱电子啊 回答时间:2024-12-5 18:44:13

xmshao 发表于 2024-12-5 17:57
![image.png](data/attachment/forum/202412/05/175642ub31sbgpfdgcdsf6.png?imageMogr2/auto-orient/s ...

[md]奇怪的是我配上CH1通道pwm波形正常,但是CH4就不行

image.png

xmshao 回答时间:2024-12-5 23:01:59

我爱电子啊 发表于 2024-12-5 18:44
奇怪的是我配上CH1通道pwm波形正常,但是CH4就不行</p>
<p>![image.png](data/attachment/forum/202412/05/ ...

[md]pulse设置为0 是没有波形输出的。

我爱电子啊 回答时间:2024-12-10 11:10:22

xmshao 发表于 2024-12-5 23:01
pulse设置为0 是没有波形输出的。

这个问题找到了,是我调用别的外设将端口初始化了

xmshao 回答时间:2024-12-10 13:54:52

我爱电子啊 发表于 2024-12-10 11:10
这个问题找到了,是我调用别的外设将端口初始化了

类似的小疏忽 防不胜防~!😄 谢谢反馈~!

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版