Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
WIZnet_W5500
WEBServer
国民技术_N32G45x
【N32G457 】基于W5500的Webserver数据展示
发布于 2022-03-11 11:35:13 浏览:1901
订阅该版
[tocm] 本来要做的的基于 SDI-12 的传感数据记录器,拿到板子后,发现并不合适;恰好手头有个 W5500 模块,就做了个用于展示传感器数据的 webserver; 基于W5500和Mongoose开发的webserver;硬件部分由W5500模块,N32G457主控板等组成;软件部分主要移植了Mongoose 7.4, 适配了 RT-Thread SPI驱动,填了一点 W5500 软件包的一点坑。 # 硬件接线 ## W5500 模块硬件 SPI1 CS_PIN -> PA3 RST_PIN -> PC4 IRQ_PIN -> PA0 ## ADC 温度 VRFE_N -> GND VREF_P -> 3V3 # 软件实现 该项目软件架构主要使用2个线程完成,其中: MG线程:Mongoose http server 主线程; INFO线程:负责获取芯片温度,由于手头没有其他类型的传感器,就在该线程中产生了一些用于展示的随机数; 由于没有存储器件,js 部分的代码存在 ROMFS 中,js部分使用 d3.js 进行动态图表的绘制和更新,使用 axios 进行http的请求; # 作品完整图片 ![harware.png](https://oss-club.rt-thread.org/uploads/20220311/e7098ea210b3ebb94e185dcb3c6c54ac.png.webp) # 演示效果 ![show.gif](https://oss-club.rt-thread.org/uploads/20220311/0e0c2db0413065263b9cfe0bb5cc223d.gif) # 代码地址 https://gitee.com/yukelab7/n32g457_mongoose # 其他 ## 基本开发环境配置 使用RT-Thread 的最初的 env 环境进行代码的编译; ### 编译环境 scons ### 使用pyocd进行烧录 #### pyocd 烧录环境配置 [文档](https://pyocd.io/docs/target_support.html#manual-pack-usage)中对目标芯片的支持中(Target support)讲了可以通过三种方式进行目标芯片的支持; 1. Built-in 2. CMSIS-Packs 3. Manual pack usage 我这里通过CMSIS-Packs 的方式,使用国民科技提供了 N32G45x 的 `Nationstech.N32G45x_DFP.1.0.4.pack`包,但是注意要对这个包的压缩文件路径进行适当修改,注意左边是正确的配置; ![pkgs.png](https://oss-club.rt-thread.org/uploads/20220311/70c2712d15192fed34f97b93b63c5d4c.png) 使用默认的配置文件, 文件名必须为 `pyocd.yaml` 或 `pyocd.yml` , 然后通过 `pyoncd flash ./rtthread.bin` 下载固件; pyocd.yaml 文件内容 ```yaml probes: 0001A0000002: # Probe's unique ID. target_override: n32g457vel7 test_binary: ./rtthread.bin pack: - ./pyocd_flash/Nationstech.N32G45x_DFP.1.0.4.pack ``` ![pyocd.png](https://oss-club.rt-thread.org/uploads/20220311/2fb5508008adcab4c4bbf2a21a48dc0a.png) ## 软件开发过程中的三个坑 ### spi 部分 #### 问题描述 自己仿硬件库,整了个 spi 驱动,进行 `spi_transmitreceive` 时遇到,在填充数据之前发现 SPI_I2S_RNE_FLAG 置位,导致回读的数据数据错位及缺失; #### 解决方案 在进行数据数据读写过程中,确保 SPI_I2S_RNE_FLAG 处于非置位状态,通过一次 dummy 读操作; ### W5500 部分 #### 问题描述 wiznet 包没有对wiznet 包 wiz_setsockopt 函数没有对 SO_REUSEADDR, SO_KEEPALIVE 选项进行处理,导致 mongoose 启动失败; #### 解决方案 增加这两个选项参数; ### mongoose部分 #### 问题描述 mongoose 在 qemu 上运行正常; 由于 n32g457 板上没有存储器件,将服务器相关文件以 ROMFS 的方式存入flash中,然后使用 mongoose 默认的文件接口,读写 `index.html`失败; #### 解决方案 查看发现mg_file 的本质是用标准库实现的,可能 RTT 中标准库对 ROMFS 的读不支持,基于 DFS 的 poxis 接口,做了文件接口;
3
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
yukelab
这家伙很懒,什么也没写!
文章
4
回答
47
被采纳
1
关注TA
发私信
相关文章
1
W5500软件包开机无法解析link.rt-thread.org
2
W5500 如何实现断开重连?
3
W5500初始化全部都OK,电脑能ping板子,板子ping不通电脑
4
w5500 编译错误
5
求个SPI上挂W5500、Max6675两个设备的驱动例子
6
TFTP与W5500配合能传文件但无内容
7
wiznet(W5500) 设置MAC
8
SPI总线挂接2个W5500以太网芯片
9
多网卡建立链路问题,求官方解答
10
为什么W5500一直显示无法挂载
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部