OpenEdv-开源电子网

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

stm32f429+mt25ql512 ID读取为ff

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2023-11-3
在线时间
3 小时
发表于 2023-11-3 14:27:58 | 显示全部楼层 |阅读模式
1金钱
stm32f429配置如下:  hspi1.Instance = SPI1;
  hspi1.Init.Mode = SPI_MODE_MASTER;
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
  hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
  hspi1.Init.NSS = SPI_NSS_SOFT;
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi1.Init.CRCPolynomial = 10;
  if (HAL_SPI_Init(&hspi1) != HAL_OK)
  {
    return 1;
  }

if(hspi->Instance == SPI1)
  {
    /**SPI1 GPIO Configuration
    PA5     ------> SPI1_SCK
    PA6     ------> SPI1_MISO
    PB5     ------> SPI1_MOSI
    */
    GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_5;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    //PB8 PB9(FLASH_CS  FLASH_RESET)配置为推挽输出
    GPIO_InitStruct.Pin = GPIO_PIN_8;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

        //PB8 PB9(FLASH_CS  FLASH_RESET)配置为推挽输出
    GPIO_InitStruct.Pin = GPIO_PIN_9;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    //使能 SPI模块时钟
    __HAL_RCC_SPI1_CLK_ENABLE();


读ID指令如下:
uint8_t BSP_MT25QL_ReadID()
{

  uint8_t p_rv[8];
  uint8_t p_wr[8]={0};
  p_wr[0]=READ_ID_cmd;

  MT25QL_FLASH_CS_LOW();  
  if(HAL_SPI_TransmitReceive(&hspi1, p_wr, p_rv,6,5000) != HAL_OK) return 1;

  MT25QL_FLASH_CS_HIGH();

  return 0;
}




电路图和波形图都添加不了 通过波形图可以看出时序有,命令有,就是没有回来的数据

最佳答案

查看完整内容[请看2#楼]

问题已解决谢谢各位
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2023-11-3
在线时间
3 小时
 楼主| 发表于 2023-11-3 14:27:59 | 显示全部楼层
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2023-11-6 17:00:18 | 显示全部楼层
寄存器读错了?
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2023-11-3
在线时间
3 小时
 楼主| 发表于 2023-11-7 09:35:06 | 显示全部楼层

对,读mt25 nor flash  的ID时全是ff
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2023-11-3
在线时间
3 小时
 楼主| 发表于 2023-11-7 09:53:31 | 显示全部楼层
stm32f429+mt25ql512 ID读取为ff(加入图片,终于会插入图片了)
http://www.openedv.com/forum.php ... 6421&fromuid=478525
(出处: OpenEdv-开源电子网)
带图链接请点此处
回复

使用道具 举报

259

主题

806

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1887
金钱
1887
注册时间
2012-10-28
在线时间
353 小时
发表于 2023-11-7 15:19:59 | 显示全部楼层
貌似 st 的 h7 里面有提供相关的驱动,把这部分代码复制出来就可以了
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2023-11-3
在线时间
3 小时
 楼主| 发表于 2023-11-8 13:04:53 | 显示全部楼层
hpdell 发表于 2023-11-7 15:19
貌似 st 的 h7 里面有提供相关的驱动,把这部分代码复制出来就可以了

具体点呢stm32h7?哪里面提供
回复

使用道具 举报

259

主题

806

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1887
金钱
1887
注册时间
2012-10-28
在线时间
353 小时
发表于 2023-11-13 11:55:14 | 显示全部楼层
本帖最后由 hpdell 于 2023-11-13 11:56 编辑
tainanle 发表于 2023-11-8 13:04
具体点呢stm32h7?哪里面提供

0011.png

可以参考 mt25tl01g 驱动
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 04:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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