转:【小作品】STM32无线WIFI视频小车制作剖析(下)
转载于:http://blog.csdn.net/u012819339/article/details/50654764
实体作品请参看优酷视频。
若以上链接点击无效请把该链接地址复制到浏览器地址栏 http://v.youku.com/v_show/id_XODYzODczNzQ4.html
说明:
该作品为arvik于2014年下半年在学校实验室做的一个国家级大学生科技创新项目,大概花了两个多月课余时间完成。
其实博客早在几个月前就写好了,一共3篇,后来发现第一篇丢失。本想补起来,却没有时间,且实际作品早已拆开,保留在学校“博物馆”,没办法重新试验了,就不补了。
本篇主要是代码,不多赘述,直接贴关键代码,代码不详细解释了,稍微花点功夫应该能看懂。
软件部分直接贴代码讲解,main函数如下,创建起始任务
static OS_STK startup_task_stk[STARTUP_TASK_STK_SIZE]; //定义栈int main(void)
{BSP_Init(); OSInit(); OSTaskCreate(Task_LED,(void *)0, &startup_task_stk[STARTUP_TASK_STK_SIZE-1], STARTUP_TASK_PRIO); OSStart(); return 0; }
在Task_LED任务中:
#include "includes.h"#include "err.h"
#include "lwip/init.h"
#include "etharp.h"
#include "udp.h" #include "tcp.h" #include "httpd.h" #include "stm32f10x.h" #include "OV7725.h" #include "Imag_App.h" #include "usart1.h" #include "SCCB.h" #include "Imag_App.h" OS_STK task_led2_stk[TASK_LED2_STK_SIZE]; OS_STK task_led3_stk[TASK_LED3_STK_SIZE]; extern volatile u8 Frame_Count; extern int UDP_task(); extern struct netif enc28j60; void Task_LED(void *p_arg) { (void)p_arg; OSTaskCreate(Task_LED3,(void *)0, &task_led3_stk[TASK_LED3_STK_SIZE-1], TASK_LED3_PRIO); OSTaskCreate(Task_LED2,(void *)0, &task_led2_stk[TASK_LED2_STK_SIZE-1], TASK_LED2_PRIO); while (1) //TCP定时器 { LED1( ON ); OSTimeDlyHMSM(0, 0,0,250); LED1( OFF); tcp_tmr(); OSTimeDlyHMSM(0, 0,0,250); tcp_tmr(); //每250ms调用一次 } } void Task_LED2(void *p_arg) //arp任务 { (void)p_arg; while(1) { LED2(ON); OSTimeDlyHMSM(0,0,5,0); etharp_tmr(); //每5s调用一次 LED2(OFF); OSTimeDlyHMSM(0,0,5,0); etharp_tmr(); //每5s调用一次 } } extern struct udp_pcb *UdpPcb; extern struct pbuf *p; extern Data OVdata; void Task_LED3(void *p_arg) { (void)p_arg; //摄像头 SCCB_GPIO_Configuration(); FIFO_GPIO_Configuration(); while(Ov7725_Init() != SUCCESS); VSYNC_Init(); Ov7725_vsync = 0; //LWIP初始化 UDP_task(); OSTimeDlyHMSM(0,0,0,100); //等待其他任务初始化完毕 // p = pbuf_alloc(PBUF_RAW,sizeof(OVdata),PBUF_RAM); // p->payload = (void *)(&OVdata); while(1) { ethernetif_input(&enc28j60); //轮询是否接收到数据 if( Ov7725_vsync == 2 ) { FIFO_PREPARE; /*FIFO准备*/ Get_imag_and_discor(); /*采集并显示*/ Ov7725_vsync = 0; Frame_Count++; /*帧计数器加1*/ } LED3(ON); OSTimeDlyHMSM(0,0,0,4); LED3(OFF); } }
相关资料阅读:
LWIP协议请参看网上老衲五木的 lwip协议详解
摄像头部分代码请参看野火的PDF教程,毕竟摄像头是直接用的野火的代码,同鞋们也可以用正点原子的代码(开源电子网)或奋斗论坛的代码,可到相关论坛收集相关资料。
ucos-ii操作系统网上论坛有不少资料,也可在我的博客(http://blog.csdn.net/u012819339)查找相关内容。
酱紫,就介绍到这儿了。
转载于:https://www.cnblogs.com/tureno/articles/7173647.html
转:【小作品】STM32无线WIFI视频小车制作剖析(下)相关推荐
- 【小作品】STM32无线WIFI视频小车制作剖析(上)
实体作品请参看优酷视频. 若以上链接点击无效请把该链接地址复制到浏览器地址栏 http://v.youku.com/v_show/id_XODYzODczNzQ4.html 说明: 该作品为arvik ...
- android wifi智能车,STM32智能WiFi视频小车全套资料(带安卓app与stm32源码等)
/* 包含头文件 ----------------------------------------------------------------*/ #include "stm32f1xx ...
- 【esp8266】小黑板ESP8266无线wifi SoC方案连接机智云最详细图文教程
前言:本文详细介绍了小黑板接入机智云教程,通过一个手机APP远程控制LED亮灭的应用,完整的体验了机智云提供的一些列简单方便的开发工具,尤其是代码自动生成工具,懒人福音. 一. esp8266简介 E ...
- 无线WiFi视频传输,无线视频流云端推送方案,天工测控WiFi模块SKW99
文章目录 前言 一.200W高清视频传输方案 1.方案背景 2.200W高清视频传输方案介绍 3.无线高清视频传输方案优势 二.无线视频流云端推送方案 1.方案背景 2.无线视频流云端推送方案介绍 3 ...
- 无线wifi智能小车项目java,项目案例:智能小车
1.智能小车项目案例演示 2.智能小车项目背景 所谓智能汽车,主要指在普通汽车的基础上增加了先进的传感器(雷达.摄像).控制器.执行器等装置,通过车载传感系统和信息终端实现与人.车.路之间的智能信息交 ...
- 【科技小作品】Arduino计数储蓄罐的制作教程
效果图 1.材料准备 母头杜邦线若干 测速传感器模块(槽型光耦)一个 四位数码管模块(x1) arduino R3主板(x1) 电池盒(x1) USB 方口打印数据连接线(x1) 硬纸板一张,厚度自定 ...
- python小应用之moviepy的视频剪辑制作gif图
对视频动画的编辑可以使用python的moviepy库,官方文档: http://zulko.github.io/moviepy/ 1.进入cmd,pip install moviepy 2.使用代码 ...
- 最简单DIY基于STM32单片机的WIFI智能小车设计方案
STM32库函数开发系列文章目录 第一篇:STM32F103ZET6单片机双串口互发程序设计与实现 第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案 第三篇:最简单DIY基于STM32F ...
- Mac连接路由器后没有反应_无线WiFi无法连接到网络怎么办【解决方法】
想必小伙伴们都或多或少遇到过无线 WiFi无法连接到网络 的情况.无线 WiFi无法连接到网络 的原因有很多,遇到这种情况我们应该从最基本的的原因开始排查. 密码输入错误 手机/电脑输入密码不正确是导 ...
最新文章
- JavaScript toFixed() 方法
- 10 年了,腾讯微信后台第一天提交的代码曝光 | 每日趣闻
- HSV(HSL)颜色空间及其应用
- spring 整合junit进行测试
- 汇编原理实验 --查找子字符串的位置
- Java并发编程—ScheduledThreadPoolExecutor原理分析
- 文献学习(part44)--Aberrance suppresse dspatio-temporal correlation filters for visual object tracking
- python网络库_python的网络库
- 【Vue2.0】—mixin混入 (十五)
- rdlc报表的制作步骤
- js获取验证码倒计时60s(超简单)
- 小程序 云函数 python_小程序云函数
- 【数据结构实验题】0/1背包问题的递归求解(注意输出所选物品下标的方法)
- Linux curl命令详解
- Vue安装步骤及教程(详细)
- 叉乘点乘混合运算公式_【“数”你好看】对数运算(Logarithm)
- ZR1012 Zbox loves keyboard (dp)
- C语言malloc与calloc区别
- Apache BookKeeper 简介
- free pascal
热门文章
- 浪潮服务器怎么装虚拟机,VMware 6.7系统安装步骤
- linux 3.4内核初始化,S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
- 计算机性能指标ppt,计算机网络分类与主要性能指标.ppt
- linux 脚本 字符串函数调用函数调用,shell自定义函数及参数调用解析
- html控件无法使用的属性值,用 Enabled 和 disabled 属性禁用 HTML 控件后,取值结果...
- 晴天计算机按键,电脑怎样才能在按键的时候,按下去按键没反应,手台起来才有呢?...
- laravel ajax返回json,Laravel validate error处理,ajax,json示例
- mysql pt table sync_pt-table-sync 使用介绍
- 服务器开机只显示cdm,电脑开机黑屏出现cdm.exe对话框怎么处理?!我的扣扣
- QT:qt安装缺少GUI Application 选项