OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3189|回复: 1

关于W25Q32读写问题

[复制链接]

21

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
532
金钱
532
注册时间
2015-5-31
在线时间
115 小时
发表于 2016-5-10 16:56:56 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 lwj199302 于 2016-5-10 17:03 编辑

用SPI1代码如下:
RCC_APB2PeriphClockCmd( SPI_FLASH_GPIO_CLK | SPI_FLASH_CS_GPIO_CLK|RCC_APB2Periph_AFIO, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 ,ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SPI1, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);

GPIO_InitStructure.GPIO_Pin = SPI_FLASH_PIN_SCK  | SPI_FLASH_PIN_MOSI;   
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
GPIO_Init(SPI_FLASH_GPIO, &GPIO_InitStructure);
GPIO_SetBits(SPI_FLASH_GPIO, SPI_FLASH_PIN_SCK  | SPI_FLASH_PIN_MOSI);   

GPIO_InitStructure.GPIO_Pin = SPI_FLASH_PIN_MISO;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(SPI_FLASH_GPIO, &GPIO_InitStructure);
GPIO_SetBits(SPI_FLASH_GPIO, SPI_FLASH_PIN_MISO);     

GPIO_InitStructure.GPIO_Pin = SPI_FLASH_CS;   
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(SPI_FLASH_CS_GPIO, &GPIO_InitStructure);
GPIO_SetBits(SPI_FLASH_CS_GPIO, SPI_FLASH_CS);     

用SPI3代码如下:
RCC_APB2PeriphClockCmd( SPI_FLASH_GPIO_CLK | SPI_FLASH_CS_GPIO_CLK|RCC_APB2Periph_AFIO, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3 ,ENABLE);

//GPIO_PinRemapConfig(GPIO_Remap_SPI1, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);

GPIO_InitStructure.GPIO_Pin = SPI_FLASH_PIN_SCK  | SPI_FLASH_PIN_MOSI;   
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
GPIO_Init(SPI_FLASH_GPIO, &GPIO_InitStructure);
GPIO_SetBits(SPI_FLASH_GPIO, SPI_FLASH_PIN_SCK  | SPI_FLASH_PIN_MOSI);   

GPIO_InitStructure.GPIO_Pin = SPI_FLASH_PIN_MISO;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(SPI_FLASH_GPIO, &GPIO_InitStructure);
GPIO_SetBits(SPI_FLASH_GPIO, SPI_FLASH_PIN_MISO);     

GPIO_InitStructure.GPIO_Pin = SPI_FLASH_CS;   
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(SPI_FLASH_CS_GPIO, &GPIO_InitStructure);
GPIO_SetBits(SPI_FLASH_CS_GPIO, SPI_FLASH_CS);   

PB3、PB4和PB5口是W25Q32的IO口,映射到SPI1的时候flash可以调通。可是为什么用SPI3的时候却挂在了SPI_FLASH_SendByte()函数里面呢?????????,求解

uint8_t SPI_FLASH_SendByte(uint8_t byte)
{
  /* Loop while DR register in not emplty */
  while((SPI_FLASH->SR & SPI_I2S_FLAG_TXE) == RESET);

  /* Send byte through the SPI1 peripheral */
  SPI_FLASH->DR = byte;

  /* Wait to receive a byte */
  while((SPI_FLASH->SR & SPI_I2S_FLAG_RXNE) == RESET);

  /* Return the byte read from the SPI bus */
  return (SPI_FLASH->DR);
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-11 21:00:48 | 显示全部楼层
慢慢查配置,看看几个引脚的波形吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 03:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表