自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 记一个知识点-fgets();

2015-10-16 22:37:41 488

原创 信号的有关资料

信号集:每个进程都有一个信号屏蔽字,它规定了当前要阻塞递送到该进程的信号集。对于某种信号,若对其设置为屏蔽,则它当前是阻塞的。进程可以通过调用sigprocmask(10.12)来检测和更改当前信号的屏蔽字。

2015-10-10 21:52:21 428

转载 readn writen readline函数源代码

当从网络读写时,网络中的缓冲机构可能造成返回值小于所要求读写的字数[1]。因而需要加入相应的处理机制。/* include readn */#include #include ssize_t /* Read "n" bytes from a descriptor. */readn(int fd, void *vptr, size_t n){ size_t nl

2015-10-09 20:57:56 828

转载 名词解释:errno错误

来自百度百科errno 编辑errno 是记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义中文名errno查    看错误代码errno调试程序重要方法代    码是一个int型的值通    过查看该值推测出错的原因目录1 NAME2 err

2015-10-09 20:06:47 830

转载 c/c++内存布局

一个由C/C++编译的程序占用的内存分为以下几个部分  1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。        堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长(程序员释放)。  2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数

2015-09-15 19:14:13 563

转载 LINUX信号- sigaction 函数-10.14

使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受到了一定的限制。而 POSIX 标准定义的信号处理接口是 sigaction 函数,其接口头文件及原型如下: #include  int sigaction(int signum, const struct sigaction *ac

2015-09-12 09:22:14 371

转载 为什么初始化的全局变量和未初始化的全局变量要保存在不同的段??

C规定,未初始化变量的初值为0,这个清0的操作是由启动代码完成的,还有已初始化变量的初值的设置,也是由启动代码完成的。为了启动代码的简单化,编译链接器会把已初始化的变量放在同一个段:.data,这个段的映像(包含了各个变量的初值)保存在“只读数据段”,这样启动代码就可以简单地复制这个映像到 .data 段,所有的已初始化变量就都初始化了。而未初始化变量也放在同一个段:.bss,启动代码简单

2015-09-09 19:15:00 4838

转载 main函数的参数

main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:    main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:

2015-08-18 21:03:25 516

原创 如何处理.H头文件中的变量

当程序达到一定规模后,适当的把代码进行规划就显得的十分必要。在c语言中.c和.h十分常见,在始学c语言之初我们做的第一件事就是 include。这个.h到底是什么东西呢?编译器在预处理的时候会将包含的.h文件内容加载到.c中,若是处理的不好,将变量定义,或者是数组定义,函数定义等等定义包含在.h中,其他文件再包含头文件则有可能产生重复定义的报错。比较合理的做法是,把需要使用的函数,可能被外

2015-06-30 18:57:54 521

原创 STM32时钟安全机制(CSS)研究及实现

时钟对于MCU而言就像脉搏一样,在恶劣情况下如果出现外部晶振短路的情况会导致MCU无法正常运行。如果MCU应用于安全生产时,有可能造成安全事故。为了应对这一突发状况,ST公司生产的STM32采用双时钟机制,在外部晶振被短路的情况下,转而使用内部RC振荡器作为自己时钟心跳保证系统正常运行。然而RC振荡器并不是非常的准确,我们希望能够在外部晶振恢复正常的情况下继续使用外部晶振。

2015-06-06 15:42:13 10790

原创 STM32时钟初始化研究

时钟是一个MCU的脉搏,研究清楚脉搏才能更清楚的把握整个MCU的运行。本文主要研究STM32F10x系列,利用官方库文件进行初始化设置。开发环境为MDK4.6,库文件V3.5版本,STM32参考手册。利用MDK自带仿真器,仿真发现。芯片启动首先打开system_stmf10x.c文件,调用void SystemInit(void)函数。下面贴上代码和中文注释void SystemIni

2015-06-03 22:29:03 2029

原创 C程序设计语言(第2版)读书笔记

2015-01-02 21:06:23 845

原创 时​钟​周​期​及​秒​(​s​)​ ​毫​秒​(​m​s​)​ ​微​秒​(​μ​s​)​ ​纳​秒​(​n​s​)​ ​皮​秒​(​p​s​)​之​间​转​换

时钟周期及秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)之间转换1秒=1,000,000 微秒(μs)1微秒=1/1,000,000秒(s)1秒=1,000,000,000 纳秒(ns)1纳秒=1/1,000,000,000秒(s)1秒=1,000,000,000,000 皮秒(ps)1皮秒=1/1,000,000,000,000秒(s)

2014-05-27 23:14:32 1784

转载 Altera的FPGA的AS、PS和Jtag配置模式的区别

有些人对于FPGA下JTAG的下载方式有些迷惑,为什么出现配置芯片了,为什么要用不同的下载电缆,不同的下载模式?通过在网上查阅相关资料做了总结和整理如下: 1 FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式。AS模式(active serial configuration mode):FPGA器件每次上电时作为控制器,由FPGA器件

