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

stm32F407如何实现3个串口中断接收数据的冲突问题?

mingming157 2017-09-22 浏览量:2489
使用3个串口中断,接收来自三个陀螺仪的数据,经常出现数据丢失的情况,陀螺仪是高精度的,挺贵的换成三轴的成本太高。想从软件上解决这个问题
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 推荐使用DMA的方式来采集串口数据,配置好DMA,当串口有数据时将数据搬运到指定的三个数组中去,这样既不会影响数据采集的实时性,也可以在主函数中处理数据内容。要知道外设虽然有多个,但是处理中心只有一个呀,抓个DMA搬运工过来,把数据先搬到指定的仓库,管理员的工作就是去每个仓库中处理数据。要记住及时清理仓库,免得爆仓。
    • 发布于 2017-09-22
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 你的中断函数是不是时间太长?

    数据和处理不要在中断函数中。

    • 发布于2017-09-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 1.提高波特率;

    2.简化终端ISR,不要做滤波等复杂的数据运算;

    3.串口终端,中断等级设置的跨度大些;

    4.串口改用DMA接收,推荐使用这种模式,数据100%不会丢(不溢出的情况下);


    • 发布于2017-09-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 1. 中斷函數內只轉存數據

    2. 副程式中才去處理數據和運算

    3. 再進行輸出和您想要的應用


    • 发布于2017-09-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32F407如何实现3个串口中断接收数据的冲突问题?