0

我正在使用 STM32F405 制作 WebServer,以太网芯片是 Wiznet 的 W5500。

Wiznet 提供了一个 HTTP WebServer 演示。但是,他们使用 sd 卡来加载网页内容。

我发现 Arduino WebServer 可以在不使用 SD 卡的情况下加载 Web 内容,它只需要在草图中添加一些 Arduino 代码。

所以问题是我的设备如何在没有 SD 卡的情况下加载网页内容。

我正在使用 IAR 顺便说一句。

4

3 回答 3

1

尽管您的问题在细节上有点低,但我猜您想在不访问文件系统的情况下从 C 代码内部提供页面。

我建议你看看Bitty HTTP(无耻插件)。我认为它接近你正在寻找的东西。它直接从 C 代码(无文件系统)提供页面,可以使用非标准套接字,并且不需要线程(不需要操作系统)。

我查看了 W5500 并没有使用 Berkeley 插座(尽管您也许可以添加它),因此您需要有一些可以在没有它们的情况下工作的东西。不幸的是,您需要将套接字写入 W5500 SPI 命令部分才能使其工作。

您还可以查看其他嵌入式 Web 服务器。 libmicrohttpd(它自己是一个嵌入式 Web 服务器)有一个公平的其他嵌入式 Web 服务器列表。我认为您不会在那里找到任何适合您需求的东西,但值得一试。

于 2019-10-18T22:10:12.737 回答
0

信息不足。如果您正在谈论此演示,它使用ELM FatFS库,该库可移植到任何媒体,只要有合适的块驱动程序。STM32F4 闪存块结构并不能真正用作文件系统,除非它是只读的,然后您必须静态创建文件系统结构。

为您的 STM32 添加 SD 卡支持很简单,而且可能更简单 - 该示例使用 SPI 接口,它比 SDIO 连接和编码要简单得多。该示例适用于 STM32F103 - 它与 STM32F405 之间可能存在细微差别,但我已经为两者编写了代码,而且移植起来相对容易。

于 2019-06-08T13:39:30.527 回答
0

您的问题没有提供足够的信息,但据我所知,您正在尝试使用 POST & GET 请求从 HTTP Server 获取数据。

使用 SD 卡是有原因的,因为网络足够大,可以加载到控制器/处理器内存中。在 arduino 的情况下,您可能会看到一个示例,他们从本地服务器加载数据并且数据内容小到足以在 SRAM 中加载和存储内容。

如果要加载网页内容,其大小必须小于 SRAM 的大小,否则会产生内存溢出中断。最好的方法是使用 SD 卡和一些外部存储芯片。

于 2019-06-07T06:08:06.647 回答