<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[flying_man_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/flying_man_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; flying_man_]]></copyright><item><title><![CDATA[再画封装时，焊盘间距离、引脚余量的选择（经验）]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/89328255</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/89328255</guid><author>flying_man_</author><pubDate>Sat, 29 Aug 2020 23:08:46 +0800</pubDate><description><![CDATA[直接进入主题

焊盘间距（不是焊盘中心的距离）：一般留5-10mil(1mil = 0.0254mm),差不多0.127mm~0.254mm

焊盘间距涉及到打样厂商的工艺问题，有的厂家的工艺达不到，建议根据厂商来选择间距。当然间距越小价格自然也是越贵，这个毋庸置疑。

引脚余量的选择：很多初学者再画封装的时候，都对引脚余量选多少这个问题很是烦恼，那么下面简单解释一下本人的经验

一般引脚宽度余量...]]></description><category></category></item><item><title><![CDATA[二极管的结构以及伏安特性]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/99229599</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/99229599</guid><author>flying_man_</author><pubDate>Sun, 11 Aug 2019 20:49:51 +0800</pubDate><description><![CDATA[点触式型：结面积小，结电容小，故结允许的电流小，最高工作频率高。

面接触型：结面积大，结电容大，故结允许的电流大，最高工作频率低。

平面型：结面积可小可大，小的工作频率高，大的结允许的电流大。

二极管损坏的两种方式：

1、反向击穿

2、正向电流过大温度过高。PN结损坏

材料
			开启电压
			导通电压
			反向饱和电流
		硅（si)
			约等于0.5V
			0.5~0...]]></description><category></category></item><item><title><![CDATA[导体、绝缘体、半导体、PN结]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/99119721</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/99119721</guid><author>flying_man_</author><pubDate>Sun, 11 Aug 2019 00:58:03 +0800</pubDate><description><![CDATA[导体：铁、铝、铜等低价元素

绝缘体：惰性气体，最外层电子受原子核的束缚很强

半导体：硅、锗，均为四价元素，他们原子最外层电子受原子核的束缚力介于导体和绝缘体之

本征半导体：纯净的晶体结构的半导体。

PN结:PN结的形成并不是将P型半导体和N型半导体拼接起来，而是在同一块硅材料上一边加工成p型半导体，一边加工成N型半导体。

为什么将自然界导电性能中等的半导体材料制成本征半导体，导电性能差，...]]></description><category></category></item><item><title><![CDATA[在AD17中如何自定义板子大小]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/89526503</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/89526503</guid><author>flying_man_</author><pubDate>Thu, 25 Apr 2019 21:21:25 +0800</pubDate><description><![CDATA[试用软件版本：Altium Designer 17

步骤：

1.将模式切换至规划模式

　　快捷键 1　

　　在菜单栏View&gt;&gt;Board Planning Mode 1



这时，我们会发现整个黑框框变成了绿框框了。

2.对板子尺寸进行重新定义

　　快捷键：D+R

　　在菜单栏&gt;&gt;Design&gt;&gt;Redefine Board Shape

　...]]></description><category></category></item><item><title><![CDATA[AD中如何使用阵列粘贴]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/89309129</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/89309129</guid><author>flying_man_</author><pubDate>Mon, 15 Apr 2019 11:49:10 +0800</pubDate><description><![CDATA[转载链接https://blog.youkuaiyun.com/a371132/article/details/80606631

这个问题经常会用到，所以有必要总结一下，下面以制作29个焊盘为例，其实你可以随便设置的。

划重点：先按E然后按A快捷键，设置数量和间距大小。

先说一种通用的吧，用特殊粘贴来处理。



具体的方法为：

1、先放一个焊盘，ctrl+X后选中焊盘

2、依次按下键盘上的E，A，...]]></description><category></category></item><item><title><![CDATA[如何将一个字符串转换为进制可选的整数（strtol）&（结合Linux系统函数chmod写）]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88878183</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88878183</guid><author>flying_man_</author><pubDate>Fri, 29 Mar 2019 08:48:25 +0800</pubDate><description><![CDATA[C 库函数

long int strtol(const char *str, char **endptr, int base)把参数str所指向的字符串根据给定的base转换为一个长整数（类型为 long int 型），base 必须介于 2 和 36（包含）之间，或者是特殊值 0。

函数原型

下面是 strtol() 函数的原型：


long int strtol(const...]]></description><category></category></item><item><title><![CDATA[数组的内涵（与指针比较）]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88603194</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88603194</guid><author>flying_man_</author><pubDate>Sat, 16 Mar 2019 18:50:50 +0800</pubDate><description><![CDATA[以下内容 以64位系统为例

数组的内涵： 

   (1)数组名的内涵在于其指代实体是一种数据结构，这种数据结构就是数组；
　　(2)数组名的外延在于其可以转换为指向其指代实体的指针，而且是一个指针常量；
　　(3)指向数组的指针则是另外一种变量类型（在WIN32平台下，长度为4），仅仅意味着数组的存放地址！

数组和指针的区别：

   (1)数组名作为函数形参时，...]]></description><category></category></item><item><title><![CDATA[gdb调试]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88597815</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88597815</guid><author>flying_man_</author><pubDate>Sat, 16 Mar 2019 14:52:22 +0800</pubDate><description><![CDATA[1、gdb调试

   1）启动gdb

       start -- 只执行了一步

       n -- next

       s -- step(单步) -- 可以进入到函数体内部

       c -- continue -- 直接停在断点的位置

2、查看代码

   l -- list （每次默认打印10行）...]]></description><category></category></item><item><title><![CDATA[makefile详解]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88580375</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88580375</guid><author>flying_man_</author><pubDate>Fri, 15 Mar 2019 18:30:24 +0800</pubDate><description><![CDATA[1、makefile的编写

    1）makefile的命名

    2）规则中的三要素：目标，依赖，命令



  固定格式：

    目标：依赖条件

    Tab键 命令（gcc）

eg: 


 app:main.c add.c sub.c mul.c

     gcc main.c add.c sub.c mul.c...]]></description><category></category></item><item><title><![CDATA[动态库（共享库）的制作及优缺点]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88541426</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88541426</guid><author>flying_man_</author><pubDate>Wed, 13 Mar 2019 21:55:52 +0800</pubDate><description><![CDATA[1）命名规则

   lib 名字 +.so

2)制作步骤

1、生成与位置无关的代码（生成与位置无关的.o）

 gcc -fPIC -c *.c -o  *.o  -I ../include

-I 指定头文件路径

2、把.o打包共享库（动态库）

gcc -shared -o libMycalc.so  *.o -I include

3)使...]]></description><category></category></item><item><title><![CDATA[静态库的制作及优缺点]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88528719</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88528719</guid><author>flying_man_</author><pubDate>Wed, 13 Mar 2019 11:24:50 +0800</pubDate><description><![CDATA[1、静态库的制作


1）生成.o文件  
    gcc -c hello.c
2)将生成的.o文件打包 ar rcs  静态库名字  生成静态库所有.o
    arc rcs libmylib.a  *.o
3)发布静态库和头文件

2、静态库的使用方法


1)第一种方法 语法 gcc 主函数 库文件的相对路径 -o 可执行文件 -I 头文件路径
    gcc main.c lib/li...]]></description><category></category></item><item><title><![CDATA[gcc编译中注意的问题]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88417684</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88417684</guid><author>flying_man_</author><pubDate>Tue, 12 Mar 2019 11:58:14 +0800</pubDate><description><![CDATA[例如在源文件中如何我们的头文件写成#include "head.c",表示在当前路径查找头文件，如果头文件的路径不在当前路径，我们可以通过一下方式指定头文件的路径。

gcc hello.c -I ./头文件路径 -o 可执行文件

在我们的程序中往往都会有许多调试程序，这些调试程序在完成代码后都是要去掉的，所以为了优化代码和调试代码的方便，在程序中我们是通过#ifdef .... #end...]]></description><category></category></item><item><title><![CDATA[gcc编译过程]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88417292</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88417292</guid><author>flying_man_</author><pubDate>Tue, 12 Mar 2019 11:27:48 +0800</pubDate><description><![CDATA[首先第一步预处理：cpp

作用：头文件展开，宏替换，注释去掉。具体代码操作如下：

gcc -E hello.c -o hello.i

第二步：通过编译器C文件变成汇编文件（将预处理完的.i文件进行一系列的词法分析、语法分析、语义分析及优
  化后生成响应的汇编代码文件，这是整个程序构建的最核心的部分，也是最复杂的部分）

gcc -S hello.i -o hello.s

第三...]]></description><category></category></item><item><title><![CDATA[C语言宏定义和宏定义函数]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88380791</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88380791</guid><author>flying_man_</author><pubDate>Sun, 10 Mar 2019 17:13:18 +0800</pubDate><description><![CDATA[转自：https://www.cnblogs.com/bytebee/p/8205707.html

C语言宏定义和宏定义函数

   宏定义可以帮助我们防止出错，提高代码的可移植性和可读性等。
　　在软件开发过程中，经常有一些常用或者通用的功能或者代码段，这些功能既可以写成函数，也可以封装成为宏定义。那么究竟是用函数好，还是宏定义好？这就要求我们对二者进行合理的取舍。
　　我们来看一个例...]]></description><category></category></item><item><title><![CDATA[数据结构中（单链表）]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88364378</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88364378</guid><author>flying_man_</author><pubDate>Sat, 09 Mar 2019 12:25:35 +0800</pubDate><description><![CDATA[list.h


lish.h
#ifndef _list_h
#define _list_h
typedef int ElementType;
struct Node
{
    ElemnetType Element;
    struct Node *Next;
};
typedef struct Node* PtrToNode;
typedef PtrToNode list;
typede...]]></description><category></category></item><item><title><![CDATA[usart中RS485和RS232之间的联系和区别]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88228091</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88228091</guid><author>flying_man_</author><pubDate>Wed, 06 Mar 2019 12:03:11 +0800</pubDate><description><![CDATA[RS232和RS485，是两种不同的电气协议，也就是说，是对电气特性以及物理特性的规定，作用于数据的传输通路上，它并不内含对数据的处理方式。

RS232

RS232使用3－15v有效电平

UART

  因为对电气特性并没有规定，所以直接使用CPU使用的电平，就是所谓的TTL电平（可能在0~3.3V之间）。更具体的，电气的特性也决定了线路的连接方式，比如RS232，规定用电平表示数据，...]]></description><category></category></item><item><title><![CDATA[（转）单片机程序执行过程]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88200476</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88200476</guid><author>flying_man_</author><pubDate>Tue, 05 Mar 2019 20:03:25 +0800</pubDate><description><![CDATA[单片机执行程序的过程，实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
取指令的任务是：根据程序计数器PC中的值从程序存储器读出现行指令，送到指令寄存器。
分析指令阶段的任务是：将指令寄存器中的指令操作码取出后进行译码，分析其指令性质。如指令要求操作数，则寻找操作数地址。
计算机执行程序的过程实际...]]></description><category></category></item><item><title><![CDATA[带参宏定义和带参函数的区别]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88140869</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88140869</guid><author>flying_man_</author><pubDate>Mon, 04 Mar 2019 21:42:56 +0800</pubDate><description><![CDATA[在带参宏定义中，不会为形式参数分配内存，因此不必指明数据类型。而在宏调用中，实参包含了具体的数据，要用它们去代换形参，因此必须指明数据类型。
这一点和函数是不同的：在函数中，形参和实参是两个不同的变量，都有自己的作用域，调用时要把实参的值传递给形参；而在带参数的宏中，只是符号的替换，不存在值传递的问题。
...]]></description><category></category></item><item><title><![CDATA[如何使用assert_param]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88139587</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88139587</guid><author>flying_man_</author><pubDate>Mon, 04 Mar 2019 21:19:28 +0800</pubDate><description><![CDATA[转——如何使用assert_param
在STM32的固件库和提供的例程中，到处都可以见到assert_param()的使用。如果打开任何一个例程中的

stm32f10x_conf.h文件，就可以看到实际上assert_param是一个宏定义；
在固件库中，它的作用就是检测传递给函数的参数是否是有效的参数。
所谓有效的参数是指满足规定范围的参数，比如某个参数的取值范围只能是小于3的正整数，如果给...]]></description><category></category></item><item><title><![CDATA[波特率、发送／接收时钟、波特率因子、传输距离]]></title><link>https://blog.youkuaiyun.com/flying_man_/article/details/88091339</link><guid>https://blog.youkuaiyun.com/flying_man_/article/details/88091339</guid><author>flying_man_</author><pubDate>Sun, 03 Mar 2019 18:00:43 +0800</pubDate><description><![CDATA[源：http://mayer.spaces.eepw.com.cn/articles/article/item/59707

一．波特率
　　并行通信中，传输速率是以每秒传送多少字节（B / S）来表示。而串行通信中，传输速率在基波传输的情况下（不加调制，以其固有的频率传送）是用每秒钟传送的位数（bit／s）即波特率来表示，1波特=1位／秒。
　　最常用的标准波特率是110、300、1000、...]]></description><category></category></item></channel></rss>