汇集网友智慧,解决技术难题
PWM 定时器 触发 GD32F303 更新 遇到
赞0
评论
2026-02-20
2025-12-02
点击图片添加到编辑器内容中
点击文件名将附件添加到文章中
提交
tyw
320个答案
天意无罪
288个答案
xch
281个答案
dffzh
225个答案
jjjyufan
213个答案
coody
204个答案
LcwSwust
172个答案
地瓜patch
149个答案
赞0
while (HAL_IC***** != HAL_OK){;}
之类的确认就可以了,我以前出现过很多类似的事件,
例如 HAL_PWM_Start(),经常有没按我想象的时间启动,总有个"启动"过程。
以前的例程这些都有,但后来发现没有也可以,所以大家慢慢都省了,其实
在逻辑和时间要求严格的地方,是不可以的!
评论
2026-02-20
赞0
评论
2025-12-02
赞0
评论
2025-12-02
赞0
评论
2025-12-02
赞0
评论
2025-12-02
赞0
评论
2025-12-02
赞0
评论
2025-12-02
赞0
rcu_periph_clock_enable(RCU_TIMER2);
nvic_irq_enable(TIMER2_IRQn,1,0);
BSP_IntVectSet(BSP_INT_ID_TIM3, BSP_TIM_Capture_IRQHandler);
gpio_init(GPIOA,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_7);
/************************定时器配置****************************/
FANCAPTURETIM.prescaler=19;
FANCAPTURETIM.alignedmode=TIMER_COUNTER_EDGE;
FANCAPTURETIM.counterdirection=TIMER_COUNTER_CENTER_UP;
FANCAPTURETIM.period=63999;
FANCAPTURETIM.clockdivision=TIMER_CKDIV_DIV1;
timer_init(TIMER2,&FANCAPTURETIM);
timer_auto_reload_shadow_enable(TIMER2);//使能自动装载影子寄存器
timer_internal_clock_config(TIMER2); //配置为内部时钟模式
sConfigIC.icpolarity = TIMER_IC_POLARITY_RISING;
sConfigIC.icselection = TIMER_IC_SELECTION_DIRECTTI;
sConfigIC.icprescaler = TIMER_IC_PSC_DIV1;
sConfigIC.icfilter = 0;
timer_input_capture_config( TIMER2 , TIMER_CH_1 , &sConfigIC);
timer_input_trigger_source_select(TIMER2,TIMER_SMCFG_TRGSEL_CI1FE1);
timer_slave_mode_select(TIMER2,TIMER_SLAVE_MODE_RESTART);
timer_master_slave_mode_config(TIMER2,TIMER_MASTER_SLAVE_MODE_ENABLE);
timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_UP);
timer_interrupt_enable(TIMER2,TIMER_INT_UP);
timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_CH1);
timer_interrupt_enable(TIMER2,TIMER_INT_CH1);
timer_enable(TIMER2);
////////////////***********中断函数如下****************////////////////////////
if(timer_interrupt_flag_get(TIMER2,TIMER_INT_FLAG_CH1))
{
timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_CH1);
timer_counter_value_config(TIMER2,0);
g_motor_speed_val = timer_channel_capture_value_register_read(TIMER2,TIMER_CH_1)+1;
}
if(timer_interrupt_flag_get(TIMER2,TIMER_INT_FLAG_UP))
{
timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_UP);
g_motor_speed_val = 0xffff;
}
评论
2025-12-02
您需要登录后才可以回复 登录 | 注册