我在将 Olimex 的 ENC28J60-H 连接到我的 STM32L-Discovery 时遇到问题。所以我编写代码,读取一个 ECON1 寄存器,然后向其中写入一些值,然后再次读取它。这里有一个问题:当我在这段代码中的每一行一步一步地使用调试器(F10)时,一切都很顺利。但是当我在这行之后设置断点时,寄存器返回 0x00。我决定,ENC 只是没有足够的时间将值写入寄存器。但是手册说,它有自己的晶体振荡器,频率为 20 或 25 MHz(不记得确切)。我的频率约为 150 kHz。无论如何,我在每次 SPI 发送或接收后设置一个延迟(循环中的简单计数器)。这很有帮助。然后我继续。我写了一个初始化函数(软复位,而不是将需要的值写入寄存器),在主函数中使用它。调用后,我再次读取了一个 ECON1 寄存器。我得到的只是0x00,即使有延迟。有人知道在这种情况下该怎么办吗?
问问题
906 次