这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» MCU» CC1101为什么在做SPI读写的时候要SO=1输出参数Bvalue|=0x01

共2条 1/1 1 跳转至

CC1101为什么在做SPI读写的时候要SO=1输出参数Bvalue|=0x01呢?

工程师
2023-07-28 11:38:12 打赏

//------------------------------------------------/
//函数功能:通过SPI写读一字节 /
//输入参数:value /
//输出参数:B_value /
//-----------------------------------------------/
uchar SPI_WR_Byte(uchar value)
{
uchar i,B_value=0;
SCLK=0;
for(i=0;i<8;i++)
{
if(value&0x80)
SI=1;
else
SI=0;
value<<=1;
SCLK=1;
_nop_();_nop_();
B_value<<=1;
if(SO)
B_value|=0x01;
SCLK=0;
_nop_();_nop_();
}
return B_value;
}

51单片机CC1101为什么在做SPI读写的时候要SO=1 输出参数 B_value|=0x01要这样呢?而且还要左移




关键词: SPI

助工
2023-07-28 11:38:38 打赏
2楼

因为SPI数据要串行送出,一次只能送一位,一个字节8位,就移动8次,送8次。
所有的串行传送都是这样的方法,不同的只是移位的方向和总字节数。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]