单片机通过spi如何读取双字节和多字节数据,单字节的很容易理解双字节和多字节的怎么读取啊?

单片机通过spi如何读取双字节和多字节数据,单字节的很容易理解双字节和多字节的怎么读取啊?,第1张

协议接口上大部分型号是支持连续读的,随着时钟信号每宏闭8位输出一字节,内部地址自加。部分不支持的型号需要每个地址加载一次再读取,有的型号是每16位量化一个地址单元,但不论哪种方式,最终都是地址和该辩碰地址下的数据来描述,数据结构上根据定义是高位在前还是在后、高字节在前还是在后的排列方式,再把它还原拼接出需要的位宽即可。比如连续2字节,定义高在前就把先读出的一字节携绝谈乘256之后加上后读出的一字节即还原出原数据了。

void writedata(unsigned char *pt,unsigned int n) //pt为输入字节的头地址,银斗n为输锋野磨入字脊碰节的个数

{

unsigned int i=8

unsigned char temp

while(n--)

{

while(i--)

{

temp=*pt

SCLK=0

if((temp&=0x80))

SDIN=1

else

SDIN=0

SCLK=1

temp<<=1

}

pt++

}

……你这是把SPI当成UART了……

SPI总卜锋线有个Slave Select(或CS)信号,要利用好啊……

多字节传输你可以看看SD卡旁兆的运弊租SPI子协议。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12335121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存