STM32普通IO模拟SPI和W25Q32通信调试

目录1、参考网上的程序编写SPI读写函数2、参考w25q32的例程读取芯片ID3、读取芯片ID时遇到的问题问题1:没有返回数据问题2:返回芯片ID错误1、参考网上的程序编写SPI读写函数 w25q32可使用spi模式0和模式3. u8 redata;u8 SPI_FLASH_SendByte(u8 data){ u8 i; u16 j=0; redata = 0; for(i=0;i<8;i++) {// for(j=0;j&...
摘要由CSDN通过智能技术生成

目录

1、参考网上的程序编写SPI读写函数

2、参考w25q32的例程读取芯片ID

3、读取芯片ID时遇到的问题

问题1:没有返回数据

问题2:返回芯片ID错误

4、优化后的收发函数和时序波形


1、参考网上的程序编写SPI读写函数

        w25q32可使用spi模式0和模式3.

	u8 redata;

u8 SPI_FLASH_SendByte(u8 data)
{
	u8 i;
	u16 j=0;
	redata = 0;
	for(i=0;i<8;i++)
	{
//		for(j=0;j<12;j++)
//			__nop();
		
		if(data & 0x80)
			SPI_MOSI_1;
		else
			SPI_MOSI_0;
		data <<= 1;
		
		SPI_SCK_0;
		
		for(j=0;j<12;j++)
			__nop();	
		
		SPI_SCK_1;
		
		for(j=0;j<8;j++)
			__nop();
		
		redata<<=1;
		
		if(SPI_MISO)
			redata++;
	}
	for(j=0;j<20;j++)
			__nop();
	SPI_SCK_1;
	return redata;
}

2、参考w25q32的例程读取芯片ID

///*******************************************************************************
//* Function Name  : SPI_FLASH_ReadID
//* Description    : Reads FLASH identification.
//* Input          : None
//* Output         : None
//* Return         : FLASH identification
//*******************************************************************************/
u32 S
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值