你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
stm定时器采集高电平数据有波动
[复制链接]
麦龙电子
提问时间:2020-3-16 20:19 /
问答
是否解决:
通过STM32F103RCT6需要采集3路方波的高电平,没有使用输入捕获采集(输入捕获是特定的引脚,比较麻烦)采集的方波的周期是7MS频率145HZ,通过定时加外部中断的方式实现了采集,由于对采集电平的精度有要求,所以在串口直接打印得到的数据上看会有最小位数为10左右的跳动。但是通过软件滤波没有实现平稳的输出。我个人觉得是采集的方式有问题,导致的数据跳动,有没有高手请教一下,通过软件来修正一下,使用了窗口滑动滤波测试效果很差,延迟比较严重。
初始化部分
复制代码
串å£æå°è¾åºæ°æ®
赞
0
收藏
0
评论
4
分享
发布时间:2020-3-16 20:19
举报
请先
登录
后回复
4个回答
麦龙电子
回答时间:2020-3-16 20:30:22
a0a.1 32b0c
TIM2_Cap_Init(0XFFFF,100-1); //1US分辨率 计数值65535 最大60ms
TIM3_Cap_Init(0XFFFF,100-1); //1US分辨率 计数值65535 最大60ms
TIM4_Cap_Init(0XFFFF,100-1); //1US分辨率 计数值65535 最大60ms
delay_us(10);
EXTI_PA1_Init(); //配置外部中断1
EXTI_PA2_Init(); //配置外部中断2
EXTI_PA3_Init(); //配置外部中断3
unsigned short High_Time_us_PA1=0; //PA1高电平时间
unsigned short High_Time_us_PA2=0; //PA2高电平时间
unsigned short High_Time_us_PA3=0; //PA3高电平时间
void EXTI1_IRQHandler(void) //EXTI_Line1
{
if(EXTI_GetITStatus(EXTI_Line1)!= RESET)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)) //上升沿中断
{
TIM2->CNT=0; //从0开始计数
TIM_Cmd(TIM2,ENABLE);//启动定时器2
}
else //下降沿中断
{
High_Time_us_PA1=TIM2->CNT;//将高电平时间读出来
TIM_Cmd(TIM2,DISABLE); //关闭定时器2等待下次测量
TIM2->CNT=0; //计数值清零
}
EXTI->PR = EXTI_Line1;//清除中断标志
}
}
void EXTI2_IRQHandler(void) //EXTI_Line2
{
if(EXTI_GetITStatus(EXTI_Line2)!= RESET)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)) //上升沿中断
{
TIM3->CNT=0; //从0开始计数
TIM_Cmd(TIM3,ENABLE);//启动定时器3
}
else //下降沿中断
{
High_Time_us_PA2=TIM3->CNT;//将高电平时间读出来
TIM_Cmd(TIM3,DISABLE); //关闭定时器3等待下次测量
TIM3->CNT=0; //计数值清零
}
EXTI->PR = EXTI_Line2;//清除中断标志
}
}
void EXTI3_IRQHandler(void) //EXTI_Line3
{
if(EXTI_GetITStatus(EXTI_Line3)!= RESET)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)) //上升沿中断
{
TIM4->CNT=0; //从0开始计数
TIM_Cmd(TIM4,ENABLE);//启动定时器4
}
else //下降沿中断
{
High_Time_us_PA3=TIM4->CNT;//将高电平时间读出来
TIM_Cmd(TIM4,DISABLE); //关闭定时器4等待下次测量
TIM4->CNT=0; //计数值清零
}
EXTI->PR = EXTI_Line3;//清除中断标志
}
}
复制代码
赞
0
评论
回复
支持
反对
麦龙电子
回答时间:2020-3-17 20:24:44
a1024a.1 32b0c
赞
0
评论
回复
支持
反对
麦龙电子
回答时间:2020-3-18 18:15:27
a1024a.1 32b0c
赞
0
评论
回复
支持
反对
mylovemcu
回答时间:2020-3-19 14:35:21
a0a.1 32b0c
我没有实际做过 不过感觉你这个属于正常吧 1us的分辨率 波动个7-8us很正常
再说了 输入信号的稳定性也有关系啊
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
再说了 输入信号的稳定性也有关系啊