永发信息网

帮忙分析一个这个spi读写程序,详细一点的,解释一下。怎么觉得读和写的内容怎么差不多呢,怎么实现的读写

答案:2  悬赏:40  手机版
解决时间 2021-03-15 21:25
帮忙分析一个这个spi读写程序,详细一点的,解释一下。怎么觉得读和写的内容怎么差不多呢,怎么实现的读写
最佳答案
void SpiWriteRegister (uchar reg, uchar value)
{
RF_NSEL = 0; // 片选拉低启动SPI通讯
SPI0DAT = (reg|0x80); // 写入1个字节的寄存器地址
while( SPIF == 0); // 等待SPI传输完成
SPIF = 0;
SPI0DAT = value; // 继续写入第二个字节(寄存器值)
while( SPIF == 0); // 等待SPI传输完成
SPIF = 0;
RF_NSEL = 1; // 片选拉高结束SPI通讯
}

//-----------------------------------------------------------------------------
//函数描述: SPI读取函数
//相关参数:
//返回信息:
//
//-----------------------------------------------------------------------------
uchar SpiReadRegister (uchar reg)
{
RF_NSEL = 0; // 片选拉低启动SPI通讯
SPI0DAT = reg; // 写入1个字节的寄存器地址
while( SPIF == 0); // 等待SPI传输完成
SPIF = 0;
SPI0DAT = 0xFF; // 写一个Dummy字节(因为要读取的话必须用写入来启动一个交换数据的传输),当写入完成后从机的数据也完成了读入。
while( SPIF == 0); // 等待SPI传输完成
SPIF = 0;
RF_NSEL = 1; // 片选拉高结束SPI通讯
return SPI0DAT; // 返回读取的值(在SPI0DAT=0xFF中完成读取)
}

需要注意的是读写操作实际上完成的都是数据的交换,即主机传送1个字节给从机,从机同时传送1个字节给主机。所以读操作看起来像是写数据,但实际上写入完成后就可以从SPI0DAT中获得从机的应答数据了。追问后面仔细看了下函数注释,好像就是这么个意思。不过我不明白为什么spi的读函数要写空字节呢,这个是c8051f330的单片机,从机是si4432。还有spi的读和写的区别是因为这个么:SPI0DAT = (reg|0x80); (写) ////SPI0DAT = reg;(读)。是因为寄存器地址是7位,二进制形式下最高位是0,SPI0DAT = (reg|0x80); 把最高位强制置1,SPI0DAT = reg;最高位0,执行读操作。是这样么?还有您懂不懂crc检测?追答SPI是一个环形总线结构,在sck的控制下,两个双向移位寄存器进行数据交换,所以它是一边发送一边接收,你想接收一个自己数据,就要先发送一个字节数据。因为这样才产生时钟信号,数据才从从机发送出来;也因此,写入时交换来的数据是无效的,读取时写入的数据是无效的。读写的具体区别,要看你单片机的芯片手册了,一般是没有区别的,读写甚至可以写成一个函数。。。
全部回答
读写的操作都是基于你发给从设备一个地址,但是从设备区分你是读操作还是写操作一般就是通过你发过去的地址值,所以看上去都是写,其实,区别在于你写的这个地址值是用来读的还是写的...(不管你读还是写,总得告诉对面地址吧,所以要先写个地址发过去)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
山东齐盛国际宾馆-茶艺馆这个地址在什么地方
“我在未来等你”是什么意思!大神帮帮忙!
天翼校园客户端不能连有线,能连上无线,怎么
猫死了,肚子为什么是扁的
九阳豆浆机为什么打的豆浆很苦
为什么我家路由器状态总是显示正在连接。
支付宝在咸鱼登陆不上去
我是傈僳族,我们傈僳族有动植物图腾所以取姓
祺瑞宾馆怎么去啊,有知道地址的么
自考是怎么样申请毕业证的?是要达到多少学分
谁回复我一下
北京八十中怎么样
海拔上升多少米,温度下降一度?
天然气热水器洗澡时,厨房可以同时开冷水吗
味精和盐可以生吃吗?
推荐资讯
南京丁家庄拆迁房是大产权还是小产权
mark为什么骂mintc啊,看得云里雾里的,关系
汉匈全面战争仓库怎么关闭自动交易
水浒传中四大奸臣分别是谁
鸭蛋坨子在哪里啊,我有事要去这个地方
现在的交警为什么拦车如此猖狂
中环地产迎宾丽舍店地址在哪,我要去那里办事
企业财务报表应上报那些部门
中招提前批是什么?填上对统招第一志愿有影响
南京电池网实体店在哪里?
曹妃甸文丰钢铁厂怎么样
思科AIR-CAP1702I-H-K9和思科 AIR-SAP1602I-C
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?