F4实现用定时器计脉冲个数问题

2019-07-20 15:18发布

 就是通过定时器想读取输入脉冲个数  
函数是照着F1的基本设置配置的 昨天原子哥也给了输入浮空的配置 可 搞了很久也没读出数据来。用TIM5读PA0的脉冲个数 按道理可以实现的啊?难道是我哪里没配置成功?  [mw_shl_code=c,true]void TIM5_CH1_Cap_Init(u32 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; TIM_ICInitTypeDef TIM5_ICInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE); //TIM5时钟使能 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能PORTA时钟 //实现PA0输入浮空 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //GPIOA0 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//复用功能输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //速度100MHz // GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽复用输出 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //nopull GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化PA0 TIM_TimeBaseStructure.TIM_Prescaler=psc; //定时器分频 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式 TIM_TimeBaseStructure.TIM_Period=arr; //自动重装载值 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure); TIM_TIxExternalClockConfig(TIM5,TIM_TIxExternalCLK1Source_TI1,TIM_ICPolarity_Rising,0);//TIM5设为外部时钟 触发 TIM_SetCounter(TIM5, 0); TIM_Cmd(TIM5,ENABLE ); //使能定时器5 }[/mw_shl_code]

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
硅谷传奇
1楼-- · 2019-07-20 17:56
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-20 19:43
你做输入脉冲计数,应该选择复用功能才对。
你设置浮空估计不行
硅谷传奇
3楼-- · 2019-07-21 01:38
回复【2楼】正点原子:
---------------------------------
复用功能 然后PA0的输入浮空还要设置的吧?还是如上的设法吗? 这样就可以了吗?都不知道怎么设置了 原子哥是不是都有官方列程的啊? 不然一些函数真不知怎么用
正点原子
4楼-- · 2019-07-21 07:00
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 09:52
回复【5楼】硅谷传奇:
---------------------------------
谢谢分享
cxc
6楼-- · 2019-07-21 12:49
楼主可以分享一下中断服务程序吗?

一周热门 更多>