sync
sync
This guy hasn't written anything yet

注册于 2 years ago

回答
139
文章
3
关注者
3

至少要有3个扇区分给littlefs,内部如果是4k一个扇区的话, 就需要12k才行了。我是用stm32f407分了4个128k,但用 df查询容量只能显示2个扇区,即256k。前面的两个扇区littlefs使用了。

我也用了Libmodbus的modbus_tcp_test.c这个例子,感觉使用中挺正常的,没发生啥意外,感觉楼主是想深入了解lwip的工作原理吧?这个网络资料很多,很容易找了

如果你的485是自动换向的,不需要RTS控制引脚,
将宏HAVE_DECL_TIOCM_RTS 定义为0即可

define HAVE_DECL_TIOCM_RTS 0

没用1.4.1,有可能是lwip参数配置不合适,建议打开lwip调试,一点点查吧

fal_mtd_nor_device_create这个函数已经定义好的,直接添加下面头文件就行了,不用重新定义

/* 添加 fal 头文件 */
#include <fal.h>
#include "fal_cfg.h"
/* 添加文件系统头文件 */
#include <dfs_fs.h>
#include <dfs_posix.h>

telnet软件包的稳定性不好
推荐使用这个软件包http://packages.rt-thread.org/detail.html?package=agile_telnet
楼主可以试下
而且软件包的作者还有这个包http://packages.rt-thread.org/detail.html?package=agile_console
也很好用,可以实现在串口和网口上动态切换

串口通信本身不做容错处理吗?发现错误舍弃,或者重发不就可以了,要想保证100%可靠,不仅软件还有硬件以及实际的应用环境也是必须要考虑的

应该没啥问题,具体含义看这里

#define RT_EOK                          0               /**< There is no error */
#define RT_ERROR                        1               /**< A generic error happens */
#define RT_ETIMEOUT                     2               /**< Timed out */
#define RT_EFULL                        3               /**< The resource is full */
#define RT_EEMPTY                       4               /**< The resource is empty */
#define RT_ENOMEM                       5               /**< No memory */
#define RT_ENOSYS                       6               /**< No system */
#define RT_EBUSY                        7               /**< Busy */
#define RT_EIO                          8               /**< IO error */
#define RT_EINTR                        9               /**< Interrupted system call */
#define RT_EINVAL                       10              /**< Invalid argument */

楼主把调试关闭就行了

/* debug option */
//#define ETH_RX_DUMP
//#define ETH_TX_DUMP
//#define DRV_DEBUG

在项目资源管理器中选中文件,右键选择属性
image.png
文本文件编码,选中其他。将红框内的编码手动设置为GB2312即可

回到
顶部

发布
问题

投诉
建议