找回密码
 立即注册
查看: 797|回复: 4

DMA_SPI_W25Qxxx读取数据问题

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-02 09:52:56
已绑定手机

229

主题

328

回帖

1475

积分

金牌会员

积分
1475
发表于 2024-1-17 15:09:36 | 显示全部楼层 |阅读模式
FA52G$EZ4Z_)_4TM_PQBS~3.png


指令+地址用4字节,从W25Qxxx中读取3字节数据
所以发送缓存和接收缓存各7字节

{W~1]T4NQ]1SP]{GK_ZNY6V.png


DMA_SPI初始化,接收区指向xdata地址0,发送区指向xdata地址ZL首地址

2CM9`N0UM]HIW[U`8VYX[BD.png


W25Qxxx指令4字节,第一个字节03H读取数据,接下来3字节是地址0,读取第0扇区的第0字节

然后设置DMA_SPI_CR=0xC1;接收到7字节数据都是0xFF,这个扇区的实际数据是0-6,与实际不符

不知道DMA_SPI发送指令+读取数据是不是这么用的


回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-1-18 11:41:47 | 显示全部楼层
通过SPI DMA发送指令+读取数据也是可以的。
STC8H实验箱例程包,例子56-DMA-SPI与存储器数据自动收发:硬件SPI使用DMA访问FLASH-串口2监控,读取函数稍作修改就可以:
截图202401181138453428.jpg
不过这么修改后,读取出来的有效数据就会放在DmaRxBuffer[4]开始的地址上。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-02 09:52:56
已绑定手机

229

主题

328

回帖

1475

积分

金牌会员

积分
1475
发表于 2024-1-18 13:21:37 | 显示全部楼层
乘风*** 发表于 2024-1-18 11:41
通过SPI DMA发送指令+读取数据也是可以的。
STC8H实验箱例程包,例子56-DMA-SPI与存储器数据自动收发:硬件 ...

W}%{)_TT47K~{0@)AANDT]O.png


我这不知道怎么回事一直报这两个错,只要发地址就报这两个错
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-1-18 17:59:19 | 显示全部楼层
QQ6243*** 发表于 2024-1-18 13:21
我这不知道怎么回事一直报这两个错,只要发地址就报这两个错

先用上面介绍的例子测试一下,例子测试正常后再进行移植或者修改。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-02 09:52:56
已绑定手机

229

主题

328

回帖

1475

积分

金牌会员

积分
1475
发表于 2024-1-20 18:55:51 | 显示全部楼层
乘风*** 发表于 2024-1-18 17:59
先用上面介绍的例子测试一下,例子测试正常后再进行移植或者修改。

原因找到了,一直会报RXLOSS错误,但是数据接收是正常的,我在中断里面就拉高了SS脚,导致后面的数据都是FF,只要把RXLOSS信号过滤掉就正常了。但问题是为什么会产生RXLOSS信号,该如何处理
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 22:07 , Processed in 0.132019 second(s), 78 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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