硬汉嵌入式论坛

 找回密码
 立即注册
查看: 508|回复: 8
收起左侧

[技术讨论] 多个串口高波特率下中断接收

[复制链接]

7

主题

11

回帖

32

积分

新手上路

积分
32
发表于 2024-1-12 19:09:00 | 显示全部楼层 |阅读模式
多个串口采用中断接收方式,高波特率下单片机能否做到不丢帧,72M主频的话能否正常工作,或者需要正常工作需要用多少主频的片子。
回复

使用道具 举报

41

主题

215

回帖

338

积分

高级会员

积分
338
发表于 2024-1-12 20:31:59 | 显示全部楼层
1. 多个是几个
2. 波特率多少
3. 算出最坏情况,同时3个一起收,中断进出的时间
回复

使用道具 举报

7

主题

11

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2024-1-13 12:29:47 | 显示全部楼层
snakeemail 发表于 2024-1-12 20:31
1. 多个是几个
2. 波特率多少
3. 算出最坏情况,同时3个一起收,中断进出的时间

就2个呢,均为2M,其实我想问的是如何估算的问题,有没可以参考的算法之类的。
回复

使用道具 举报

7

主题

11

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2024-1-13 12:30:05 | 显示全部楼层
snakeemail 发表于 2024-1-12 20:31
1. 多个是几个
2. 波特率多少
3. 算出最坏情况,同时3个一起收,中断进出的时间

就2个呢,均为2M,其实我想问的是如何估算的问题,有没可以参考的算法之类的。
回复

使用道具 举报

7

主题

11

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2024-1-13 12:30:26 | 显示全部楼层
就2个呢,均为2M,其实我想问的是如何估算的问题,有没可以参考的算法之类的。
回复

使用道具 举报

0

主题

124

回帖

124

积分

初级会员

积分
124
发表于 2024-1-13 13:43:05 | 显示全部楼层
计算方法
接收到一个数据后,到下一数据来之间的时间差 t= 10/波特率, 假如波特率=115200,  t=86.8us, 假如你有N个通道, 那就是说在86.8us内要处理N个中断。
不知道你要怎样处理这样数据,所以没法判断一个中断的时间。
回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2024-1-14 23:00:21 | 显示全部楼层
M0核的MCU主频大概10M,中断接收115200就不太行了,启用了FIFO才解决
回复

使用道具 举报

6

主题

88

回帖

106

积分

初级会员

积分
106
发表于 2024-1-17 08:32:37 | 显示全部楼层
你这不是给自己找事做吗,这么高优先用稳妥的方法 比如DMA ,硬件FIFO,单纯中断就算不丢,稳定性也不行。
回复

使用道具 举报

14

主题

62

回帖

104

积分

初级会员

积分
104
发表于 2024-1-20 09:32:19 | 显示全部楼层
多路高波特率用DMA解决最方便,中断太消耗MCU,就是H7也受不了
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-7 22:06 , Processed in 0.306978 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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