OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3632|回复: 2

没有PWM输出....刚刚开始用HAL,请教原因

[复制链接]

5

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-10-17
在线时间
11 小时
发表于 2016-10-17 22:47:21 | 显示全部楼层 |阅读模式
1金钱
STM32F103VET6,查资料TIM3_CH2是PB5端口(不知道有没有错)
代码如下:
[mw_shl_code=c,true]TIM_HandleTypeDef TIM3_Handle;

void SystemClock_Config(void)
{

        RCC_OscInitTypeDef RCC_OscInitStruct;
        RCC_ClkInitTypeDef RCC_ClkInitStruct;

        RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
        RCC_OscInitStruct.HSEState = RCC_HSE_ON;
        RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
        RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
        RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
        RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
        HAL_RCC_OscConfig(&RCC_OscInitStruct);

        RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
                                    | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
        RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
        RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
        RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
        RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
        HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);

        HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() / 1000);
       
        HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

          /* SysTick_IRQn interrupt configuration */
        HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
void TIMs_Init(void)
{
        TIM3_Handle.Instance = TIM3;
        TIM3_Handle.Init.Prescaler = 7200 - 1;
        TIM3_Handle.Init.Period = 2499;
        TIM3_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
        TIM3_Handle.Init.RepetitionCounter = 0;
        TIM3_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
        HAL_TIM_PWM_Init(&TIM3_Handle);
       
        TIM_OC_InitTypeDef sConfig;
        sConfig.OCMode = TIM_OCMODE_PWM1;
        sConfig.OCPolarity = TIM_OCPOLARITY_HIGH;
        sConfig.OCFastMode = TIM_OCFAST_DISABLE;
        sConfig.OCNPolarity = TIM_OCPOLARITY_HIGH;
        sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;
        sConfig.OCIdleState = TIM_OCIDLESTATE_RESET;
        sConfig.Pulse = 1250;
        HAL_TIM_PWM_ConfigChannel(&TIM3_Handle, &sConfig, TIM_CHANNEL_2);
        HAL_TIM_PWM_Start(&TIM3_Handle, TIM_CHANNEL_2);
}

int main(void)
{
        HAL_Init();
        SystemClock_Config();
        __GPIOB_CLK_ENABLE();
        GPIO_InitTypeDef GPIO_InitStructure;

        GPIO_InitStructure.Pin = GPIO_PIN_5;

        GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
        GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
        GPIO_InitStructure.Pull = GPIO_NOPULL;
        HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
        TIMs_Init();
        for (;;)
        {
        }
}[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

好吧,参考手册里已经找到答案了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-10-17
在线时间
11 小时
 楼主| 发表于 2016-10-17 22:47:22 | 显示全部楼层
好吧,参考手册里已经找到答案了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-10-18 21:28:42 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 09:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表