spi注意事项

SPI通信中,主机通过发送数据来产生时钟信号,即使是从机接收数据,也可能需要发送dummy(0x00)来确保时钟的产生。同样,主机读取从机数据时,可以通过接收dummy数据实现。这种机制使得主机接收和发送的程序基本一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

spi无论是主机发送从机接收,还是主机接收从机发送,都是要主机发送数据,以此来产生时钟(时钟只能由主机产生)。若flash只想要从机读取主机的数据,发送一个空数据dummy(0x00)

产生时钟。

若flash只想要主机读取从机机的数据,可以接收dummy(0x00)。因此接收和发送都是相同的程序。(野火)

//发送并接收一个字节
uint8_t SPI_FLASH_Send_Byte(uint8_t data)
{
	SPITimeout = SPIT_FLAG_TIMEOUT;
	//检查并等待至TX缓冲区为空①首先判断TEX是否为1(TEX标志->(0:有数据,1:为空)),为1则发送数据,且一位一位传送。然后再等待
	while(SPI_I2S_GetFlagStatus(FLASH_SPIx,SPI_I2S_FLAG_TXE) == RESET)
	{
		if((SPITimeout--) == 0) return SPI_TIMEOUT_UserCallback(0);
	}
	
	//程序执行到此处,TX缓冲区已空
	SPI_I2S_SendData (FLASH_SPIx,data);
	
	
	SPITimeout = SPIT_FLAG_TIMEOUT;
	//检查并等待至RX缓冲区为非空②判断RXNE是否为1,为1,说明数据发送完毕,到RX缓冲区了,并且一个字节。
	whil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值