
基础知识复习笔记
文章平均质量分 67
qlexcel
万物皆为比特
展开
-
#ifdef __cplusplus
引自:https://www.cnblogs.com/stonecrazyking/archive/2006/09/23/512552.html 时常在cpp的代码之中看到这样的代码:#ifdef __cplusplus extern "C" { #endif//一段代码#ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:转载 2021-08-01 10:33:51 · 335 阅读 · 0 评论 -
C语言字符串操作函数
要使用C语言中的字符串操作函数需要包含string.h头文件。# strlen`size_t strlen( const char* str)`功能:计算字符串长度,不包含’\0’返回值:返回字符串的字符数说明:+ strlen() 函数计算的是字符串的实际长度,遇到第一个’\0’结束;+ 参数指向的字符串必须以 ’ \0 ‘结束+ 函数返回值一定是size_t ,是无符号的+ 如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到’\0’停止转载 2021-07-31 13:17:29 · 350 阅读 · 0 评论 -
宏定义中的#、##操作符和... 、 _ _VA_ARGS_ _解析
# #符号作为一个预处理运算符,它可以把语言符号转化成字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing)。例子#incldue <stdio.h>#define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(x))int main(void){ int y =4; PSQR(y); PSQR(2+4); return 0;}原创 2021-07-28 11:51:35 · 280 阅读 · 0 评论 -
vsnprintf的作用和使用
vsnprintf用来将可变参数格式化输出到一个字符数组,常和va_start和va_end一起使用。vsnprintf函数介绍函数功能:将可变参数格式化输出到一个字符数组。注意:在linux环境下是:vsnprintf但在VC6环境下是:_vsnprintf头文件:#include <stdarg.h>函数声明:int vsnprintf(char *str, size_t size, const char *format, va_list ap);参数:str原创 2021-07-23 21:48:06 · 3131 阅读 · 0 评论 -
C语言便于调试的宏定义 __FILE__、__FUNCTION__、__LINE__、__VA_ARGS__ 参数使用
__FILE__、__FUNCTION__、__LINE__ 这几个宏定义从名字就可以看出功能:__FILE__:宏在预编译时会替换成当前的源文件名,字符串类型。__FUNCTION__:宏在预编译时会替换成当前的函数名称,字符串类型。__LINE__ :宏在预编译时会替换成当前的行号,整型。__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。 这几个宏定义,好像在VC6中无法使用,但是在Ke原创 2021-07-23 18:02:28 · 1819 阅读 · 3 评论 -
不确定函数参数个数时的处理,va_start和va_end使用详解
引出 在C中,当我们无法确定函数的所有实参的类型和数目时,可以用省略号指定参数表来处理,如:void foo(...);void foo(parm_list,...); 具体怎么使用呢,我们首先需要把函数参数的传递原理说清楚。函数参数的传递原理 函数参数传递的时候是从右至左依次入栈的,然后调用的时候再依次出栈。先入栈的在栈底,后入栈的在栈顶。在内存中,栈底是高地址,栈顶是低地址。 举个例子如下:void func(int x, float y, char z); 调用此原创 2021-07-23 14:59:00 · 871 阅读 · 0 评论 -
运放电路复习,放大器、加法器、积分器、差分放大电路等
转载自《https://mp.weixin.qq.com/s?__biz=MzIzMjQwNjQzNA==&mid=2247531156&idx=5&sn=7ed89974a26cc8d3ce9d3dac3f6fdb16&chksm=e8975659dfe0df4ff12d0318fbaf3a16894c520ef4124c95984255249cff4e8cb6f7476f3c0c&scene=21#wechat_redirect》运放电路分析方法使用虚短虚断来转载 2021-06-17 13:44:32 · 14583 阅读 · 0 评论 -
芯片破解、解密方法介绍
在整个电子行业的应用技术发展史上,可以说贯穿着解密与反解密技术之间的博弈。芯片解密技术又可以美其名曰:反向设计或是逆向工程。 芯片的解密主要分为开盖和不开盖的,对于早期的单片机,加密方法薄弱,利用其加密的漏洞,可以直接利用编程器或者根据漏洞专门制作的解密器读出里面的执行文件。当然对于没有加密的单片机,更是可以利用编程器读出flash中的内容。 开...原创 2018-12-16 17:49:13 · 16801 阅读 · 5 评论 -
三极管当成开关来使用,电路及其参数计算
电路如下: 开关打开对应于三极管工作在饱和区,即Vbe>Von,Vce<Vbe,那么已知负载电阻就可以计算Ic=(VCC-Vce)/R负载。已知三极管电流放大倍数β,根据Ic=Ib*β,算得Ib,已知Vcontrol,R=(Vcontrol-Vbe)/Ib。 开关关闭对应于三极管工作在截止区,即Vbe<Von,虽然硅三极管0.6V就可以打开了,可是在应用中...原创 2019-01-13 14:44:52 · 7738 阅读 · 0 评论 -
宏定义中##和#的作用
1、##是一个连接符号,用于把参数连在一起 例如: > #define FOO(arg) my##arg 则 > FOO(abc) 相当于 myabc 2、#是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串 例如: ...原创 2019-01-13 17:22:48 · 1508 阅读 · 0 评论 -
c语言中结构体的用法
一、定义 由于一个数组中只能存放同一种类型的数据,很不方便,所以C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,也就是结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。二、用法1、先定义结构体类型,再定义结构体变量。struct student{ ...原创 2019-02-08 10:39:09 · 10862 阅读 · 0 评论 -
为Visual C++ 6.0添加批量注释和取消批量注释功能
首先在Visual C++ 6.0的安装目录下“Microsoft Visual Studio\Common\MSDev98\Macros”中新建一个txt文件,复制如下代码到文件中:Sub SetSelNote() 'Sun DESCRIPTION: 过程 SetSelNote 用于使选中的文本成为注释' dim CurWin '当前获得的窗口 set CurWin=ActiveWin...原创 2019-01-30 23:01:56 · 2726 阅读 · 0 评论 -
编程进阶,学会使用_I、_O、_IO,以及volatile const的意义
_I、_O、_IO在ST库里面的定义是:#define __I volatile const /*!< defines 'read only' permissions */#define __O volatile /*!< defines 'write only' permissions */#define __IO volatile /*!< defines 're...原创 2019-04-09 10:48:57 · 771 阅读 · 0 评论 -
Keil主题皮肤设置,自用推荐
效果如下:再加上微软雅黑字体:配置文件下载链接:https://download.youkuaiyun.com/download/qlexcel/11131729用法:包含3个文件:arm.prop、global.prop、global.prop.def,直接复制粘贴到Keil的安装目录\UV4下即可。微软雅黑字体:字体下载链接。字体安装方法:把ttf格式文件拷贝...原创 2019-04-21 12:36:48 · 16932 阅读 · 13 评论 -
C语言__attribute__的使用
一、介绍GNU C的一大特色就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__att...转载 2019-06-17 22:54:03 · 130834 阅读 · 18 评论 -
Union定义变量进行外部调用的方法
一、现象:首先在文件1.c对应的头文件1.h中有union _uintbyte{ UINT16 _uint; UINT8 _uchar[2];} Angle;如果想在文件2.c中调用变量Angle就必须用到变量的外部调用,也就是想到用extern 。然而,在文件2.c对应的头文件2.h中这样写:1、extern _uintbyte Angl...转载 2019-07-01 21:57:34 · 3455 阅读 · 0 评论 -
51单片机中将变量、数组、函数设置在固定位置,定位到绝对地址
一、不带初值的变量或数组直接使用_at_ 关键字加上地址就行。如: unsigned char idata myvar _at_ 0x40; unsigned char code myvar[10] _at_ 0x40;_at_ 关键字的前后都有空格。二、带初值的变量或数组要将某变量定位在一绝对位置且要赋初值,此时用 _at_ 不能完成,要进行如下操作:1、在工程中建...原创 2018-12-16 16:44:18 · 9861 阅读 · 0 评论 -
ANSI编码和标准代码页(code page)
电脑最先是美国人发明出来开始使用的,他们觉得一个字节(可以表示256个编码)表示英语世界里所有的字母、数字和常用特殊符号已经绰绰有余了(其实ASCII只用了前127个编码)于是他们使用ASCII编码,后来传到欧洲地区,法国人在小写字母加上变音符号(如:é),德国人又需要加几个字母(Ä ä、Ö ö、Ü ü、ß)。于是,欧洲人就将ASCII没用完的编码(128-255)为自己特有的符号...原创 2018-12-02 16:01:40 · 5932 阅读 · 0 评论 -
程序编译生成的Hex、Bin、axf和elf格式
一、Bin Bin文件是最纯粹的二进制机器代码,按照程序执行顺序存放。编译器把高级语言翻译成汇编,再把汇编代码翻译成二进制机器代码保存成bin文件,因此Bin是没有经过处理或附加信息程序原本的大小。Bin文件内部没有地址标记,因此下载程序的时候要指定bin的烧写地址,虽然大部分的单片机是从0地址开始执行程序,可也有些单片机不是,比如LPC1857。二、Hex ...原创 2018-11-23 11:25:43 · 7247 阅读 · 0 评论 -
c语言结构体复习笔记
1.定义结构提的语法格式struct 【结构名称】{ 成员变量定义}【变量名列表】;2.结构体数据类型名struct 【结构名称】,【结构名称】如果缺省则无法使用结构类型名来定义变量。3.原创 2016-04-16 15:27:10 · 949 阅读 · 0 评论 -
字符串操作函数
dddd原创 2016-05-28 16:53:41 · 419 阅读 · 0 评论 -
关于main函数的(int argc,char *argv[])
main(int argc,char *argv[ ])argv为指针的指针argc为整数char **argv or: char *argv[] or: char argv[][]main()括号内是固定的写法。下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,当只输入prog,则由操作系统传来的参数为:argc=1,表示只有一程序名称。arg转载 2016-06-02 17:23:42 · 647 阅读 · 0 评论 -
C语言字节对齐详解
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些转载 2016-11-07 09:35:48 · 335 阅读 · 0 评论 -
市电、三相交流电知识
市电由两条线引入户,称为火线(L)和零线(N),两条线间电压波形如下:是幅值为310V,频率为50Hz的正弦波,有效值为220V。三相电,一般采用三相四线制,即三根火线、一根零线。三根火线相对于零线的电压方程式:关系波形:火线与零线之间的波形与市电一样。火线与火线之间的波形如下:幅值537V,频率50Hz,有效值380V。原创 2017-09-15 15:15:59 · 11447 阅读 · 0 评论 -
差模干扰与共模干扰
①差模干扰差模干扰消除: 当干扰信号频率越高时候ZC越小,效果越明显,而低频时电路不受任何影响 (电容C的容量范围大致是0.01~0.47μF)②共模干扰共模干扰消除:共模扼流圈工作原理如下:共模电容的工作原理和差模电容的工作原理是一致的,都是利用电容的高频低阻抗,使高频干扰信号转载 2017-09-26 22:06:43 · 3567 阅读 · 4 评论 -
三极管形象经典的理解
以最常用的共发射极电路(如图)为例,当输出电压Vout=Vc时,三极管处于截止状态,当输出电压Vout=0.3~0.5V(硅管)时,三极管处于饱和状态,当输出电压Vout处于上述两种情况之间时,三极管处于放大状态。BJT的开关工作原理:形象记忆法 : 对三极管放大作用的理解,切记一点:能量不会无缘无故的产生,所以,三极管一定不会产生能量。它只是把电源转载 2017-09-12 11:58:34 · 3113 阅读 · 0 评论 -
去掉Word中的所有汉字或英文
快捷键“CTRL+H”去掉汉字查找内容填:[一-龥]替换为:空格勾上使用通配符全部替换即可。去掉英文查找内容填:^$替换为:空格不勾使用通配符全部替换即可。...原创 2018-05-03 16:52:28 · 7969 阅读 · 1 评论 -
Keil 字节对齐
一.什么是字节对齐,为什么要对齐 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类...转载 2018-05-13 23:21:03 · 17989 阅读 · 4 评论 -
线性调整率(line regulation )和负载调整率(load regulation)
转载自:https://www.baidu.com/link?url=7ahSb9Wfek4M2oxUdvvTIjnIVTjG4lV9TuGWzT_4Avq4btZ37JOjLJvOW3r7q9afh0ERCQAcKoHtiXdY9VAjCOmpNXSZX0JR7-YEcwF4sCS&wd=&eqid=8291069600004956000000065b027fe2线性调整率 Li...转载 2018-05-21 16:22:43 · 11327 阅读 · 0 评论 -
ARM中char、short、int、long、float、double数据类型占多少位
arm是32位单片机:char:1字节short:2字节int:4字节long:4字节float:4字节double:8字节如果遇到其他单片机,可以用sizeof测量:printf("char: %d\n", sizeof(char));printf("short: %d\n", sizeof(short));printf("int: %d\n", size...原创 2018-11-13 16:43:43 · 18162 阅读 · 0 评论 -
arm单片机中函数参数的传递
1、当函数的参数小于4个的时候直接通过寄存器R0-R3来传递,超过4个参数部分通过堆栈来传递。2、传递结构体,当结构体元素小于4个,也是通过R0、R1、R2、R3来传递,多了,也得通过堆栈来传递。 ...原创 2018-11-13 16:54:57 · 772 阅读 · 0 评论 -
ASCII、GB2312、GBK、Unicode、UTF-8介绍和转换
1、ASCII码 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。ASCII 码一共规定了128个字符的编码,比如空格SPACE是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的一位统...原创 2018-11-20 15:19:03 · 2005 阅读 · 0 评论 -
FAT16文件系统结构扇区数据分析
FAT,英文为File Allocation Table,文档分配表。先要记住几个概念: 扇区:一般扇区为512个字节。 簇:由若干个扇区组成,是存取数据的最小单位。如果簇大小为16K,文件大小为1字节,那也要用一个簇来存,而且该簇不用再拿来他用。 FAT文件系统就是专门管理这些簇的。一个文件可能占据一个或者多个簇,按正确的顺序去读取这些簇,就可以获取这个文件的内容...原创 2018-11-20 19:37:30 · 6538 阅读 · 0 评论 -
FAT32文件系统结构分析
FAT,英文为File Allocation Table,文档分配表。先要记住几个概念: 扇区:一般扇区为512个字节。 簇:由若干个扇区组成,是存取数据的最小单位。如果簇大小为16K,文件大小为1字节,那也要用一个簇来存,而且该簇不用再拿来他用。 FAT文件系统就是专门管理这些簇的。一个文件可能占据一个或者多个簇,按正确的顺序去读...原创 2018-11-21 14:09:53 · 6584 阅读 · 1 评论 -
RS485通信简单介绍
一、特性1、逻辑"1"以两线间的电压差为+(2-6)V表示;逻辑"0"以两线间的电压差为-(2-6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。2、RS-485的数据最高传输速率为10Mbps3、RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。4、RS-485接口的最大传...原创 2018-11-21 14:50:10 · 3946 阅读 · 0 评论 -
C语言枚举型复习笔记
,,原创 2016-04-16 15:23:37 · 828 阅读 · 0 评论