• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32多串口通讯可以同时触发中断并处理吗

hangtao 2019-04-03 浏览量:3486
stm32多串口通讯可以同时触发中断并处理吗
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 中断触发肯定是不能同时触发的。

    STM32任何时候只能处理一个中断,但是其他的中断会被保留,并不会丢失。

    如果你的中断分组允许嵌套,中断响应会按照中断优先级进行嵌套。

    比如:当前正在在执行串口1的中断,但是串口2的中断来了,且串口2的抢占优先级高,则立即跳转到串口2执行,执行完了在返回串口1,最后进入主循环。


    基于这样的模式,所以要求多串口通讯的时候,需要中断函数要简短,要快进快出。串口数据解析,处理判断等都拿到主循环中做;

    串口中断就一个功能,收数据,然后退出来。

    • 发布于 2019-04-04
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 可以设置每个串口都进入中断,但是不会同时处理,会根据中断优先级先后处理中断程序
    • 发布于2019-04-04
    • 举报
    • 评论 0
    • 1
    • 0

  • 触发中断是可能的,同时处理是不可能的。
    • 发布于2019-04-03
    • 举报
    • 评论 1
    • 0
    • 0
xdsnet 回复了 xdsnet :准确的说是同时(几乎)产生中断信号 回复

  • 中断都是有优先级的,芯片也是单核处理的,没有办法做到完全意义上的同步触发。
    • 发布于2019-04-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 每个串口都有接收中断,CPU根据中断优先级来决定先执行哪一个中断函数,只有一个CPU同一时刻只能运行一个中断,运行结束后再执行低优先级中断
    • 发布于2019-04-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个中断是硬件行为,可能会同时触发,但是CPU同时只能处理一个中断,这里就是涉及到中断优先级的问题,优先级高的中断会先被处理,优先级低的后处理。不会有遗漏中断的问题
    • 发布于2019-04-06
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32是单片机,只有一个内核,所有的程序顺序执行的,就算中断同时触发,也是一个一个处理,并不会同时处理多个的。
    • 发布于2019-04-06
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32多串口通讯可以同时触发中断并处理吗