asssdz-382474 发表于 2016-10-20 20:55:37

:(:(:(:(:(:(:(

原田夜舞love 发表于 2016-10-20 23:26:23

GOIO 时钟

wdshuang09 发表于 2016-10-21 08:03:17

liu553824989 发表于 2016-10-20 08:57
打开tim4时钟,配置time4 pwm配置,配置好tim4 映射的GPIO初始化,打开计数器,开总中断。

看你好像没有配 ...

手册上没有提IO要映射,见图片

wdshuang09 发表于 2016-10-21 08:03:59

无薪税绵 发表于 2016-10-20 09:51
STM32F103C8,没有TIM4吧。

有TIM4         

wdshuang09 发表于 2016-10-21 08:05:15

annysky 发表于 2016-10-20 09:53
首先要配置PWM时钟,PWM是复用管脚,这个也得配置.

缺省就是TIM4_CH3,手册没有提要管脚映射

wdshuang09 发表于 2016-10-21 08:07:00

原田夜舞love 发表于 2016-10-20 23:26
GOIO 时钟

RCC->APB2ENR|=1<<3;//使能B端口时钟
这不是打开了GPIO时钟

liu553824989 发表于 2016-10-21 08:37:30

手册是原理说明而已,当然不会教你怎么做,该怎样做,自己百度吧

xhzheng 发表于 2016-10-21 09:00:34

我的使用HAL库,可以正常工作:
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);

}

zbber 发表于 2016-10-21 10:54:08

打开tim4时钟,配置time4 pwm配置,配置好tim4 映射的GPIO初始化,打开计数器,开总中断

哈佛祖安智 发表于 2016-10-22 12:47:58

:)
页: 1 [2] 3
查看完整版本: STM32F103C8 TIM4 PWM CH4输不出PWM