各位好!
刚接触
STM32F103ZE
开发板很短的时间,打算利用GPIO的外部边沿触发,计算出PWM波形的占空比。
有两个方法:
(1)利用定时器的PWM捕获功能,这种方法已实现,但考虑资源的有限性,打算用第二种方法来实现;
(2)PWM波形触发gpio引脚的双边沿外部中断(EX
ti_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; 引脚初始化输入0),由计时器TIM2记录上升边沿和下降边沿时的TIM2->CNT;
这样,第1次进入上升沿中断时,设置TIM2->CNT=0;之后正常计数,第2次下降沿中断时,记下cn2=TIM2->CNT的值;第3次进入上升沿中断时,同样记下cn3=TIM2->CNT,进入中断的次数清0;如此循环。
PWM的占空比duty=(float)cn2/cn3;
但。。。。。输入的PWM信号用示波器监测着,是标准的矩形波,没有问题,占空比为1/3;但是通过串口得到的占空比却是1/3,2/3随机出现。。。找了好久,还是没找到原因。
有几个疑问:
1.外部中断的双边沿中断,是指上升沿和下降沿都可以产生中断吗?不管边沿的顺序?两个中断是怎么交替工作的?
2.PWM的输入引脚,设置为上拉或是下拉输入模式有影响吗?
项目时间很急,今天周六来公司加了一天的班,就为这个问题。。。。
拜谢各位大神指教,急急急急。。。。。谢谢了!
一周热门 更多>