请教个问题: 可以在写存储器指令之后紧接着写数据吗
<h2>实验环境</h2><p>MCU: 8051U</p>
<p>存储器:支持标准 / Dual SPI模式的W25Q64JV</p>
<h2>问题描述</h2>
<p>对存储器W25Q64的状态寄存器-3执行写操作,但是在检查传输完成时卡住。</p>
<p>在写状态寄存器-3时的设置:</p>
<ol>
<li>配置写模式;</li>
<li>设置数据长度为1;</li>
<li>设置空闲时钟数为0;</li>
<li>设置指令为单线模式;</li>
<li>设置无地址模式;</li>
<li>设置无交替字节;</li>
<li>设置数据为单线模式;</li>
<li>设置指令代码;</li>
<li>检查传输是否完成(在这卡住,即使放到下一步之后,还是卡住);</li>
<li>调用写数据指令(就是给QSPI_DR寄存器赋值)。</li>
</ol>
<p>命令操作序列如下:</p>
<ol>
<li>
<p>写指令“50H”;</p>
</li>
<li>
<p>写状态寄存器-3指令“11H”;</p>
</li>
<li>
<p>写数据“04H”</p>
</li>
<li>
<p>检查传输是否已完成时,卡住</p>
<p>想问下是因为操作步骤错误,还是不可以在写指令(例如"11H")之后,紧接着传输数据?</p>
</li>
</ol>
<p>下面是写状态寄存器-1/2/3的时序图:</p>
<p><img src="data/attachment/forum/202501/20/155159n5kkxf6wskhs9s1k.png" alt="image.png" title="image.png" /></p>
参考AI8051U实验箱例程包这个例子试试:
34-硬件QSPI访问FLASH-串口监控
下载地址:https://www.stcai.com/syx 乘风飞扬 发表于 2025-1-20 18:00
参考AI8051U实验箱例程包这个例子试试:
34-硬件QSPI访问FLASH-串口监控
下载地址:https://www.stcai.com/ ...
<p>看的是从这里找来的代码:</p>
<p>使用QSPI直接读写串行FLASH,使用QSPI-DMA读写串行FLASH<br />
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=10762<br />
(出处: 国芯技术交流网站)</p>
<p>2处的关键内容一样。</p>
<p>这2处的代码,我认为哈:尽管是在写状态寄存器,但程序中是在用指令(写状态寄存器指令)跟随的地址(8-bit)代替写往状态存器写的数据。因为调用的函数“QSPI_WRITE_INSTR_SADDR8”指定了不传输数据,但传输字节类型的地址。</p>
BeHappy 发表于 2025-1-20 18:40
看的是从这里找来的代码:
使用QSPI直接读写串行FLASH,使用QSPI-DMA读写串行FLASH
https://www.stcaimcu ...
不知道怎么了,成了回复我自己 :-( 乘风飞扬 发表于 2025-1-20 18:00
参考AI8051U实验箱例程包这个例子试试:
34-硬件QSPI访问FLASH-串口监控
下载地址:https://www.stcai.com/ ...
感谢回复 :-)
我想给这里面的读写状态寄存器函数单独写一个函数,不想调用“QSPI_WRITE_INSTR_SADDR8”。结果就遇上了上面提到的 问题。
页:
[1]