OpenEdv-开源电子网

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

今天遇到一个奇怪的现象,百思不得其解

[复制链接]

16

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
668
金钱
668
注册时间
2018-11-2
在线时间
141 小时
发表于 2025-4-25 18:31:30 | 显示全部楼层 |阅读模式
1金钱
我用STM32F407VET6的Tim2Ch2外部计数模式对外部频率信号A进行计数,每600ms读取Tim2的CNT寄存器并清空,同时使用Tim5Ch3的输入捕捉模式计算外部频率信号A的脉宽(只获取脉宽应用层没有使用),串口1每10ms通过DMA发送一个18字节的数据。
奇怪的是,当外部输入信号频率超过400多K(具体频率没测出来反正到不了500K)串口就停止发送数据了(没有死机,仿真的话可以看到正确的输入信号频率),把输入信号频率降下来串口又能恢复。测试时间太短没有细测,这个问题也不影响使用(实际使用时外部信号频率不会超过100K)。有没有吊大的伙计们提供一下排查思路。

最佳答案

查看完整内容[请看2#楼]

(没有死机,仿真的话可以看到正确的输入信号频率) 这不能确定没有死机,如果频率计算是在中断处理的,只能说明这个中断还在响应 先在串口发送部分放个断点看看有没有进去,划分一下区间吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

1444

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2237
金钱
2237
注册时间
2010-12-16
在线时间
199 小时
发表于 2025-4-25 18:31:31 | 显示全部楼层
(没有死机,仿真的话可以看到正确的输入信号频率)
这不能确定没有死机,如果频率计算是在中断处理的,只能说明这个中断还在响应

先在串口发送部分放个断点看看有没有进去,划分一下区间吧
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复

使用道具 举报

16

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
668
金钱
668
注册时间
2018-11-2
在线时间
141 小时
 楼主| 发表于 2025-4-27 09:18:29 | 显示全部楼层
shihantu 发表于 2025-4-25 19:28
(没有死机,仿真的话可以看到正确的输入信号频率)
这不能确定没有死机,如果频率计算是在中断处理的,只 ...

真是老糊涂了,因为我开着输入捕捉,频率太高输入捕捉进中断频率太高把CPU资源吃完了。我光想着外部计数忘了输入捕捉了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 13:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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