各位好,我用stm32f103t6的tim1_ch1输出pwm,用tim3作为定时器每隔一段时间更新pwm的输出频率和占空比。频率 uint8_t freq[17] = {4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; 占空比 uint8_t duty[17] = {5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85}; 现在遇到的问题是先初始化pwm,再初始化定时器,那么pwm的输出是从小到大的顺序; 如果先初始化定时器,再初始化pwm,那么pwm的输出是从大到小的顺序,完全反过来了。 初始化的顺序不同为什么会影响到pwm的输出呢? |
占空比:放映信号中高低电平所占在比重。
tim1_ch1输出pwm和TIM3定时器没有联系。
假如你用TIM1输出PWM,那就配置TIM1就行,初始化定时器就是配置时基单元(周期),配置PWM就是配置比较寄存器(占空比)。
其实没有看懂你第一句话要表达什么。
评分
查看全部评分
可能是我没表述清楚
我现在用tim1的ch1输出pwm方波控制电磁铁,另外用tim3作为定时器计时,每隔固定时间(比如20s)改变pwm的频率和占空比。就按照第一个帖子中的两个数组来设置参数。
现在的问题是按照 pwm_init(); tim3_init()的顺序初始化,pwm的输出就按照数组从小到大输出,
但是按照 tim3_init(); pwm_init()的顺序初始化,pwm的输出就按照数组从大到小输出,相当于完全相反。
不知道这样描述清楚了吗?
方便把代码放上来吗?
没有解决
我的问题已经解决了。我是调用了高级定时器,但是由于结构体中有部分成员没初始化,所以导致了部分成员按照默认的进行初始化,所以出现问题了。