搜索

[MM32软件] MM32F003TW输入捕获不成功

[复制链接]
1156|4
uccms|  楼主 | 2021-6-3 15:14 | 显示全部楼层 |阅读模式
TI, ni, IO, pi, ic, struct
本帖最后由 uccms 于 2021-6-4 09:07 编辑
  1.     GPIO_InitTypeDef GPIO_InitStruct;
  2.     TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
  3.     TIM_ICInitTypeDef TIM2_ICInitStruct;
  4.     NVIC_InitTypeDef NVIC_InitStruct;
  5.    
  6.     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
  7.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);    // 时钟使能
  8.    
  9.     GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;    // 速度为50MHz
  10.     GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;//GPIO_Mode_IN_FLOATING;
  11.     GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
  12.     GPIO_Init(GPIOB, &GPIO_InitStruct);
  13.     GPIO_WriteBit(GPIOB, GPIO_Pin_6, Bit_SET);
  14.    
  15.     GPIO_PinAFConfig(GPIOB, GPIO_Pin_6, GPIO_AF_4);    // TIM2_CH1
  16.    
  17.     TIM_TimeBaseInitStruct.TIM_Period = arr;    // 设置自动重装载值
  18.     TIM_TimeBaseInitStruct.TIM_Prescaler = psc;    // 设置定时器预分频值
  19.     TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;    // 设置时钟分频
  20.     TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;    // 计数模式
  21.     TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;    // 重复计数器的值
  22.     TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);    // 初始化定时器
  23.    
  24.     //输入捕获参数初始化
  25.     TIM2_ICInitStruct.TIM_Channel = TIM_Channel_1;    //选择输入端 IC1映射到TI1上
  26.     TIM2_ICInitStruct.TIM_ICPolarity = TIM_ICPolarity_Falling;    // 边沿捕获
  27.     TIM2_ICInitStruct.TIM_ICSelection = TIM_ICSelection_DirectTI;    // 映射到TI1上
  28.     TIM2_ICInitStruct.TIM_ICPrescaler = TIM_ICPSC_DIV1;    // 配置输入分频
  29.     TIM2_ICInitStruct.TIM_ICFilter = 0x00;    //配置输入滤波器
  30.     TIM_ICInit(TIM2, &TIM2_ICInitStruct);
  31.    
  32.     //TIM_SetCounter(TIM2, 0);
  33.    
  34.     NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn;    // 中断源
  35.     NVIC_InitStruct.NVIC_IRQChannelPriority = 0;    // 优先级
  36.     NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;    // 中断通道使能
  37.     NVIC_Init(&NVIC_InitStruct);
  38.    
  39.     TIM_ClearFlag(TIM2, TIM_FLAG_Update | TIM_FLAG_CC1);    // 清除中断标志位
  40.     TIM_ITConfig(TIM2, TIM_IT_Update | TIM_IT_CC1 ,ENABLE);    // 使能定时器中断
  41.    
  42.     TIM_Cmd(TIM2, ENABLE);    //使能TIMx外设
复制代码


定时器溢出中断正常,但是捕获中断一直没反应。不知哪里问题,帮忙看看,谢谢。

使用特权

评论回复
weifeng90| | 2021-6-3 21:12 | 显示全部楼层
看程序没问题啊

使用特权

评论回复
uccms|  楼主 | 2021-6-3 21:53 | 显示全部楼层
本帖最后由 uccms 于 2021-6-3 21:56 编辑

研究了1天了,还是没找出问题,直接用寄存器写,也不行,不知问题出在哪,买的最小系统板和自己设计的产品板子都试了,还是不行。,有没大佬有板子的试试,给点建议。谢谢哇!

使用特权

评论回复
uccms|  楼主 | 2021-6-4 10:38 | 显示全部楼层
原来这句写错了
GPIO_PinAFConfig(GPIOB, GPIO_Pin_6, GPIO_AF_4);    // TIM2_CH1
正确的
GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_4);    // TIM2_CH1
搞死了。。。

使用特权

评论回复
guijial511| | 2021-6-7 20:54 | 显示全部楼层
哈哈,犯了低级错误啊这是。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 wolfe_yu 得到打赏 ¥180.00
  • 2 最美葫芦娃 得到打赏 ¥155.00
  • 3 hk386 得到打赏 ¥75.00
  • 4 火星国务卿 得到打赏 ¥63.00
  • 5 两只袜子 得到打赏 ¥56.00
  • 6 laocuo1142 得到打赏 ¥50.00
  • 7 linghz 得到打赏 ¥45.00
  • 8 gaon2 得到打赏 ¥45.00
  • 9 ezcui 得到打赏 ¥45.00
  • 10 jlc317 得到打赏 ¥40.00
在线客服 快速回复 返回顶部 返回列表