28、串行通信:SPI与I2C总线详解

串行通信:SPI与I2C总线详解

1. SPI主设备接收数据

当SPI被配置为主设备并通过SOMI接收数据时,主设备仍需产生SCLK脉冲,以将数据从从设备移出并移入主设备。数据通过接收移位寄存器(Rx shift register)接收,当所有位都被移入后,整字节数据会被转移到RX缓冲区(UCAxRXBUF)。接收系统会跟踪传入的数据,当新数据到达缓冲区时,会在UCAxIFG寄存器中设置RXIFG标志。通过启用UCAxIE寄存器中的RXIE位,RXIFG可以触发中断。

主设备产生SCLK,因此必须向从设备发送必要的时钟脉冲,使从设备将数据移出并返回主设备的Rx移位寄存器。这可以通过向主设备的Tx寄存器写入任意值的虚拟字节来实现,从而迫使系统生成8个SCLK脉冲。

下面通过一个示例来说明主设备如何接收数据。由于仅使用MSP430FR2355 LaunchPad™板进行此示例,我们只需将eUSCI_A0的SIMO引脚连接到eUSCI_A0的SOMI引脚。这样可以在SIMO上发送一个字节的数据,并在8个时钟周期后观察其到达Rx缓冲区。此示例虽有些简单,但它展示了主设备如何通过写入Tx缓冲区请求从设备的数据,然后等待RXIFG中断以指示Rx缓冲区中有可用数据。

在这个设计中,使用按钮开关S1和S2从Tx向Rx发送不同字节的数据(0x10和0x66)。当Rx接收到0x10时,会切换LED1;当接收到0x66时,会切换LED2。

SPI主设备接收数据步骤如下:
1. 主设备产生SCLK脉冲。
2. 向主设备Tx寄存器写入虚拟字节,生成8个SCLK脉冲。
3. 等待数据通过SOMI移入主设备Rx移位寄存器。
4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值