2019-07-21 03:37发布
LearnerLi 发表于 2019-4-1 16:02 我确实发现这样一个错误,需要将HAL库中的函数TIM_CCxChannelCmd: void TIM_CCxChannelCmd(TIM_TypeDef* ...
c16 发表于 2019-4-1 16:06 你可以具体说一下你要用定时器做什么,有没有用中断之类的,你问题说的有点笼统,不知道怎么回答。
jermy_z 发表于 2019-4-1 16:16 定时器还没发现有啥异常的,但是中断一定不要用他自己生成的,自己写,自动生成的太臃肿
最多设置5个标签!
void TIM_CCxChannelCmd(TIM_TypeDef* TIMx, uint32_t Channel, uint32_t ChannelState)
{
uint32_t tmp = 0U;
/* Check the parameters */
assert_param(IS_TIM_CC1_INSTANCE(TIMx));
assert_param(IS_TIM_CHANNELS(Channel));
tmp = TIM_CCER_CC1E << Channel;
/* Reset the CCxE Bit */
TIMx->CCER &= ~tmp;
/* Set or reset the CCxE Bit */
TIMx->CCER |= (uint32_t)(ChannelState << Channel);
}
修改为以下这样
void TIM_CCxChannelCmd(TIM_TypeDef* TIMx, uint32_t Channel, uint32_t ChannelState)
{
uint32_t tmp = 0U;
/* Check the parameters */
assert_param(IS_TIM_CC1_INSTANCE(TIMx));
assert_param(IS_TIM_CHANNELS(Channel));
tmp = TIM_CCER_CC1E << (Channel - 1) * 4;
/* Reset the CCxE Bit */
TIMx->CCER &= ~tmp;
/* Set or reset the CCxE Bit */
TIMx->CCER |= (uint32_t)(ChannelState << (Channel - 1) * 4);
}
并且需要在初始化后使用函数HAL_TIM_PWM_Start来开启定时器功能。
附:
CubeMX-V4.26.0
Firmware Package Version 1.6.1
你可以试试!
好的,我试试看
就是做一个定时器定时1秒进入中断,在中断里控制LED翻转的程序
好的,我试一下自己写中断服务函数试试
一周热门 更多>