cxhxy12345
cxhxy12345
This guy hasn't written anything yet

注册于 9 months ago

回答
337
文章
0
关注者
3

你这个写数据是覆盖原来的文件还是在文件后面追加数据,还是另外创建文件写数据。
在Fafts中最关键的是一下几个参数
1、每扇区的字节数
2、win[_MAX_SS] 单个扇区缓冲
3、buf[_MAX_SS] 文件读写缓冲
4、MAX_SS 扇区缓冲最大值
你这里需要修改的因该是buf争对你的数据修改缓冲大小,一般我们按MAX_SS 是256,512k开字节数,具体要看你的媒介设备,SD卡我们一般设置MAX_SS 512。Buf开512倍数,具体看你的数据大小。
建议是
1、FAT类文件系统不适合作为实时写入
2,文件打开关闭次数限制。每次写入不要重复的开关文件,最好采用f_write和f_sync组合,无需每次写入完成后关闭文件
3,文件开关时间不确定。单独放到独立实时任务
4,长时间高频写入速度变慢。采用多重大缓冲,缓冲区大小为512的整数倍,如4K,具体自己调整
5,采用异步缓冲模式,接收数据和写入数据分开操作
如果间隔时间长,则缓冲可以开小点!

有这个文件的,在LwIP\\src\\include\\lwip目录下,如果没有说明你的LWIP下载缺少文件

LWIP连接作为客户端,我们一般使连接不保持的,除非你的数据在一个时间段内有规律的连续发送。因为TCP连接对系统的开销比较大。但如果你希望与服务器一致保持握手状态,可以用keepalive保活机制
但看了你上面的描述,因该不是这个问题,你这里会不是使创建连接Tcp_pcb的块名称是同一个,因为你的连接一个可以,另一个不可以。最好把你的程序代码贴出来看下

你这个需要用浮点数来计算啊,看来你需要看下C语言的数据类型是这么定义的。
看下http://c.biancheng.net/view/1763.html,这里有详细介绍~~~

首先用rt_thread_mdelay做延时一定能切换任务,除非你的任务优先级分配和延时上有问题。可以贴出你的代码看下,并标注在哪里出错的,这样大家可以分析下

你主要对EEPROM内部构建不熟悉,AT24C16采用的是8位页写模式,页缓冲是64字节,每页写入之间的间隔时间是芯片烧入的时间T(不同厂家时间不同,需要查看手册),所以页与页之间的写入需要有一个等待时间,不然写入的数据会出错。不满一页写入,实际也是页写,所以我们在程序中对某个地址写入一个字节,实际就是该地址的页缓冲全部写入一次。
好了,现在回答你的问题,
1、首先你一次写256字节对24C16是因该有问题的,这里需要修改页写入的大小
2、如果就是256个字节一页,当你操作写入大于一页数据的时候,看似地址是连续的,但实际的页缓冲已经溢出,页写地址自动到0地址开始了,例如你写256个0后接着写16个0xFF,那么你该页的数据就编程了前16个字节是0xFF然后从17开始到256是0.
注意有些芯片的页写地址寄存器溢出是不循环到0的!!!!
3、仔细阅读你的24C16的芯片厂家手册,注意细节。

如果你用的是LWIP协议栈,需要打开DNS功能才能实现域名解析服务。具体可以看DNS的介绍
这里推荐一个简单的介绍,实现www.baidu.com
网址是:https://blog.csdn.net/zhaozhiyuan111/article/details/89950591
如果你想做深入的研究,就需要熟悉DNS,对域名解析的一个处理dns_gethostbyname函数。

有算法的,看下这个网址
https://blog.csdn.net/lnfiniteloop/article/details/114276680

上面有详细的MD5介绍和算法介绍,以及测试的源代码,可以拿来直接有~~
算法流程:
image.png

你这个好像只是启动了telnet服务器,并没有进入Telnet,因为登录是需要密码的,在RTT官网上例程中是空
image.png
你如果用的是SecureCRT,需要注意这点
不知道这个提示对不对~~~~
Telnet作为TcpServer服务器,如果你掌握了tcpsrver的编程,实际很简单,RTT也是基于这个做的,完全可以自己编写~~~~

你的OLED屏是用那种驱动芯片,这个先要弄清楚~~~~,再考虑移植对应的驱动代码,有些驱动芯片是内带英文字库的,如果需要显示汉字,可以上网下个汉字点阵软件,根据你的需要描出你需要的汉字点阵库(16X16,24X24)放入程序中调用。

如果1ms要中断5次?你的can总线数据是不是太多了,can数据一次最少8个字节为一帧数据,如果1ms中断5次,那几本200us一次。操作系统的Tick最小也是1ms做一次任务切换,如果再低,系统效率会降低。如果你的数据每次不需要及时处理,可以考虑用DMA方式放入缓冲区中,再用任务去读取,这样可以一次性读取多个数据来处理,否则只有建议你不要用操作系统了~~~~

bootloader后硬件需要重新定向,但不会影响系统,你是不是重定向后初始化单元中对时钟的分配出来问题?

个人喜欢了,背景最好可以选择~~~~

硬件定时器的回调函数和线程是二个概念,我们一般会在回调函数中释放一个信号,或则触发一个事件等操纵,等需要的线程去获取信号或事件操作,而这个线程是有优先级的。
在单片机中,硬中断的等级是最高的,不管你是在那个等级的优先级线程上执行,一旦中断来了,就马上进入中断例程。在中断完成后,再回到原来的线程断点继续执行。

回到
顶部

发布
问题

投诉
建议