收到板子后一直在学习电机控制,实在是小白,目前只有12v电源,不确定该板是否可以使用12v电源输入,所以还不敢测试电机。
搭建环境,在官网查看到pack包,官网资源下载
拿到板子后,板子做工很精致工正,查看板载资源,先测试下板子的基本功能,
看到PD5连接了一个yellow的LED,又查看配置PD5 可以复用为tim2的ch1,可以做一个呼吸灯
<pre> /* GPIOC Configuration: Channel 1 */
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource5, GPIO_AF_4);
/* Time Base configuration */
/* Fpwm = TIM_CLK / ( (arr+1)*(psc+1) ) = 100Hz */
/* 生成100hz频率 32MHz/((3199 + 1) * (99 + 1))= 32000000/320000 = 100Hz */
TIM_TimeBaseStructure.TIM_Prescaler = 3200 - 1; //预分频系数
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
TIM_TimeBaseStructure.TIM_Period = usCycle - 1; //自动重装载值[0 ~ 99]
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分频(无分频)
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
/* Channel 1、2、3、4 Configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PWM模式1 (CNT>CCRx 输出有效电平)
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = usHightime; //占空比 CCRx值
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
TIM_OC1Init(TIM2, &TIM_OCInitStructure);
/* TIM2 counter enable */
TIM_Cmd(TIM2, ENABLE);
/* TIM2 Main Output Enable */
TIM_CtrlPWMOutputs(TIM2, ENABLE);</pre>
复制代码在主函数调整 【设置频率100hz】 占空比从0%--100% 再从100%-->0%
TIM_SetCompare1(TIM2, pwm_cnt);
但是发现led亮度并未发生变化, 不确定是pd5和tim的配置问题还是外围电路
TIM2_Config(200,50);
TIM_SetCompare1(TIM2, 10);
softWareDelay ();
TIM_SetCompare1(TIM2, 15);
softWareDelay ();
TIM_SetCompare1(TIM2, 20);