你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H743通过以太网连续发送图片,一段时间后,发送会很慢

[复制链接]
zhangh002 提问时间:2019-1-11 11:27 /
悬赏5ST金币未解决
我用的芯片是STM32H743+LAN8742,在这个平台上实现摄像头图片采集压缩成JPEG格式,然后通过以太网(LWIP)的netconn_write函数发送出去,我这边是服务器端,电脑端使用的是原子开发板资料中的软件“串口&网络摄像头软件”作为客户端。我建了两个线程一个用来采集图像和压缩,一个是以太网连接和发送压缩图片的,每个线程结束后加一个osDelay(30); 一开始运行都正常一秒钟可以发送几帧图片,但运行一段时间后,我这一个小时,图片发送就卡了,很慢大概一分钟才发出一帧图片。线程后的延时时间长了,正常运行的时间就会长一些。因为就卡在err = netconn_write(newconn, Jpeg_Image_Buffer,JPEG_ImageSize_Bytes, NETCONN_COPY);这条语句的地方,我对LWIP内部不了解,所以不清楚可能的原因,希望有了解的朋友可以给予指点指点,非常感谢!

<
收藏 评论12 发布时间:2019-1-11 11:27

举报

12个回答
zhangh002 回答时间:2019-1-14 09:12:09
自己顶一下
斜阳__ 回答时间:2019-1-15 09:24:34
帮顶
Kevin201707 回答时间:2019-1-15 09:35:23
帮顶
xujiantj 回答时间:2019-1-15 09:46:58
帮顶
creep 回答时间:2019-1-15 17:40:09

帮顶
watershade 回答时间:2019-1-15 20:32:06
我不知道我的理解对吗。正常情况下你没接收到的数据都想要发出去。但是你采用的会不会是另一个思路:
采集图片的线程优先级低,发送的现成优先级高。每次发完你就等待读取图像的线程释放一个semaphore。这样发送一旦获得这个semaphore就执行发送任务。依次类推。所以如果发送堵塞,就停止读取?

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

zhangh002 回答时间:2019-1-16 09:54:39
watershade 发表于 2019-1-15 20:32
我不知道我的理解对吗。正常情况下你没接收到的数据都想要发出去。但是你采用的会不会是另一个思路:
采集 ...

感谢你的回复,的确图片采集线程的优先级低,发送线程的优先级高,现在是图像采集完成后,进入发送线程,然后就发送的很慢,也不是完全停止,是发送很慢很慢,发送完了还是有图像采集,然后又是很慢很慢的发送进程了。
watershade 回答时间:2019-1-16 15:58:55
zhangh002 发表于 2019-1-16 09:54
感谢你的回复,的确图片采集线程的优先级低,发送线程的优先级高,现在是图像采集完成后,进入发送线程, ...

你可以改用UDP发送试一下。TCP可能会有网络堵塞的可能。先确保你这边没有问题。(如果UDP也是这种情况就可能有问题)
zhangh002 回答时间:2019-1-17 18:07:46
watershade 发表于 2019-1-16 15:58
你可以改用UDP发送试一下。TCP可能会有网络堵塞的可能。先确保你这边没有问题。(如果UDP也是这种情况就 ...

通过仿真,网络发送线程发送缓慢的时候,程序一直停留在static void prvCheckTasksWaitingTermination( void )
和static portTASK_FUNCTION( prvIdleTask, pvParameters )这两个函数间来回执行,不明白为何会调到这里来。
12下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版