
我用的芯片是STM32H743+LAN8742,在这个平台上实现摄像头图片采集压缩成JPEG格式,然后通过以太网(LWIP)的netconn_write函数发送出去,我这边是服务器端,电脑端使用的是原子开发板资料中的软件“串口&网络摄像头软件”作为客户端。我建了两个线程一个用来采集图像和压缩,一个是以太网连接和发送压缩图片的,每个线程结束后加一个osDelay(30); 一开始运行都正常一秒钟可以发送几帧图片,但运行一段时间后,我这一个小时,图片发送就卡了,很慢大概一分钟才发出一帧图片。线程后的延时时间长了,正常运行的时间就会长一些。因为就卡在err = netconn_write(newconn, Jpeg_Image_Buffer,JPEG_ImageSize_Bytes, NETCONN_COPY);这条语句的地方,我对LWIP内部不了解,所以不清楚可能的原因,希望有了解的朋友可以给予指点指点,非常感谢! |
正点原子阿波罗H743使用DMA2D后普通刷出现问题
STM32CubeMX在配置DCMI的腳位時,在Mode的選項中, 只有8bits, 10bits與12bits, 為何沒有14bits?
STM32H7双核调试问题:CM7能成功调试但CM4始终报"Failed to read ROM table via AP 3"错误
MC SDK为什么不支持H743,看样子只支持H745H755
STM32的TIM触发SPI的DMA发送使用NSS时MSSI的问题
hrtim里update reset和reset update同时打开不会互相激励吗,另外为什么现在定时器周期值不用-1了
想点亮LED灯,stlink连接有问题
STM32H743使用EXIT0触发SPI的DMA发送数据
如何使用cubeide配置stm32H750环境,但是在SYS中没有debug选项,也就选不了serial wire,
在使用nucleo H7开发版 USART2发送数据测试的时候,RTS脚产生与TX脚一样的伴随波形,波形与TX脚一致
帮顶
采集图片的线程优先级低,发送的现成优先级高。每次发完你就等待读取图像的线程释放一个semaphore。这样发送一旦获得这个semaphore就执行发送任务。依次类推。所以如果发送堵塞,就停止读取?
评分
查看全部评分
感谢你的回复,的确图片采集线程的优先级低,发送线程的优先级高,现在是图像采集完成后,进入发送线程,然后就发送的很慢,也不是完全停止,是发送很慢很慢,发送完了还是有图像采集,然后又是很慢很慢的发送进程了。
你可以改用UDP发送试一下。TCP可能会有网络堵塞的可能。先确保你这边没有问题。(如果UDP也是这种情况就可能有问题)
通过仿真,网络发送线程发送缓慢的时候,程序一直停留在static void prvCheckTasksWaitingTermination( void )
和static portTASK_FUNCTION( prvIdleTask, pvParameters )这两个函数间来回执行,不明白为何会调到这里来。
仿真器调试发现发送卡的时候,程序一直在prvCheckTasksWaitingTermination和 portTASK_FUNCTION这两个函数间来回跳,不明白为何会调到这里来?