OpenEdv-开源电子网

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

stm32想同时使用5个串口,需要设置优先级嘛

[复制链接]

32

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2021-3-21
在线时间
172 小时
发表于 2022-11-18 16:42:00 | 显示全部楼层 |阅读模式
1金钱
单片机为STM32F103VCT6,想用5个串口同时接收5个外设的数据,这样需要设置优先级嘛?

慎独
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2676
金钱
2676
注册时间
2018-11-8
在线时间
431 小时
发表于 2022-11-18 17:39:42 | 显示全部楼层
你不设也会有默认的优先级 串口1优先级最高 5最低
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-11-18 18:43:53 | 显示全部楼层
当然需要设置。哪个外设最重要,数据一点也不能漏掉,就排最高优先级。按重要程序依次降序。
回复

使用道具 举报

10

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2015-5-14
在线时间
352 小时
发表于 2022-11-19 10:59:18 | 显示全部楼层
如果代码结构能够保证5个串口接收数据都不丢,也就是说中断执行时间短、临界区时间短、中断嵌套时间短,这样可以不用设置;如果5个串口中必然会有一个偶尔丢失数据,那就按着5个串口数据重要程度分配优先级。
30年众生牛马,60年诸佛龙象!
回复

使用道具 举报

32

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2021-3-21
在线时间
172 小时
 楼主| 发表于 2022-11-19 15:37:41 | 显示全部楼层
babyrabbit 发表于 2022-11-18 17:39
你不设也会有默认的优先级 串口1优先级最高 5最低

用了接收中断的话,应该需要配置吧
慎独
回复

使用道具 举报

32

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2021-3-21
在线时间
172 小时
 楼主| 发表于 2022-11-19 15:38:18 | 显示全部楼层
c2007s 发表于 2022-11-18 18:43
当然需要设置。哪个外设最重要,数据一点也不能漏掉,就排最高优先级。按重要程序依次降序。

数据一样重要
慎独
回复

使用道具 举报

32

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2021-3-21
在线时间
172 小时
 楼主| 发表于 2022-11-19 15:38:46 | 显示全部楼层
无痕幽雨 发表于 2022-11-19 10:59
如果代码结构能够保证5个串口接收数据都不丢,也就是说中断执行时间短、临界区时间短、中断嵌套时间短,这 ...

好的,非常感谢
慎独
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-11-19 18:49:08 | 显示全部楼层
波特率别太高,保证一个bit时长足够MCU进出5次串口中断,还考虑其他可能的中断干扰,取10倍数量级差不多。比如全部中断几乎同时到来,串口均为115200波特率,1bit时长是8.68us,MCU能在1us内处理完全部中断,那所有数据都不会丢失。同样,如果波特率设为9600,1bit时长是104us,MCU只要在10us内处理完成所有中断就行了。
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2676
金钱
2676
注册时间
2018-11-8
在线时间
431 小时
发表于 2022-11-19 19:02:52 | 显示全部楼层
本帖最后由 babyrabbit 于 2022-11-19 19:03 编辑
Amiao 发表于 2022-11-19 15:37
用了接收中断的话,应该需要配置吧

可以不配置中断分组 会有默认的顺序依次进中断 同时来中断的话 串口1会先进 5最后进。把重要的东西放串口1就行了 反正无论怎么配置 总有一个优先级会最高
回复

使用道具 举报

32

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2021-3-21
在线时间
172 小时
 楼主| 发表于 2022-12-27 09:05:12 | 显示全部楼层
c2007s 发表于 2022-11-19 18:49
波特率别太高,保证一个bit时长足够MCU进出5次串口中断,还考虑其他可能的中断干扰,取10倍数量级差不多。 ...

请问怎么知道进一次中断需要的时间?
慎独
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-12-27 10:12:07 | 显示全部楼层
Amiao 发表于 2022-12-27 09:05
请问怎么知道进一次中断需要的时间?

自己测试啊。进出中断翻转一次IO口状态,示波器测一下脉宽,减去IO口翻转的动作时间
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 18:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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