长字节数据传给BIT型数据

本文记录了在STC12C5A60S2 MCU中使用SPI协议时遇到的问题,即如何将长字节数据正确地传递给BIT型变量。通过实验发现直接赋值无法判断BIT接收的位,而位与运算可以确保接收到数据的最高位。同时,讨论了不同数据类型赋值给unsigned char时的行为,如unsigned int和unsigned long int只会保留低位信息。
摘要由CSDN通过智能技术生成

最近学习SPI协议,会遇到将1byte的数据分成8个bit在8个时钟周期依次发送出去的情况,对长数据放入短变量的存储方式进行了记录。

使用的MCU为STC12C5A60S2。因为显示条件有限,使用了P0口控制LED灯的方式。当控制引脚输出0时,发光二极管导通,反之,截止。

位变量用P0 ^ 2(P0口的第3个引脚)作为接受端,定义为:

sbit REC_BIT = P0 ^2;

测试:

unsigned char temp = 0x87;

REC_BIT = temp;

之后在while循环里观察REC_BIT的值,发现直接将temp的值赋给BIT时,只要temp的值不为0x00,则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值