谁能指导指导啊………………就是我想通过spi往外部设备发指令,比如我想发0x11,发送的数据宽度是8位,那我应该往发送寄存器SPIDAT1里写多少值啊?如果外部设备返回一个0x01,在接收寄存器SPIBUF读到的值是多少啊?谁弄过的会的伸出援手吧,感激不尽啊
noaming:
用的哪款芯片
changsen zhao:
回复 noaming:
TMS320C6748EZWT,谢谢解答啊
noaming:
可以配置SPI寄存器:SPI Data Format Register (SPIFMTn)中的CHARLEN,来确定SPI data word length
changsen zhao:
回复 noaming:
移位寄存器是16位吧,如果传输数据我配置成8位的话,假如我想往外发送0x11,是往移位寄存器写0x11还是先左移八位变成成0x1100再写进去?
noaming:
回复 changsen zhao:
这里需要确保你想发送的数据右对齐就可以
changsen zhao:
回复 noaming:
SPI Data Format Registers (SPIFMTn)有四种格式寄存器,怎么选择啊?为什么SPIFMT1后,数据长度配置为8位,它接收时怎么会16数据接收啊
noaming:
回复 changsen zhao:
选择适合自己的格式就可以。另外SPIBUF中的数据是右对齐的,其他位补0。
changsen zhao:
回复 noaming:
嗯嗯,我选择每次传送的数据宽度是八位,为什么SPIBUF每次返回来左边8位也有值(不为零),右对齐,不是应该左边八位全是零么?
changsen zhao:
回复 changsen zhao:
师傅,您看,我把数据格式选为1,传输的数据长度为8位,怎么接受寄存器一下子就接收了16位数据啊?