本帖最后由 a496272917 于 2019-12-5 10:25 编辑
本贴内容为串口和网络(UDP)传输视频 硬件:野火的指南者,W5500模块,OV7725 软件:UCOS,C# WinForm 1 分享原因:在做东西的时候需要将下位机的视频传输给上位机显示,在网上找了好久资料,没找到现成的,所以自己写了一个,分享在野火论坛里。在这里感谢下野火,看野火资料和视频学到了好多。 2 分块说下程序: 2.1 下位机 a 任务1:接收上位机的命令,控制视频传输的开始和停止 b 任务2:传输视频数据 c 任务3:接收上位机控制指令(控制指令是用来控制机器人的,只关注视频传输的忽略) 2.2 上位机 a RGB格式转换,注意5位转8位,要往高位移动,这样只会带来一些精度损失,反之,则会丢失色彩值。 [mw_shl_code=csharp,true]private static void rgb565_2_rgb24(byte[] rgb24, ushort rgb565) {
//extract RGB
rgb24[2] = (byte)((rgb565 & RGB565_MASK_RED) >> 11);
rgb24[1] = (byte)((rgb565 & RGB565_MASK_GREEN) >> 5);
rgb24[0] = (byte)((rgb565 & RGB565_MASK_BLUE));
//amplify the image
rgb24[2] <<= 3;
rgb24[1] <<= 2;
rgb24[0] <<= 3;
//data = (uint)(rgb24[2] << 16 + rgb24[1] << 8 + rgb24[0]);
//return data;
}[/mw_shl_code] B 一些关于Socket套接字编程的东西,我也现学的,就不说了。 3 优化点 3.1 F1单片机的主频和内存限制,有钱上F4,肯定速度快,我用的V系列64KBRAM,后期加个队列,多缓存几行数据,看能否提高速度。上位机也同样如此,主要是为了减少数据拷贝,降低时间复杂度。 3.2 加入UDP确认重传机制 后序的优化会上传到github。 4 显示结果
github 地址:选择最新版即可
https://github.com/howu911/video_transmission
|