本帖最后由 hanwe 于 2021-3-15 22:34 编辑
不用时正常
程序如下写的时候
...
#define RX_DR state^6 //接收判断位,如果接收到数据,RX_DR为1
...
state=SPI_read(STATUS);
if(RX_DR)
{
...
}
每一次到if判断,必进if函数体。
但如果改成if(state&0x40) 则正常运行。
为了验证,我试着把这个位的值用12864写出来
write_dat(0x30+RX_DR); // +0x30是转换成ASCII码
结果显示 8.
想问我那样不是将RX_DR定义成bit这类型了么,怎么会变成char类型的了?这里面哪个问题我没注意到?
|