自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

开挂的熊猫

树立终身学习的观念,才能应对未来的挑战。

转载 值得推荐的C/C++框架和库,包含很多开源项目 (真的很强大)

值得学习的C语言开源项目-1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接:http://home.tiscali.cz/~cz2...

2019-01-16 16:18:48 1638

转载 OpenCV使用CMake和MinGW的编译安装及其在Qt配置运行

版权声明:本文由 辉哈 原创,博客链接为 http://blog.csdn.net/huihut ,转载请注明出处。 https://blog.csdn.net/huihut/article/details/78701814 </div> ...

2019-01-14 16:19:36 1233

原创 sizeof用法总结

由于不同位数的操作系统计算结果可能不同,下面是在32位的win7 下计算的。 1 对于直接的调用sizeof,如果是数组首地址,sizeof会输出数组所占地址空间的大小(字节为单位)。如果是一个指针的话,则输出在该系统中地址的字节宽度,即(位宽/8)。#include <stdio.h>int main(){ char a[25]; char *b;...

2018-09-21 08:46:31 438

转载 TCP、UDP数据包大小的限制

1、概述首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。   其中以太网(Ethernet)的数据帧在链路层   IP包在网络层   TCP或UDP包在传输层   TCP或UDP中的数据(Data)在应用层   它们的关系是 数据帧{IP包{TCP或UDP包{Data}}}       不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络...

2018-09-04 12:10:55 1415

原创 数组元素为0的说明

