找回密码
 立即注册
楼主: 国学***

中断冲突怎么办

[复制链接]
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 100 天

    [LV.6]常住居民II

    10

    主题

    46

    回帖

    628

    积分

    高级会员

    积分
    628
    发表于 2023-10-27 10:26:20 | 显示全部楼层
    DMA应该能解决问题
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 124 天

    [LV.7]常住居民III

    34

    主题

    399

    回帖

    2059

    积分

    荣誉版主

    积分
    2059
    发表于 2023-10-27 10:55:03 | 显示全部楼层
    本帖最后由 王昱顺 于 2023-10-27 10:57 编辑

    可以使用多个dma解决
    首先分析需求,传感器10ms固定,传输数据和显示想要尽量快。

    为了减少cpu占用,串口可以开dma,存缓冲区一次性发送,发送频率可以不一定10ms。这里需要一个串口忙标志,完成一次发送后把忙标志清空。
    主程序判断不忙且载入了定量完整数据后再次触发串口dma发送。

    屏幕刷新用缓冲区+i2cdma,刷新的数据直接从缓冲区读出进行显示刷屏,这边也要一个刷屏忙标志,主程序判断刷屏不忙且完成了一次载入数据后就可以调起刷屏了。
    这里面串口的dma总线优先级可以开的高一些,因为刷屏慢了人也看不大出来,一般来说50ms~100ms的数据刷屏人看着就已经很快了。

    传感器中断读数据只需要读出来放一个变量里面就可以。剩下的交给主程序去判断和使用。主程序内就只有判断标志位和调起dma。
    这样可以保证不会占用很多的cpu。并且刷屏和串口发送超过10ms也不会被中断打断了。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 95 天

    [LV.6]常住居民II

    70

    主题

    612

    回帖

    1892

    积分

    超级版主

    积分
    1892
    QQ
     楼主| 发表于 2023-10-30 15:23:20 | 显示全部楼层
    乘风飞扬 发表于 2023-10-19 17:57
    串口发送可以考虑用队列模式,在中断里发送。


    帮给工程看一下,这个报错怎么都找不到问题,怎么才能消除掉?

    截图202310301523026903.jpg

    点评

    这是:0错误,1警告;可以了,不要吹毛求疵  发表于 2023-10-30 18:33
    热线19952583534
    www.STCAI.com
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-20 21:34 , Processed in 0.060485 second(s), 43 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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