cxhxy12345
cxhxy12345
This guy hasn't written anything yet

注册于 11 months ago

回答
337
文章
0
关注者
3

没有权威数据,但现在比较热门

你是RTT官方提供的按软件包进行移植的吗?
RTT官方sqlit移植网址http://packages.rt-thread.org/detail.html?package=sqlite

LWIP可以支持双网卡
硬件初始化时要区分两个网卡的MAC地址并且填充到netif块中。
数据流方向,判断返回的数据是要发送到哪个网卡,将数据拷贝到网卡发送缓冲区,然后发送。同理判断是哪个网卡接受到了数据,并将网卡接受缓冲区中的数据拷贝到netif块中。
注意:在发送数据时要判断是那个网卡,否则出现ping 二个网卡都能通的现象。另外在ip_route()函数是
找到默认的一个路由表中的第一个路由就直接返回了,所以二个网卡是同一个段时,要比较源地址来确认由
那个网卡来发送数据。
所以,如果你要实现双网卡,对LWIP的底层驱动函数还要做一些修改才可以。当然也要保证你有充足的内存可以被分配!

单从这个函数来说,如果载X2和X1之间加一个判断的确是更加完善。

其实这个可以不用想得太复杂,如果你对几个状态不是很了解得情况下,最简单得理解是:
因为就绪态除了被挂起外(特殊情况,一般不存在),都会转化为运行态。所以说二个状态相同也可以理解,但本质上还是不同。

AT模块得整个框架结构我觉得还是很合理得。at_client_getchar 中可以通过函数rt_device_read可以在缓冲区一次读取的你所需要得数量,如果你觉得读一个字节太少,可以修改参数到你需要读的字节数。只是例程中设置得读取一个字节。

是不是浏览器版本问题啊,这个可以打开的,服务器在国内。

大学里做的项目对面试官来说都是重复出现的哪些东西,并不是因为简单。实际运用中就是信号采集做处理也可以做的很好、也可以做出花来的~~~。建议先到能进去的公司先从实际项目开始练习,同时设定自己的学习方向。这样做2~3年再考虑进大厂去锻炼。

对flash的操作要看具体手册,每个型号的flash都有最小扇区缓冲,从256~4096不等,flash的读可以按地址读任何地址的一个字节,但写入是它是通过缓冲刷新块写入的方式,也就是不管你写多少字节,它都是按你写入地址所在的块做写入操作。所以这里有几个方面要注意
1、块写入的边界对齐
2、修改块数据要做:“读出---修改---写入”的操作
3、每次块与块写入之间需要有一个写入时间(具体看芯片手册),如果时间不够会导致写入乱码。
4、读可以随机访问任何地址,

你这个问题太大,文件写入是先放在文件缓冲中的,当关闭文件后,系统执行真正的写入操作。写入不需要同步,在打开文件后,会检测文件的大小,判断缓冲与文件的关系。写操作时会判断磁盘空间是否满足你写入文件的大小,如果都OK,则在关闭文件后执行写操作。

是的,需要关闭日志,不过你也可以不理睬~~,毕竟日志在调试中还是很有用的。

AT组件是AT协议的通讯组件,MQTT软件包是在TCP/IP基础上实现MQTT通讯,如果你要理解这二者的关系则是
用户<--->AT组件<--->MQtt协议包<---->TCP/IP协议包<---->网络链接层

               |<--------net组件---------------->|

这样就可以用AT命令发送数据/接受应答数据。
如果将net组件改成蓝牙、WIFI、Cat1、Nb_lot就可以实现这些模块的通讯功能。
官方提供的sample只是简单的通过finsh组件的msh模式测试对应的AT组件和IP模块,
at_exec_cmd(resp, "AT");//AT测试
result = at_exec_cmd(resp, "AT+CIFSR");//返回AT模块的IP地址
如果你想通过msh模式下与AT模块进行通讯,可以用at_cli.c文件中的at函数
具体执行如下:
image.png

上图中的AT模块挂在uart1,console控制台对应的串口是uart0
实现的AT client功能
如果你要做项目,则需要自己建立线程来执行对应的操作。

你在初始化AT端口是已经启动了client_parser线程用来接受AT模组的命令了,通过at_obj_exec_cmd发送AT命令给AT模组后,就等待接受线程发送的resp应答信号了,收到处理则结束sample的测试。这部分内容没有具体的流程说明,需要你自己看代码理解。

字符串拼接方法有下面二种
1.使用strcat进行字符串拼接

int main() {
    char *firstName = "Theo";
    char *lastName = "Tsao";
    char *name = (char *) malloc(strlen(firstName) + strlen(lastName));
    strcpy(name, firstName);
    strcat(name, lastName);
    printf("%s\n", name);
}
  1. 使用sprintf进行字符串拼接
int main() {
    char *firstName = "Theo";
    char *lastName = "Tsao";
    char *name = (char *) malloc(strlen(firstName) + strlen(lastName));
    sprintf(name, "%s%s", firstName, lastName);
    printf("%s\n", name);
}

回到
顶部

发布
问题

投诉
建议