最近在看UVC摄像头驱动,发现了这几段代码:for (j = 0; j < npackets; ++j) {            urb->iso_frame_desc[j].offset = j * psize;//iso是实时的意思            urb->iso_frame_desc[j].length = psize;        }跟踪iso_frame_d...

2018-06-08 16:10:25 1483

原创 OneNET学习资料汇总帖(2018年5月16日)

OneNET接入例程资源汇总:(一)介绍学习资料汇总1.老司机告诉你OneNET3.0是什么http://open.iot.10086.cn/bbs/forum.php?mod=viewthread&tid=667&extra=page%3D12.OneNET3.0私有协议设备接入快速入门(一)http://open.iot.10086.cn/bbs/thread-710-1-1....

2018-05-14 19:11:10 1898

转载 fcntl使用及FD_CLOEXEC详解

fcntl使用说明转自 http://www.cppblog.com/mysileng/archive/2013/01/15/197279.aspx功能描述:根据文件描述词来操作文件的特性。#include #include  int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); in

2018-01-27 15:35:33 501

转载 linux c常用函数 (待完善)

(1)字符测试函数isalnum(测试字符是否为英文字母或数字)isalpha(测试字符是否为英文字母)isascii(测试字符是否为ASCII码字符)isblank(测试字符是否为空格字符)iscntrl(测试字符是否为ASCII码的控制字符)isdigit(测试字符是否为阿拉伯数字)isgraph(测试字符是否为可打印字符)isl

2018-01-10 20:23:39 582

转载 图像卷积与滤波的一些知识点

一、线性滤波与卷积的基本概念      线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。      对图像和滤

2018-01-10 10:08:52 295

转载 caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记

由于虚拟机下的Ubuntu系统一般不包含GPU,故这次安装时为了在无GUP环境下运行caffe。所以只需安装CPU版本的caffe 由于本机是window10系统,所以想尝试caffe就在自己电脑上整了一个虚拟机(详情可见:win10系统搭建虚拟机:VMware Workstation Player 12环境+Ubuntu Kylin 16.04 LTS系统),然后昨天

2018-01-07 19:52:50 840

转载 Ubuntu16.04+opencv3.3.0的安装配置说明

系统环境: Linux Ubuntu 16.04 [GCC 5.4.0 20160609] on linux2之前的教程中我们已经安装了做机器学习需要使用的框架TensorFlow,笔者本科阶段的专业是信息处理,主攻机器视觉方向。那么谈到机器视觉,最常见的框架就是opencv了。 OpenCV是一个专业的计算机视觉库,其中包括了许多计算机视觉中十分重要的内容。在samples中

2018-01-07 18:27:00 706

原创 在虚拟机里新建一个20G的硬盘,如何把他挂载在 /work 目录上

目的:在虚拟机里新建一个20G的硬盘,然后想把他挂载在 /work 目录上/dev/sda (系统盘)/dev/sdb (数据盘)/dev/sdc (数据盘)/dev/sdd (数据盘)/dev/sde (数据盘)1、查看文件系统是否已挂载:df -lFilesystem     1K-blocks    Used Available Use% Mo

2018-01-01 19:37:50 1952

原创 C语言中 || 和 &&

|| 或操作,|| 为界将表达式分为两部分,他会先算前一部分,如果前一部分为真,他将停止运算,如果为假,他才会算第二部分,你这里第一部分就为真了,第二部分当然也就不会算了。例如:  a || b ,只有在前一个条件a为假,才会去判断条件b ;若条件a为真,则条件b不会执行&&且操作 ,&&为界将表达式分为两部分,他会先算前一部分,如果前一部分为假,他将停止运算,如果为真,他才会算第

2017-12-21 21:36:05 29289 1

原创 ubuntu版本很老,apt-get update更新失败时(W: Failed to fetch ...)------如何创建新的sources.list

在这个网站创建新的sources.listhttp://repogen.simplylinux.ch/1. 选择国家2.选择相邻的ubuntu版本3.选择"Ubuntu Branches"4. 生成sources.list5. 把得到内容替换到/etc/apt/sources.list6. sudo apt-get update

2017-12-09 13:31:19 469

转载 apt-get update 更新失败----如何清除破损而且陈旧的PPA仓库 (W: Failed to fetch http://ppa.launchpad.net/jonathonf/pyt)

问题:我试着通过运行apt-get update命令来再次同步包索引文件,但是却出现了“404 无法找到”的错误,看起来似乎是我不能从先前添加的第三方PPA仓库中获取最新的索引。我怎样才能清除这些破损而且陈旧的PPA仓库呢?Err http://ppa.launchpad.net trusty/main amd64 Packages 404 Not FoundErr http://

2017-12-08 18:39:16 8276

转载 自旋锁和互斥锁的区别

自旋锁和互斥锁的区别POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套API。线程同步是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间的共享临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机制:Mutex(互斥量):pthread_m...

2017-11-25 21:21:50 5385

原创 二级指针如何分配动态内存并赋值

//二级指针如何分配动态内存并赋值#include #include int main(void){ int **p = NULL; //最好是显式初始化这个二级指针 以防不测 int m, n, i, j; printf("请输入数组的行数和列数:\n例如格式:5,6 :代表5行6列\n"); scanf("%d,%d", &m, &n); p

2017-10-21 16:44:34 2079

转载 sscanf() - 从一个字符串中读进与指定格式相符的数据

在做一道九度上机题时,突然发现sscanf()函数非常有用,就顺便从网上搜集资料整理一下。       sscanf() 的作用:从一个字符串中读进与指定格式相符的数据.原型: int sscanf (const char *str,const char * format,........);说明: sscanf()会将参数str的字符串根据参数format字符串来

2017-09-22 20:06:48 498

原创 TIM_GetCounter与TIM_GetCapture1的区别

/** * @brief Gets the TIMx Input Capture 1 value. * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. * @retval Capture Compare 1 Register value. */uint16_t T

2017-07-11 14:33:43 14748

原创 STM32的ADC1采集多条通道,可以不使用DMA功能吗?

类似的问题为什么我采集5条通道的电压,而采集到的值却都是第一条的呢?我什么时候需要使用DMA功能?Ⅰ关于ADC的一些知识STM32的ADC是一种12位逐次逼近型的模拟数字转换器。它有多达18条通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器

2017-07-07 17:20:02 6750 1

转载 STM32 输入捕获的脉冲宽度及频率计算

输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。以下是对脉冲宽度及频率的计算。1、脉冲宽度如下图所示,采集该高电平脉冲的宽度,只需要进入输入捕获上升沿检测,记录当前的发生上升沿时的CNT值,再进行输入捕获下降沿检测,也记录当前发生下降沿时的CNT值,两次CNT值的差值再根据计数的频率就可以算出脉冲的宽度。

2017-06-29 15:01:43 34092 1

原创 if语句的陷阱

#includevoid main(){ char a=0; if(a==0) { a=1; printf("00000000\n"); } else if(a==1) { a=0; printf("11111111\n"); }}输出结果是:0000

2017-06-29 14:06:32 535

转载 单片机串口通信原理和控制程序

我们前边学串口通信的时候,比较注重的是串口底层时序上的操作过程,所以例程都是简单的收发字符或者字符串。在实际应用中,往往串口还要和电脑上的上位机软件进行交互,实现电脑软件发送不同的指令,单片机对应执行不同操作的功能,这就要求我们组织一个比较合理的通信机制和逻辑关系,用来实现我们想要的结果。本节所提供程序的功能是,通过电脑串口调试助手下发三个不同的命令,第一条指令:buzz on 可以让蜂鸣

2017-06-17 16:35:15 4524 6

原创 linux getline()函数

getline()函数是什么?百度百科这样解释:     getline不是C库函数,而是C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。linux标准C中使用条件:#define _GNU_SOURCE#include 函数声明:ssize_t ge

2017-06-16 20:47:14 1323

原创 strcpy()与strncpy()的区别

头文件:#include <string.h>strcpy() 函数用来复制字符串,其原型为:char *strcpy(char *dest, const char *src);【参数】dest 为目标字符串指针,src 为源字符串指针。注意:src 和 dest 所指的内存区域不能重叠,且dest 必须有足够的空间放置 src 所包含的字符串(包含结束符NULL)。【返回值】成功执行...

2017-06-16 17:37:13 5713

转载 从零制作文件系统到JZ2440,使其支持telnet , ftp 和tftp

转自:http://mp.weixin.qq.com/s?__biz=MzAxNTAyOTczMw==&mid=2649328515&idx=1&sn=5849fba4b44ec28a15217edaf629bc34&chksm=83976f09b4e0e61ff356124dd8a4befd126d213f15a769afc067db2aa3391e452fd8a5b65b1f&mpshare=

2017-06-12 13:41:42 677

转载 制作开机LOGO就是这么简单!

转自: http://mp.weixin.qq.com/s?__biz=MzAxNTAyOTczMw==&mid=2649328522&idx=1&sn=64107695fef34ba48f04a78be7a37951&chksm=83976f00b4e0e61629f6f38a4868727bbd1f333a3bb43f0d1303adeb5fa3bb2d6b00f61e35df&mpshare

2017-06-12 13:38:20 2019

原创 getenv、setenv函数(获取和设置系统环境变量) 与 环境变量

1、getenv()函数名: getenv功 能: 从环境中取字符串,获取环境变量的值头文件: stdlib.h用 法:char *getenv(char *envvar);函数说明:getenv()用来取得参数envvar环境变量的内容。参数envvar为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为envvar=value。

2017-05-25 19:57:51 11245

转载 C语言itoa()函数和atoi()函数详解(整数转字符C实现)

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa()

2017-04-13 20:56:15 7528

转载 都是类型惹的祸——小心unsigned

正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigned修饰,如unsigned int等。大家有没想过,就是因为这些不同的类型,而使大家编写的看似非常正确的程序出现了预想不到的错误呢?一、迷惑人的有符号下无符号数的比较操作废话不多说,马上来看一下例子,让你先来体验一下这个

2017-04-11 21:06:53 356

转载 指针数组和数组指针的区别

指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4]     指针数组                      表示:数组a中的元素都为int型指针                    

2017-04-05 20:31:47 411

转载 输入子系统

驱动框架核心层input.c1.输入子系统核心对应与/drivers/input/input.c文件,这个也是作为一个模块注册到内核的。所以首先分析模块初始化函数点击(此处)折叠或打开input_init > err = register_chrdev(INPUT_MAJOR, "input", &input_fops);st

2017-03-30 18:32:06 277

转载 自己写一个简单通用的Makefile

转自:http://blog.csdn.net/u011913612/article/details/52102241一.makefile的作用          Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中记录有文件的信 息,在make时会决定在链接的时候需要重新编

2017-03-19 16:16:17 567

原创 linux获取文件大小的函数fstat()

C语言fstat()函数:由文件描述词取得文件状态头文件:#include   #include 定义函数:int fstat(int fildes, struct stat *buf);函数说明:fstat()用来将参数fildes 所指的文件状态, 复制到参数buf 所指的结构中(struct stat). fstat()与stat()作用完全相同,

2017-03-03 09:11:27 7155

原创 函数指针和指针函数的区别

一、【函数指针】      在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。 1、函数指针定义 顾名思义,函数指针说的就是一个指针,但这个指针指向的函数,不是普通的基本数据类型或者类对象。函数类型(*指针变量名)(形参列表

2017-01-03 16:04:41 329

转载 谈EXPORT_SYMBOL使用

转自:http://blog.csdn.net/macrossdzh/article/details/4601648EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的。2.6就必须用EXPORT_SYMBOL() 来导出来(因为2.6默认不到处所有的符号)。

2016-11-04 07:36:15 411

原创 整数拆分 整合算法

转载请注明出处:// 整数分解然后再整合.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"/** 第一个参数 num :要被分解的整数* 第二个参数 a[] :把整数分解后,存在这个数组里* 函数返回值 : 被拆的整数 的位数*/int  myRevert(int num, int a[])  //把整数

2016-06-25 19:12:15 970

转载 什么是C语言结构体字节对齐,为什么要对齐?

一、概念    对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果取

2016-06-13 18:48:03 2358

原创 c语言数组下标为负数

c语言中数组的下标可以是负号,在代码运行前不会对数组是否下标越界、溢出等异常进行警告或处理,因此需人为干预。测试代码:#include<stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int array[]={1,2,3,4,5,6}; int *p; int offset; if(argc == 2) offset = atoi(argv[1]); else off.

2020-07-30 09:22:18 36

原创 简单的串口接收超时函数

简单的串口接收超时函数类似于select 函数。设置的超时时间,若在规定的时间内接收到数据,则返回0(接收成功);否则返回-1适用场景:给一块设备发送信息,能够立马收到响应信息。/************************************************************************* * @函数名称 SerialKeyPressed * @函数说明 测试超级终端是否有按键按下 * @输入参数 key:按键 * @输出参数...

2020-07-29 17:08:14 43

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