大众信息网

不知道为什么,STM8S的TIM4一直进不了中断

答案:2  mip版
解决时间 2021-01-16 11:59
  • 提问者网友:莪早已看透了誓言
  • 2021-01-16 03:09
不知道为什么,STM8S的TIM4一直进不了中断
最佳答案
  • 二级知识专家网友:闪光的男人
  • 2021-01-16 03:26
配置好了?
void TIM4_Config(void)
{

TIM4_DeInit();

TIM4_TimeBaseInit(TIM4_PRESCALER_1,250);//时间自己改成需要的


TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);


TIM4_ARRPreloadConfig(ENABLE);


TIM4_Cmd(ENABLE);
}
在main函数中
main()
{
TIM4_Config(); TIM4初始化、使能
enableInterrupts();//总中断使能
while(1)
{
}
}

然后再就能进了
全部回答
  • 1楼网友:千里故人稀
  • 2021-01-16 04:46
//用固件库方便些#include "stm8s_lib.h"#define ccr1_val ((u16)2047) #define ccr2_val ((u16)1535) #define ccr3_val ((u16)1023) #define ccr4_val ((u16)511) void main(void) { tim1_deinit(); tim1_timebaseinit(0, tim1_countermode_up, 4095, 0); tim1_oc1init(tim1_ocmode_pwm2, tim1_outputstate_enable, tim1_outputnstate_enable, ccr1_val, tim1_ocpolarity_low, tim1_ocnpolarity_high, tim1_ocidlestate_set, tim1_ocidlestate_reset); tim1_oc2init(tim1_ocmode_pwm2, tim1_outputstate_enable, tim1_outputnstate_enable, ccr2_val, tim1_ocpolarity_low, tim1_ocnpolarity_high, tim1_ocidlestate_set, tim1_ocidlestate_reset); tim1_oc3init(tim1_ocmode_pwm2, tim1_outputstate_enable, tim1_outputnstate_enable, ccr3_val, tim1_ocpolarity_low, tim1_ocnpolarity_high, tim1_ocidlestate_set, tim1_ocidlestate_reset); // tim1_oc4init(tim1_ocmode_pwm2, tim1_outputstate_enable, ccr4_val, tim1_ocpolarity_low, tim1_ocidlestate_set); //gpio_init(gpiod,gpio_pin_7,gpio_mode_out_pp_low_fast); //opt_init1.opt2=(opt_init1.opt2|0x10); tim1_cmd(enable); tim1_ctrlpwmoutputs(enable); while (1) { } }#ifdef full_assert void assert_failed(u8 *file, u16 line) #else void assert_failed(void) #endif { while (1) { } } //不用固件库直接操作我只试过 tim2 tim3 不过tim1应该差不多,你自己参考,我只知道这么多了,莫追问void tim2_init(void) //tim2 ch1 工作于模式1 { tim2_ccmr1= 0x60; // pwm 模式 1,tim2 ch1 tim2_ccer1= 0x03; // cc1配置为输出 tim2_ccer2= 0x03; // cc3使能 tim2_arrh = 0x03; // 配置pwm分辨率为10位,arr=0x3ff tim2_arrl = 0xff; // pwm频率=8m/0x03ff=7820hz tim2_cr1 |= 0x01; // 计数器使能,开始计数 }void run(void) { tim2_ccr1=value; tim2_ccr3=value; tim3_ccr2=value; tim3_ccr1=value; //注意每个通道都要设ccr }
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