微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于do{}while()的一点疑问

关于do{}while()的一点疑问

时间:10-02 整理:3721RD 点击:
在做stm32SPI 通信时 读取SST25VF016B 的状态寄存器
do
{
读SST25VF016B状态寄存器
}while(state&0x01);
读SST25VF016B内擦除后的数据


do
{
读SST25VF016B状态寄存器
}while(state==0x01);
读SST25VF016B内擦除后的数据

得到不同的结果,前者不对,后者正确。请高手帮忙解答。

自己顶 表沉。

改成这样试一下呢while(state);

while(state&0x01)表示,只检查state最后一位是0还是1,state的其他位被忽略。
while(state==0x01)表示state为0x01,不仅最后一位必须为1,其他位还必须为0。
看看你器件的SPI操作,然后自己确定一下。
另外:再仔细看看C语言。

如果我只是关注最低位呢?这样写有什么差别么?请教了。

那就使用 state&0x01

同意楼上,  要是你还是错误的话,估计是你没有自己看 SST25VF016B 数据手册

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top