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

使用查询方式读取SPI时,总是会卡在While中,怎么解决

莱克迷KW 2020-12-15 浏览量:919
使用查询方式读取SPI时,总是会卡在While中,怎么解决
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 要看你的while是什么作用的呢,while里的程序是什么功能呢

    如果是查标志位的,可能是SPI总线 的问题,标志位不置位而无法跳出

    如果是其他的判断,要一一对应查验

    • 发布于 2020-12-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 建议弄个超时机制,如果超过等待时间就跳过循环,然后定义一个标志来记录通信失败,下一次再扫描,直到读取到spi后将标志清除掉
    • 发布于2020-12-17
    • 举报
    • 评论 0
    • 1
    • 0

  • 看一下while里面卡在哪一步,然后再分析问题
    • 发布于2020-12-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 卡在while中说明你的程序是死在那里了,所以最好的办法是while循环中加超时退出机制,返回错误代码。这才是一个优秀的代码。
    • 发布于2020-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 卡在while中,表明这个while中的处理可能不能被中断,或者其中获取状态的处理不正确,没能正确捕获到状态变化,或者本身spi就有问题,没能触发相应变化。
    • 发布于2020-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 在while里面加计数,计数到一定值后退出,不要一直死等。
    • 发布于2020-12-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 有可能是SPI上面本来就没有数据,可以做个超时,多久没有数据就退出
    • 发布于2020-12-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 可能是从机没有应答你的请求,你可以做个超时,用定时器做。加上中断
    • 发布于2020-12-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

使用查询方式读取SPI时,总是会卡在While中,怎么解决