1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
SPI是一个全双工的同步串行数据总线接口
很多芯片与MCU的通信都用到了SPI接口,比如对某些芯片内的寄存器进行设置等。这时候MCU是作为主机(MASTER),而被写入或读取的芯片就作为从机(SLAVE)。 MCU作为主机进行SPI写的时候很简单: unsigned char spi_write(unsigned char data) { SPDR=data; while(!(SPSR&(1《《SPIF))); return data; } SPI接口是这样规定的:对SPI数据寄存器写入数据即启动了SPI的时钟SCK。即SPI的通信是由主机对SPDR进行赋值才开始的。 SPI设备作为从机的时候的读取操作是这样的 unsigned char spi_read() { while(!(SPSR&(1《《SPIF))); return SPDR; } 但是MCU一般是作为主机进行读操作的,比如读取芯片的状态寄存器,如果按上面那样写代码是不能进行读取的,因为未给SPDR赋值,也就无法启动SPI。所以进行读操作时需要先向SPDR写入一个数据。 下边的代码给SPDR写入了0,其实具体写入什么要参考芯片的手册,如果手册上没注明,那么可以写入0试试。 unsigned char spi_read() { SPDR=0; while(!(SPSR&(1《《SPIF))); return SPDR; } |
|
|
|
只有小组成员才能发言,加入小组>>
2548 浏览 0 评论
1145浏览 2评论
744浏览 1评论
498浏览 0评论
263浏览 0评论
424浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 17:44 , Processed in 1.413854 second(s), Total 78, Slave 60 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号