自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 CJSON分析

一、什么是JSONJSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。源码中JSON格式的例子:{ "name": "Jack (\"Bee\") Nimble", "format": { "type": "rect", "width": 1920,

2022-02-22 15:21:48 351

原创 二叉树的实现

1、存储结构二叉树的结构是非线性的, 每一结点最多可有两个后继。 二叉树的存储结构有两种: 顺序存储结构和链式存储结构2、遍历方式3、代码实现#include <stdio.h>#include <stdlib.h>#include <string.h>#pragma warning(disable:4996)typedef struct point{ char data; struct point *left, *right;

2022-02-18 15:12:31 1392

原创 双向链表的实现

好好学,好好看,好好记!!双向链表可以从表中快速确定某一个结点的前驱。1、双向链表的结点结构2、双向链表的前插操作3、双向链表的删除操作4、 代码实现#include <stdio.h>#include <stdlib.h>#pragma warning(disable:4996)typedef struct point { int data; struct point *right, *left;}Link,*List;/.

2022-02-11 16:08:14 666

原创 JPG、RGB、YUV像素数据保存成JPG、BMP图片

本文章使用的摄像头是OV2640,可以直接输出JPG格式的图片,摄像头不多说,开发板是ESP32-CAM,串口输出数据给上位机,C#写的,VS2017.1、JPG数据图片显示和保存JPG格式的图片只要知道开头数据0xFF 0xD8,结尾数据0xFF 0xD9即可显示和保存。上图和代码:主要实现:if (receiveData[0] == 0xFF && receiveData[1] == 0xD8){ if (revCount >= 1024) .

2021-07-17 16:18:46 2850 1

原创 单链表实现

线性表的链式存储:用一组任意的存储单元存放线性表的数据元素(这组存储单元可以连续,也可不连续)。为表示数据元素之间的逻辑关系,还需有存储一个指示后继的信息——指针。由数据域和指针域构成数据元素的存储映象,称为结点。单链表包括两个域:数据域用来存储结点的值;指针域用来存储数据元素的直接后继的地址(或位置)。链表正是通过每个结点的指针域将线性表的n个结点按其逻辑顺序链接在一起。由于链表的每个结点只有一个指针域,故将这种链表又称为单链表简单实现方式:#define _CRT_SECURE.

2021-01-21 22:37:09 1183 1

原创 顺序表的实现

顺序表的概念:顺序表是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。简单的实现方式:#include<stdio.h>#include<stdlib.h>#define INIT_SQ_SIZE 100#define LIST_INCREMENT 10typedef struct{ int *elem;...

2021-01-20 12:13:36 564

原创 Linux编程select函数用法

最近写代码写到非阻塞IO的时候用到的select函数,这里简单记录一下用法~~~~~(不记录着实容易忘啊)一、头文件&原型头文件include<sys/select.h>原型:源码里的原型张这个样子咯!一、为什么要用select函数linux网络编程要搞一个非阻塞的socket,所以就用咯!用在connect和recv;...

2020-06-30 08:44:27 673

原创 结构体字节对齐及#pragma pack()的使用

这两天遇到结构体字节对齐的问题,搞一搞~~~~~

2020-06-02 20:46:24 5434

原创 第二份实习工作!!!

2019年3月1日-2019年4月26日将近两个月的实习工作就要结束了,这是我在大学毕业之前做的第二份实习工作,坐在这里写总结报告好像停留在2018年的12月8日的下午,我第一份实习工作结束,为自己写一份感受的时候。时间过得很快,不得不回到学校准备毕业答辩的事情,毕竟当下最重要的事情还是毕业的事情,还是得用心准备,只有拿到毕业证,公司才会让我正式报道。两个月的实习时间总会有些收获,首先总结一下...

2019-04-26 11:10:10 430

原创 定时器struct itimerval

struct itimerval { struct timeval it_interval; /* 计时器间隔时间*/ struct timeval it_value; /* 计时器开始执行时间*/ };struct timeval { long tv_sec; ...

2019-03-11 15:36:07 1205 1

原创 多线程编程——互斥锁/条件变量

一,互斥锁在多任务操作系统中,有很多任务同时执行,这些任务可能会用到同一个资源,如果没有一种机制来控制这些任务共享同一个资源,那这些任务可能无法正常使用自己想用的资源。互斥锁--是多任务操作系统中一种简单的加锁方法,来控制各任务对共享资源的访问。互斥锁的状态:上锁(LOCK)和解锁(UNLOCK);互斥锁的操作函数:1 初始化一个互斥锁。int pthread_mutex_ini...

2019-03-08 14:45:53 210

原创 Linux驱动学习一(各级Kconfig和Makefile、Linux内核菜单配置界面的关系)

这里记录一下字符设备驱动Kconfig的作用。1.在Linux内核代码中的drivers/char/Kconfig中有如下代码:(1). menu "Character devices"是菜单名,下面会看到。(2). source "drivers/tty/Kconfig"通过source语句引入别的Konfig。(3). config是一个关键字,定义一个设备驱动的名字,这里...

2019-03-05 10:40:39 550

原创 我的第一份实习工作结束了!!!

2018年8月6日-2018年12月8日四个月的实习时间结束了,由于某些原因,不得不离职回到学校,四个月的时间让我感受很多。我现在大四,即将面临的是毕业进入社会,在这之前我找了一份实习工作,距离学校不远的一家不算大的公司,这四个月里每天早起上班、打卡、下班,深刻的感受到了什么是生活。人总要经历才会成长!刚工作没多久被老板批评。由于刚刚走出校园,有一身的臭毛病,刚入职在讨论问题和请教...

2018-12-08 17:11:22 1135

原创 ov7670摄像头车牌识别

这几天搞了一下ov7670摄像头识别车牌号,查了很多资料也借鉴了别人的代码和思想,在这里总结一下。一,找车牌的上下位置ov7670摄像头输出图像后进行二值化,图像上就只有黑色和白色两种颜色,至于阈值就需要自己慢慢找了,只有车牌上的字是白色的,其他全部是黑色的,扫描整个屏幕的像素点,记录下来黑白跳变点比较多的行号,上下行间距就是车牌的上下位置。二,找车牌的左右位置找到上下位置之后就可...

2018-11-27 13:44:45 7245 8

原创 stm32驱动ov7670摄像头识别颜色并追踪

最近在搞摄像头识别颜色并追踪,有了那么一点点成过,记录一下防止以后忘了!先上两张成果图:有点模糊,凑合看。     大神地址:https://www.amobbs.com/thread-5499408-1-1.html?_dsign=85056954简单记录一下算法实现原理:摄像头输出的数据给屏显示,用屏幕的读点函数读出像素点,将读出的像素点解析成RGB格式...

2018-11-22 18:00:36 25360 89

原创 stm32上电不复位,需手动复位问题。

最近做一个项目,程序下载进去可以运行,重新上电不会自动复位,需手动复位才能正常运行,检查了boot和复位电路都没有问题。查了各种资料,最后发现应该是部分硬件上电比较慢需要等待一定的时间,简单粗暴的解决办法就是在程序刚开始就给一定的延时,让整个硬件跑起来。解决此问题。...

2018-09-17 10:21:06 16481 10

原创 c语言内存四区,指针、数组、结构体的存储

c程序内存四区的个人理解 代码是vc6.0运行结果。栈:由编译器自动分配释放,存放函数的参数值,局部变量等, 存放在这里的变量地址不能作为返回值返回,因为这部分分配的内存会被析构,当你访问这块内存时,这块内存可能已经不存在了,只剩下返回的首地址了。比如:char *fun(){    char a[];//临时变量 存放在栈区    char *p = NULL;    p = "...

2018-09-09 18:58:44 2302

原创 stm32驱动ov7670 数据转BMP格式再转JPEG存储

一.搞了几天摄像头终于搞出来了一点成果,本打算用BMP格式保存读出的数据但是数据太大达到225k,后来又将BMP数据转成JPEG格式就小了很多,jpeg是有损压缩图片会变得不那么清晰。搞出来的成果:二.摄像头小知识:XCLK是输入摄像头的时钟,看别的原理图接的是一个12M的晶振,初始化的时候4倍频达到48M,这里没有接,用PA8输出8M内部6倍频达到48M,PCLK是摄像头输出的...

2018-08-29 12:02:40 7563 43

BMP_JPEG.zip

jpg,bmp,yuv格式数据保存成jpg、bmp图片,yuv转rgb保存,yuv保存成黑白图,需要的拿去学习。

2021-07-17

max30102心率传感器stm32 c语言版

max30102心率传感器stm32 c语言版 需要的可以下载继续优化。

2018-12-05

stm32+ov7670+颜色识别追踪

stm32驱动ov7670摄像头识别追踪不同的颜色,学习学习还不错。

2018-11-22

stm32驱动ov7670 数据转BMP格式再转JPEG存储

可以用来拍摄一张图片,转BMP格式再压缩成JPEG格式,数据保存再外部flash,可以直接将数据发给上位机显示图片。需要的可以拿去用。

2018-08-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除