首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32L + ENC28J60 (Olimex)

STM32L + ENC28J60 (Olimex)
EN

Stack Overflow用户
提问于 2012-12-02 18:01:57
回答 1查看 901关注 0票数 2

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

EN

回答 1

Stack Overflow用户

发布于 2013-09-26 14:05:13

通过SPDR发送一个字节后,测试SPSR寄存器中的SPIF位(0x80)。当SPIF为== 1时,则数据已发送。

延迟之所以有效,是因为您为传输(和ENC28J60中的内部逻辑)提供了完成的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13668230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档