关于正点原子F103输入捕获例程里的疑问

2019-08-11 16:49发布

int main(void)
{               
        u32 temp=0;
        delay_init();                     //延时函数初始化          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        uart_init(115200);         //串口初始化为115200
        LED_Init();                             //LED端口初始化

        TIM3_PWM_Init(899,0);                 //不分频。PWM频率=72000/(899+1)=80Khz
        TIM5_Cap_Init(0XFFFF,72-1);        //以1Mhz的频率计数
           while(1)
        {
                delay_ms(10);
                TIM_SetCompare2(TIM3,TIM_GetCapture2(TIM3)+1);

                if(TIM_GetCapture2(TIM3)==300)TIM_SetCompare2(TIM3,0);
                ……
后面两句真的无法理解,例程讲解直接跳过了,TIM_GetCapture2(TIM3)这个意思是对TIM3-CH2的捕获吗?但是timer.c文件里也没有对TIM3-CH2做输入捕获的初始化,只是做的输出比较的初始化。请大神帮忙解释,这是我的第一次提问,先谢谢了。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
kevinH4959
1楼-- · 2019-08-11 22:10
 精彩回答 2  元偷偷看……
275891381
2楼-- · 2019-08-12 04:08
本帖最后由 275891381 于 2017-10-29 22:53 编辑

就是tim3的pwm输出,控制tim3中断里面的那个灯变成呼吸灯,提示作用吧,给捕获没关系;就是写的太难以理解,还是看上一讲pwm输出吧,基本一个效果,就是这个是 逐渐变亮--突然最不亮--再逐渐变亮
kevinH4959
3楼-- · 2019-08-12 05:56
275891381 发表于 2017-10-29 22:38
就是tim3的pwm输出,控制tim3中断里面的那个灯变成呼吸灯,提示作用吧,给捕获没关系;就是写的太难以理解 ...

TIM3跟捕获没关系,也可以使用TIM_GetCapture2函数?
275891381
4楼-- · 2019-08-12 08:59
kevinH4959 发表于 2017-10-29 23:27
TIM3跟捕获没关系,也可以使用TIM_GetCapture2函数?

TIM_GetCapture2 是读取当前计数器通道2的计数值,定时任何功能计数器的值都会增加呀。你还是没理解透定时器怎么工作的
kevinH4959
5楼-- · 2019-08-12 13:03
TIM3不需要设置捕获模式,也可以利用TIM_GetCapture2函数返回计数器的值,好神奇。固件库说“获得 TIMx 输入捕获 2 的值”,因为这句话,让我认为是外部(上升沿或下降沿)的信号触发TIM3-CH2的捕获。
kevinH4959
6楼-- · 2019-08-12 15:57
 精彩回答 2  元偷偷看……

一周热门 更多>