OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2582|回复: 6

使用定时器外部中断采集占空比数据跳变问题

[复制链接]

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2019-7-3
在线时间
167 小时
发表于 2020-3-8 10:53:39 | 显示全部楼层 |阅读模式
单片机是STM32F103的,使用的是外部中断和定时采集的高电平,没有使用输入捕获(输入捕获是特定的硬件管脚)。但是发现高电平一直不能稳定下来,采集的信号的频率是145HZ,周期是7MS.为了保证一定的精度和采集的灵敏度,现在的定时设置为了如下的参数,但是串口中的数据还是跳变,使用了滤波器和平均数处理都不行,我个人觉得还是这个采集方式的问题,但是不知道如果处理。就是我我现在采集的是单纯的高电平没有采集周期,是单纯的采集周期得到占空比数据比较稳定还是就这种高电平的采集数据比较稳定,求指导一下
复制代码


QQ截图20200308104809.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2019-7-3
在线时间
167 小时
 楼主| 发表于 2020-3-8 10:55:00 | 显示全部楼层
主函数定时器配置代码
  1.         TIM2_Cap_Init(0XFFFF,100-1);              //1US分辨率 计数值65535 最大60ms
  2.         TIM3_Cap_Init(0XFFFF,100-1);              //1US分辨率 计数值65535 最大60ms
  3.         TIM4_Cap_Init(0XFFFF,100-1);              //1US分辨率 计数值65535 最大60ms         
  4.         delay_us(10);
  5.         EXTI_PA1_Init();                  //配置外部中断1
  6.         EXTI_PA2_Init();                  //配置外部中断2
  7.         EXTI_PA3_Init();                  //配置外部中断3       
复制代码
回复 支持 反对

使用道具 举报

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2019-7-3
在线时间
167 小时
 楼主| 发表于 2020-3-8 10:55:41 | 显示全部楼层
外部中断的配置代码
  1. unsigned short High_Time_us_PA1=0; //PA1高电平时间
  2. unsigned short High_Time_us_PA2=0; //PA2高电平时间
  3. unsigned short High_Time_us_PA3=0; //PA3高电平时间

  4. void EXTI1_IRQHandler(void)                       //EXTI_Line1
  5. {
  6.   if(EXTI_GetITStatus(EXTI_Line1)!= RESET)      
  7.   {
  8.     if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1))        //上升沿中断
  9.                 {
  10.                         TIM2->CNT=0;         //从0开始计数
  11.                         TIM_Cmd(TIM2,ENABLE);//启动定时器2
  12.                 }
  13.     else //下降沿中断
  14.     {
  15.             High_Time_us_PA1=TIM2->CNT;//将高电平时间读出来
  16.                   TIM_Cmd(TIM2,DISABLE); //关闭定时器2等待下次测量
  17.                         TIM2->CNT=0;           //计数值清零
  18.     }       
  19.                 EXTI->PR = EXTI_Line1;//清除中断标志

  20.   }
  21. }


  22. void EXTI2_IRQHandler(void)                       //EXTI_Line2
  23. {
  24.   if(EXTI_GetITStatus(EXTI_Line2)!= RESET)      
  25.   {
  26.     if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2))        //上升沿中断
  27.                 {
  28.                         TIM3->CNT=0;         //从0开始计数
  29.                         TIM_Cmd(TIM3,ENABLE);//启动定时器3
  30.                 }
  31.     else //下降沿中断
  32.     {
  33.             High_Time_us_PA2=TIM3->CNT;//将高电平时间读出来
  34.                   TIM_Cmd(TIM3,DISABLE); //关闭定时器3等待下次测量
  35.                         TIM3->CNT=0;           //计数值清零
  36.     }       
  37.                 EXTI->PR = EXTI_Line2;//清除中断标志
  38.   }
  39. }


  40. void EXTI3_IRQHandler(void)                       //EXTI_Line3
  41. {
  42.   if(EXTI_GetITStatus(EXTI_Line3)!= RESET)      
  43.   {
  44.     if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3))        //上升沿中断
  45.                 {
  46.                         TIM4->CNT=0;         //从0开始计数
  47.                         TIM_Cmd(TIM4,ENABLE);//启动定时器4
  48.                 }
  49.     else //下降沿中断
  50.     {
  51.             High_Time_us_PA3=TIM4->CNT;//将高电平时间读出来
  52.                   TIM_Cmd(TIM4,DISABLE); //关闭定时器4等待下次测量
  53.                         TIM4->CNT=0;           //计数值清零
  54.     }       
  55.                 EXTI->PR = EXTI_Line3;//清除中断标志
  56.   }
  57. }
复制代码
回复 支持 反对

使用道具 举报

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2019-7-3
在线时间
167 小时
 楼主| 发表于 2020-3-8 16:08:29 | 显示全部楼层
有人吗
回复 支持 反对

使用道具 举报

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2019-7-3
在线时间
167 小时
 楼主| 发表于 2020-3-9 18:10:20 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2019-7-3
在线时间
167 小时
 楼主| 发表于 2020-3-13 19:51:07 | 显示全部楼层
继续顶
回复 支持 反对

使用道具 举报

12

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2019-7-3
在线时间
167 小时
 楼主| 发表于 2020-3-16 18:44:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 15:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表