2014-05-22 23:48:30 10572

转载 [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割

灰度变换,属于一个非常重要的概念。这里主要参考《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods 的第三章。书中所有的实验与数学式都采用了8-bit 图像的灰度范围,也就是0到255这样一个范围,这是本书不合理的一个地方。首先,这样做并不泛用,图片不一定是8-bit的。其次,在做某些变换的时候,可能会导致溢出。比如,伽马

2014-01-08 22:00:49 2607

转载 栈,堆,代码区,全局(静态)区 ,常量区

http://www.cnblogs.com/zcy_soft/archive/2010/10/14/1851074.html 一般认为在c中分为这几个存储区     1栈   -   有编译器自动分配释放     2堆   -   一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收     3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的

2013-12-09 18:16:28 803

原创 关于const(早就应该写的)

#include int main(){    int a =100;    int b = 10;      int const * p = &a;    p = &b;    printf("%d",*p);} 编译是报错的。error: assignment of read-only variable 'p'65212116cons

2013-11-25 17:36:57 569

原创 pcb焊盘尺寸设计尺寸参考

导通孔焊盘的制作尺寸 元器件引脚的直径PCB焊盘孔径DD+12mil40milD+16milD>80milD+20mil在焊盘黏锡部分的宽度要保证不小于10mil一般是根据自己的焊接水平;焊盘命名为p

2013-11-23 15:14:46 14494

原创 uip代码之#define BUF ((struct uip_eth_hdr *)&uip_buf[0])

在看uip代码的时候有段代码觉得挺精彩的。#define BUF ((struct uip_eth_hdr *)&uip_buf[0])struct uip_eth_hdr {  struct uip_eth_addr dest;  struct uip_eth_addr src;  u16_t type;};//处理IP数据包(只有校验通过

2013-11-22 12:10:51 1685 1

原创 Wireshark基本介绍和学习TCP三次握手(转)

http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html#osi    虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实(没有示波器的时候我也是这么感觉的)。有了wireshark就能截获这些网络数据包,可以清晰的看到数据包中的每一个字段。更能加深我们对网络协议的

2013-11-21 18:21:38 1006

转载 allegro中Autosilk top, Silkscreen top 和Assembly top三个什么区别

Autosilk top, Silkscreen top 和Assembly topAutosilk top:最后出gerber的时候,自动生成的丝印层。会自动调整丝印位置,以及碰到阻焊开窗的地方,丝印会自动消失,避免露锡的地方涂上丝印(一般画丝印层的时候,焊盘上不会画上丝印,所以过孔焊盘上有丝印,也不会有什么影响。),所以我个人一般很少用到Autosilk top层,毕竟最后出丝印的时候

2013-11-17 23:12:38 1498

原创 自己配置了一天的opencv 从自带的库到编译成功的库写

初次使用opencv,配置了一天。遇到了各种各样的问题,各种google 百度,终于解决了。使用版本是2.43,软件是vs2010。1、下载软件下载OpenCV2.4.3:http://opencv.org/downloads.html,解压到D:\ProgramFiles (x86)\2、配置OpenCV环境变量  计算机->(右键)属性->高

2013-11-17 18:46:24 1513

转载 以太网(802.3)帧结构 (转)

FR(前导码):包括了7 个字节的二进制“1”、“0”间隔的代码,即1010…10共56 位。当帧在链路上传输时,接收方就能建立起同步,因为这种“1”、“0”间隔的传输波形为一个周期性方波。同时也指明了传输的速率(10M 和100M 的方波频率不一样,所以100M 网卡可以兼容10M 网卡)。SD(帧数据定界符):它是长度为1 个字节的10101011 二进制序列,

2013-11-17 18:44:54 5039

转载 ARP协议(转)

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的

2013-11-17 18:43:41 844

转载 ip协议(转)

IP协议即IP。IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。IP地址具有唯一性。------

2013-11-17 18:42:27 635

转载 ICMP(转)

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP协议是一种面向连接的协议,用于传输出错报告控制信息。它

2013-11-17 18:41:10 786

转载 TCP(转)

TCP(转) TCP一般指TCP(传输控制协议),更多含义请参阅 TCP(多义词) 。:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输

2013-11-17 18:40:22 627

转载 TCP/IP网络协议(转)

TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传

2013-11-17 18:39:12 876

原创 tcp/ip的一些协议名词 (收集)

下面内容收集自网络,方便理解uip 本地ip:顾名思义就是你设备的ip地址网关ip地址:       介绍这个名词有必要先介绍网关等其他名词。网关:网关(Gateway)就是一个网络连接到另一个网络的“关口”按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。 

2013-11-17 18:38:16 1539

原创 由数据比较引发的数据类型转换研究

当unsigned int 和int进行比较的时候会有怎样的情况?前段时间写代码的时候遇到一个问题 会有当unsigned int 和int进行比较到底是怎么比较的呢? 所以在unsignedint 与int进行比较的时候 int转换成unsigned int。 上面代码中我令unsignedint = -1,这本来是

2013-11-14 20:43:43 445

原创 STM32串口使用Printf()函数问题

标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数. 例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下: 只要自己添加一个int fputc(int ch, FILE *f)函数,能够输出字符就可以了#if 1#pragma import(__use_no_semihostin

2013-09-14 00:13:53 1829

转载 真正的单片机入门,是从学会处理多任务开始的(按键算法)

原文:http://blog.ednchina.com/zp2009/983530/message.aspx不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。 同时,这里面用到了一些分层的思想,

2013-08-19 18:34:10 3333 1

原创 umask函数笔记

linux下每个文件对于不同的用户都有不同的访问权限。当我们使用creat函数时候,可以设置文件的权限。但是是不是creat想设置什么权限就设置什么权限呢?当我们在终端输入umask -S的时候表面我们所在的用户可以设置的权限。同样在我们使用进程创建文件的时候,并不是可以使用creat函数为文件添加任何权限。Creat函数的权限是进程权限

2013-08-12 23:53:45 684

原创 char* hh[] char (*hh) []

今天在看apue的时候突然对一段代码有了兴趣,我把他贴出来。#include #include int main(int argc,char *argv[]){    if(open(argv[1],O_RDONLY)    {        printf("open error for %s,argv[1]");    }    return 0;

2013-08-09 23:55:30 659

转载 The file access tests that the kernel performs each time

The file access tests that the kernel performs each time a process opens, creates, or deletes a file depend on the owners of the file (st_uidand st_gid), the effective IDs of the process (effective

2013-08-09 15:32:01 508

原创 STM32时钟树笔记

-STM32时钟设计的比较复杂,各个时钟基本都是可控的,任何外设都有对应的时钟控制开关,这样的设计,对降低功耗是非常有用的,不用的外设不开启时钟,就可以大大降低其功耗。下面插入时钟树图。Stm32与51单片机在时钟上有很大不同。51单片机只有唯一的时钟源,而且是12分频,这些在设计之初就是规定好的。Stm32就有很大的灵活性,stm32的时钟来源有好几个我在下面的图中把

2013-08-04 00:43:42 1160

转载 有关推挽输出、开漏输出、复用开漏输出、复用推挽输出 以及上拉输入、下拉输入、浮空输入、模拟输入的区别

http://blog.sina.com.cn/s/blog_6ebd49350100pzju.html  这个文章我还是看的一知半解,先存下来。最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉

2013-08-04 00:06:08 1033

原创 jlink突然不能用了

好久不用的jlink今天用的时候突然不能用了提示: 提示内容是jlink连接不上cpu。排查mdk配置以后发现都没问题,又用串口下载了一次,发现程序能运行。再用jlink下载的时候发现又不能用了。查看设备连接发现电脑能够连接上jlink,我自己也没有设置过jtag的复用。最后朋友提醒我,排线是不是有问题,前面说过很久没有用了,就排查了下线路,发现果然是排线坏了。

2013-08-01 18:01:14 2858

原创 linux文件共享

在apue第三章中的文件共享Unix系统支持在不同的进程间共享打开的文件,内核使用三种数据结构表示打开的文件。1:每个进程在进程表中都有 一个记录项,记录项中包括一张进程打开文件的描述符表。每个文件描述符对应一个打开的文件。与每个文件描述符相关联的是a:文件描述符标志b:指向一个文件表项的指针2:内核为所有的打开文件维持一张文件表,每个文件表项包括:

2013-07-12 00:26:28 885

原创 正确使用c语言中的头文件

我们在使用c编程的时候经常会遇到头文件,前段时间我自己做了个小项目的时候,也遇到了关于头文件的问题。预处理器发现#include 指令后,就会寻找后跟的文件名并把这个文件包含的内容包含到当前文件中。被包含文件的文本将替换源文件中的#include 指令,就像您把被包含文件中的全部内容键入到源文件的特定位置一样(摘抄自 cprimer plus)。简单来说就是,编译器把 #include 后跟随

2013-07-05 19:16:16 2134

STM32时钟安全实现代码-CSS_Safe

时钟对于MCU而言就像脉搏一样,在恶劣情况下如果出现外部晶振短路的情况会导致MCU无法正常运行。如果MCU应用于安全生产时,有可能造成安全事故。为了应对这一突发状况,ST公司生产的STM32采用双时钟机制,在外部晶振被短路的情况下,转而使用内部RC振荡器作为自己时钟心跳保证系统正常运行。然而RC振荡器并不是非常的准确,我们希望能够在外部晶振恢复正常的情况下继续使用外部晶振。本文主要研究内容是在外部晶振被短路的情况下,转而使用内部HSI。当外部晶振恢复正常后,重新使用外部晶振。

2015-06-06

空空如也

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

TA关注的人

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