电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
使用查询方式读取SPI时,总是会卡在While中,怎么解决
已解决
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
STM32ZET6
建议弄个超时机制,如果超过等待时间就跳过循环,然后定义一个标志来记录通信失败,下一次再扫描,直到读取到spi后将标志清除掉
发布于
2020-12-17
举报
评论 0
1
0
yhj416606438
看一下while里面卡在哪一步,然后再分析问题
发布于
2020-12-15
举报
评论 0
0
0
耳根的耳根
卡在while中说明你的程序是死在那里了,所以最好的办法是while循环中加超时退出机制,返回错误代码。这才是一个优秀的代码。
发布于
2020-12-16
举报
评论 0
0
0
xdsnet
卡在while中,表明这个while中的处理可能不能被中断,或者其中获取状态的处理不正确,没能正确捕获到状态变化,或者本身spi就有问题,没能触发相应变化。
发布于
2020-12-16
举报
评论 0
0
0
金龟次狼
在while里面加计数,计数到一定值后退出,不要一直死等。
发布于
2020-12-16
举报
评论 0
0
0
chen0000009
有可能是SPI上面本来就没有数据,可以做个超时,多久没有数据就退出
发布于
2020-12-25
举报
评论 0
0
0
一笔之名也
可能是从机没有应答你的请求,你可以做个超时,用定时器做。加上中断
发布于
2020-12-28
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
使用查询方式读取SPI时,总是会卡在While中,怎么解决
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: