dm9000数据速率_STM32F103战舰DM9000的LWIP例程TCP速度慢,发送间隔太长
應該更改下代碼, 我的TCP Serve發送速度約為655KB/Sec
// SEND_BUF_SIZE=1024 发送数据长度 1024Bytes 約為 655KB/Sec
// LWIP数据发送,用户应用程序调用此函数来发送数据
// tpcb:TCP控制块
// 返回值:0,成功;其他,失败
// err_t tcp_server_usersent(struct tcp_pcb *tpcb, u16 sendLength)
err_t tcp_server_usersent(struct tcp_pcb *tpcb, struct my_lwip_file *myStruct)
{
err_t ret_err;
struct tcp_server_struct *es;
struct pbuf *ptr;
err_t wr_err=ERR_OK;
u16 plen;
static u8 readFileFlag=0; // David 添加的讀取SD卡檔案識別旗號, 0 --> Open File, 1 --> Read File
static u8 readData=1; // David 添加的讀取jpg 數據旗號, 0 --> 不執行 Read File 以避免因數據尚未傳送再次讀檔造成數據丟失
es=tpcb->callback_arg;
if(es!=NULL){ // 连接处于空闲可以发送数据
if(readData){ // David 添加的前次數據有成功傳送可繼續讀取
if(readFileFlag){
readFile(myStruct);
}else{
openFile(myStruct); // 開啟檔案
readFileFlag=1;
}
}
readData=0; // 預設為不讀取數據
es->p=pbuf_alloc(PBUF_TRANSPORT, myStruct->sendLength,PBUF_POOL); // 申请内存
pbuf_take(es->p,(char*)myStruct->sendBuffer,myStruct->sendLength); // 将tcp_server_sentbuf[]中的数据拷贝到es->p_tx中
while((wr_err==ERR_OK)&&es->p&&(es->p->len<=tpcb->snd_buf)){
ptr=es->p;
wr_err=tcp_write(tpcb,ptr->payload,ptr->len,1); // 将要发送的数据加入发送缓冲队列中
if(wr_err){
return 1;
}
if(wr_err==ERR_OK){
plen=ptr->len;
es->p=ptr->next; // 指向下一个pbuf
if(es->p){pbuf_ref(es->p);} // pbuf的ref加一
pbuf_free(ptr);
tcp_recved(tpcb,plen); // 更新tcp窗口大小
}else if(wr_err==ERR_MEM){
es->p=ptr;
}
tcp_nagle_disable(tpcb); // David 添加的屏蔽nagle算法才會立即發送 Data, tpcb->flags |= TF_NODELAY
ret_err=tcp_output(tpcb); // 将发送缓冲队列中的数据发送出去
readData= !ret_err ? 1 : 0; // 當正確傳送數據後再設定為 TRUE
}
if(es->p!=NULL){
pbuf_free(es->p); // 释放内存
}
ret_err=ERR_OK;
}else{
tcp_abort(tpcb); // 终止连接,删除pcb控制块
ret_err=ERR_ABRT;
}
return ret_err;
}
dm9000数据速率_STM32F103战舰DM9000的LWIP例程TCP速度慢,发送间隔太长相关推荐
- E1载波的数据速率是(16)Mb/s,E3载波的数据速率是(17)Mb/s。答案】B D
E1载波的数据速率是(16)Mb/s,E3载波的数据速率是(17)Mb/s. (16)A.1.544 B.2.048 C.8.448 D.34.368 (17)A.1.544 B.2.048 C.8. ...
- 数据速率、载波频率和带宽的关系
1. 数据传输速率 又称比特率或数据带宽,描述通信中每秒传送数据代码的比特数,单位是bps.这个很好理解,是"刚需",每秒传多少bit的数据. 2. 码元(符号) 也可以叫符号(s ...
- 综合布线中所需要的的带宽和数据速率
术语带宽和数据速率通常可以互换使用,但如果您在布线领域工作,它们实际上是非常不同的. 您的internet提供商可能会公布每秒500兆比特(Mbps)的带宽.在这种情况下,它们实际上是指数据速率.在布 ...
- 超宽带 DW1000 API --- dwt_configure (频道,脉冲重复频率,数据速率等)
dwt_configure void dwt_configure(dwt_config_t *config); 此功能负责设置通道配置参数以供两者使用发射器和接收器. 设置由传入的dwt_confi ...
- LoRa 数据速率,码片速率,符号速率
文章目录 前言 一.码片速率 二.符号速率 三.数据速率 四.码片传输时间 五.符号传输时间 六.扩频因子对波形的影响 前言 介绍数据速率.码片速率.符号速率,以及连续频率信号持续时间和符号持续时 ...
- Lora技术- 码片/码元/数据速率以及空中时间计算
目录 1 前言 2 码片/码元/载荷数据速率 2.1)码片速率 2.2)码元速率(Rs) 2.3)载荷数据速率(DR) 3 空中时间 3.1)总码元数计算 4 LoRa官方计算工具 1 前言 通过&l ...
- 带宽与码元的关系_数据速率、载波频率和带宽的关系
数据速率.载波频率和带宽的关系 来源 https://zhuanlan.zhihu.com/p/53760015 1. 数据传输速率 又称比特率或数据带宽,描述通信中每秒传送数据代码的比特数,单位是b ...
- 带宽与码元的关系_1.简单谈谈码元速率、数据速率、信道带宽、信道容量、载波几个概念...
今天和大家共同谈一谈以上几个在收发机设计中经常遇到的通信相关概念,有时候非常同意弄混淆.我们都是到对于任何一个信号经过傅里叶变换(Fourier Transition),可以在一个频率谱第一个零点定义 ...
- 码元速率、数据速率、信道带宽、信道容量、载波的概念
我们都是到对于任何一个信号经过傅里叶变换(Fourier Transition),可以在一个频率谱第一个零点定义为信号的带宽,常常被我们认为信号的基带带宽(Base bandwidth).基带信号在发 ...
- 信号速率计算(数据速率、比特率、码元速率、符号率、带宽、采样率)
取信号带宽为10MHz(中频10M,零频时左右各5M),取成型滤波(会展宽信号)中滚降系数为0.15(最小值,常规值0.35),则可以得到符号率(码元速率)(波特率)=10/(1+0.15)=8.7M ...
最新文章
- 谷歌下一代AI架构、Jeff Dean宣传大半年的Pathways终于有论文了
- SpringMvc 3.x跨域+ajax请求
- C/C++中作用域详解(转)
- Flex中如何通过horizontalTickAligned和verticalTickAligned样式指定线图LineChart横竖方向轴心标记的例子...
- 专车降价滴滴快车使命终结?
- Docker容器学习梳理-容器时间跟宿主机时间同步
- Redis如何支持高并发的访问
- Linux学习之源码2:start_kernel流程
- Sonar 下载及结合maven使用
- 网页完整的长截图怎么截?3步搞定!
- C++线索二叉树(中序线索二叉树及遍历)
- 我来告诉你,一个草根程序员如何进入BAT
- 新政举市暖冬再现? 业内乐观情绪高涨
- Anaconda常用命令小结
- Android Studio制作.9图片,看这一篇就够了
- 怎样用MATLAB画二次函数曲线,matlab画二次函数图像
- js 数字金额大小写转换成中文大写
- 如何关闭win10防火墙_如何彻底关闭win10自带杀毒软件:windows defender?
- HNUST-OJ-2184-huffman编码(1)
- 用户属性标签系统建设思路以及结构
热门文章
- 峰会倒计时3天!硅谷传奇投资人登陆专场,围炉共话分析型数据库的爆发式增长
- RBAC权限设计详解
- SD卡--摄像头中扩容卡原理及检测机制
- macos 下 vmware fusion 安装 vmware tools
- 匠能电子:55寸0.88mm拼接屏与1.7mm拼接屏的对比效果
- 【LED大屏文字显示---VUE】
- 基于Neo4j计算网络节点中心性(Closeness、betweenness Centrality)
- C# xml转json(xml、json相互转换)
- 安川e1000中文说明书_安川(YASKAWA)变频器E1000说明书.pdf
- 绘制三角形的外接圆和内接圆