OpenEdv-开源电子网

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

stm32c8t6 两个串口同时使用中断优先级问题

[复制链接]

6

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2016-9-24
在线时间
80 小时
发表于 2017-4-25 20:59:02 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 lygxnb 于 2017-4-25 21:44 编辑

最近在做一个工程,要两个MODBUS主机交换数据。于是乎就用STM32C8T6做了个中转板,即1个STM32C8T6里运行了两套MODBUS从机程序,使用两个串口(1和3)和两个主机通信,同时使用了TIM1和TIM3做监控,通信还算正常,达到预期效果。就是有个小问题,两个从机偶尔都会TIMOUT一下,出现频率不大,但这也得解决,请教达人们,不知道这是不是两个串口中断优先级在作怪呢?目前两个串口的中断优先级设置都是按照原子大大的例程搬的全部都是3,谢谢大家了。

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

使用道具 举报

6

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2016-9-24
在线时间
80 小时
 楼主| 发表于 2017-4-25 20:59:24 | 显示全部楼层
原来发错版块了,搬这边看看
回复

使用道具 举报

6

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2016-9-24
在线时间
80 小时
 楼主| 发表于 2017-4-26 17:32:09 | 显示全部楼层
中断优先级2的那个口就稳定,中断优先级3的那个口就时不时出现TIMOUT,可能是通信中被打断再回来就超时了,有什么好的解决方法
回复

使用道具 举报

2

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-4-15
在线时间
27 小时
发表于 2017-4-26 21:21:06 | 显示全部楼层
学习一下
回复

使用道具 举报

6

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2016-9-24
在线时间
80 小时
 楼主| 发表于 2017-4-26 21:27:49 | 显示全部楼层
唉!还是想不通啊!不管哪个串口优先级放到后面,肯定都有被优先级高的打断的时候,一打断等再回来少说得20ms以上吧!和它通信的设备这20ms可在进行数据传送呢,那就只有眼睁睁的丢数据了。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-4-26 23:58:29 | 显示全部楼层
中断代码越短越好,你的中断服务函数执行时间足够短,其他的中断才得以正常执行。
你看下代码,是不是中断服务函数太复杂了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2016-9-24
在线时间
80 小时
 楼主| 发表于 2017-4-27 12:52:42 | 显示全部楼层
正点原子 发表于 2017-4-26 23:58
中断代码越短越好,你的中断服务函数执行时间足够短,其他的中断才得以正常执行。
你看下代码,是不是中断 ...

感谢原子哥,中断代码就是过长,主要是MODBUS分析返回数据都在中断里做,少说20ms以上吧!再改MODBUS相关程序不在中断里做可能更麻烦耗时还长。
现打算搞两块MUC,各自串口和各自得设备通信,两个MCU之间做SPI通信,相信这样是最稳定得。

那SPI通信过程中,串口来打断,打断完成回来时能接着打断前通信吗?数据有可能会出错吗?
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2018-6-8
在线时间
18 小时
发表于 2018-7-6 09:46:29 | 显示全部楼层
lygxnb 发表于 2017-4-27 12:52
感谢原子哥,中断代码就是过长,主要是MODBUS分析返回数据都在中断里做,少说20ms以上吧!再改MODBUS相关 ...

SPI速度相比来说可以达到M级。理论上SPI是同步的 打断了估计会有的问题。裸机肯定会牵扯到中断问题了~
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-7-6 11:16:09 来自手机 | 显示全部楼层
数据包解析处理为什么要放到中断中,还是自己架构处理不好
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 13:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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