基于STM32F429网络摄像头实现

本文介绍了一种从内网穿透至外网的方法,特别适用于校园网环境。通过配置路由器静态IP,绕过校园网认证,实现本地设备与阿里云服务器的连接。文中详细展示了基于TCP协议的图像传输代码,包括创建TCP连接、读取摄像头数据并发送至服务器的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重点:实现从内网到外网穿透
从本地到阿里云服务器实现

由于本人是学生,还需要突破校园网认证。
校园网认证 通过配置路由器的静态IP,而不使用DHCP,从而突破校园网认证

采用TCP方式传输图像,附TCP传输代码

void netcamera_task(void *arg)
{
	err_t err;

	static ip_addr_t server_ipaddr,loca_ipaddr;
	static u16_t 		 server_port,loca_port;
    
    u8 res=0;
	u32 *tbuf;
    
	LWIP_UNUSED_ARG(arg);
	server_port = REMOTE_PORT;		//服务器的端口
	IP4_ADDR(&server_ipaddr, lwipdev.remoteip[0],lwipdev.remoteip[1], lwipdev.remoteip[2],lwipdev.remoteip[3]);	//服务器公网IP地址

    while(1)    //等待连接
    {
      tcp_clientconn = netconn_new(NETCONN_TCP);  //创建一个TCP链接
			err = netconn_connect(tcp_clientconn,&server_ipaddr,server_port);//连接服务器
			if(err != ERR_OK)
			{
				netconn_delete(tcp_clientconn); //返回值不等于ERR_OK,删除tcp_clientconn连接
			}
			else if(err==ERR_OK) //成功检测到连接
       {
            camera_init();
            delay_ms(1000); //此延时一定要加!!
            while(1)        //开始视频传输
            {
                res=netcam_fifo_read(&tbuf);    //读取FIFO中的数据
                if(res)     //有数据要发送
                {
                    err=netconn_write(tcp_clientconn,tbuf,NETCAM_LINE_SIZE*4,NETCONN_COPY);//发送数据
                    if((err==ERR_CLSD)||(err==ERR_RST))//关闭连接,或者重启网络 
                    {
                        camera_deinit();//复位网络摄像头
                        netconn_close(tcp_clientconn);
                        netconn_delete(tcp_clientconn);
                        break;
                    }	                    
                }else
                { 
                    OSTimeDlyHMSM(0,0,0,5);//延时2ms
                }	
            }
        }
    }
 
}


内容摘要: 本设计是基于 本设计是基于 Cortex-M4 内核 的 STM32的数字示波器,使用主控芯 片为 STM32F439,主频 180M,外部扩展的 16MB的 FLASH。本设计主要由三大 本设计主要由三大 部分组成。第一大是 硬件 部分:芯片内有三个置 ADC来进行信号采样,主 控外接一个 800*480的 TFTLCD显示屏 来显示待测信号; 来显示待测信号; 第二大部分是 显示部分 部分 :该设计使用了 Seagger公司的 公司的 eMwin作为显示 输入 插件,通过该可以实 时的显示波形,并且可以通过触摸键盘进行 交互 操作;第三部分则是数据处理的 一 些算法:本设计在内 s部有 N=512的 FFT算法、基于线性插值的 算法、基于线性插值的 时基变换递归 算法、递推平均滤波等用来处理采样数据。 该设计 实现了常规双通道示波器的 XY/YT显示方式, 显示方式, 采样频率达到 3.2MS/s,带宽 300KHz,在不开启 FFT功能时 功能时 FPS为 0.41,开启时 为 0.8左右, 能很好的 实时 显示出外部的函数发生器输入正弦波、方锯齿斜白噪声 等测试 信号,并且可以实时显示出 FFT曲线, 可以根据输入信号频率手动调节采 样频率, 内有 统计算法可以实时得到并显示电平信号的均值、 有效峰频率等物理量, 值得一提的是信号 频率的计算是基于 FFT算法得到的,在该设 算法得到的,在该设 计的带宽内失真 率不会超过 2%,误差较 小。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值