|
本帖最后由 点点&木木 于 2019-4-12 11:31 编辑 Mongoose是目前最流行的开源嵌入式Web服务器和网络库,它支持mbed平台。
这个项目中使用的东西 硬件组件 STMicroelectronics STM32F469I-DISCO ARM mbed平台支持的任何主板 × 1 CC3100BOOST SimpleLink CC3100 Wi-Fi BoosterPack 德州仪器CC3100BOOST SimpleLink CC3100 Wi-Fi BoosterPack × 1 介绍 我将向您展示如何使用Mongoose ,这是最受欢迎的开源嵌入式Web服务器和网络库,其中ARM支持的任何ARM板mbed都连接到TI CC3100 WiFi子板。 布线 您需要做的就是用6根线将CC3100板连接到您的设备。将4条SPI线连接到SPI端口1的相应引脚。对于nHIB和IRQ线,您可以选择任何可用的GPIO。你可以很容易地找到SPI_MOSI,SPI_MISO,SPI_CLK,并SPI_CS与这幅画的帮助下板:
这是STM64的引脚图,因此您无需自己搜索:
该mbed平台将主SPI定义为: SPI_MOSI = PB_15, SPI_MISO = PB_14, SPI_SCK = PD_3, SPI_CS = PH_6, 这在技术上就是SPI2。可能是因为SPI1用于驱动LCD屏幕。 只需连接相同名称的电线,即SPI_MOSISTM32连接到SPI_MOSICC3100(没有交叉输入/输出; MOSI代表主输出从输入)。 HTTP服务器 该项目的目标是构建一个连接到WiFi网络并托管HTTP服务器的设备。设备将运行一些自定义代码以响应传入的请求,例如闪烁LED并生成一些回复。 我简化了一下我在这里介绍的来源; 只是为了避免分心。您可以在此处找到动态Web服务器示例的源代码。 int main() { // configures networkinterface SimpleLinkInterface wifi(PG_10, PG_11); // nHIB, IRQpins // disables defaultexample web server sl_NetAppStop(SL_NET_APP_HTTP_SERVER_ID); // connect to yourwifi network wifi.connect("yourssid", "yourpass"); // ... 真棒。呼叫wifi.connect呼叫将阻塞,直到设备加入网络并获得IP地址,从而准备好运行。 我们可以访问有关WiFi连接的IP地址和其他信息: const char *ip= wifi.get_ip_address(); const char *gw = wifi.get_gateway(); const char *mac = wifi.get_mac_address(); printf("IP address is: %s\n", ip ? ip : "No IP"); printf("GW address is: %s\n", gw ? gw : "No IP"); printf("MAC address is: %s\n", mac ? mac : "No MAC"); 或者我们可以启动动态Web服务器,为您的设备提供API: mg_connection*nc = mg_bind(&mgr, "80", ev_handler); mg_set_protocol_http_websocket(nc); printf("Server address: http://%s\n", ip); 这将在默认端口上启动Web服务器http,您可以编写对HTTP请求作出反应的代码。我们来看看如何: void ev_handler(struct mg_connection *nc, int ev, void *ev_data) { switch (ev) { case MG_EV_ACCEPT: { // ... break; } case MG_EV_HTTP_REQUEST: { struct http_message *hm = (struct http_message *) ev_data; mg_send_response_line(nc, 200, "Content-Type: text/html\r\n" "Connection: close"); mg_printf(nc, "\r\n<h1>Hello, Sir!</h1>\r\n" "You asked for %.*s\r\n", (int) hm->uri.len, hm->uri.p); // we're donewith the reply. nc->flags |= MG_F_SEND_AND_CLOSE; // Makesomething happen on the device led_blue = !led_blue; break; } case MG_EV_CLOSE: { // ... break; } } } 使用浏览器导航到在串行控制台上打印出来的URL。您应该看到一个简单的问候页面,由处理程序和相应的消息创建:MG_EV_HTTP_REQUEST 0x20000878: Connection from 192.168.1.15:38548 0x20000708: GET/ 0x20000708: Connection closed 代码 ---
mongoose-master.zip
(3.82 MB, 下载次数: 70)
|
| 学习下 |
| 附件里没工程代码 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版