自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 C语言中int到float的强制类型转换

最近在看一本名为的书。由于我所看过的计算机理论方面的书较少,加上自己大学期间一直也不用功,所以对于计算机的工作原理以及程序的工作方式我始终只知甚少,印象也十分模糊。不过,应该说我碰到了一本好书。至少,通过昨晚对浮点数一章的阅读(呃...我的确之前对浮点数从没弄明白过),我终于了解了C语言中为什么32位int型数据强制转换到float型会出现精度不能完全保留的现象:首先来看看我们可爱的int型变量吧,在一台典型的32位机器上一个有符号的int型的取值范围为-2147483648 ~ 2147483647

2024-08-19 15:17:00 733

原创 纹波和噪声测试知识

如图4所示,当采用普通的鳄鱼夹探头时,由于地和待测信号之间的环路太大,而探头探测点靠近高速运行的IC芯片,近场辐射较大,会有很多EMI噪声辐射到探头回路中,使测试的数据不准确。示波器采用全带宽测试。利用同轴线的测量方法,最准确的是采用DC50欧,但是大部分示波器在DC50欧时offset最大电压为1V,无法满足大部分电源的测量要求,而示波器内部端接阻抗为50欧时,不支持AC耦合,因此需要外置一个AC电容,如图6所示,当串联电容值为10uF时,根据表1可以看到,此时可以准确测试到2KHz以上的纹波噪声信号。

2023-08-23 21:25:58 1430

原创 STM32---DMA

2020-12-03 11:11:24 220

原创 C语言二级指针(指向指针的指针)详解

指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的指针变量,它们的关系如下图所示:将这种关系转换为C语言代码:int ...

2019-07-31 16:19:21 1764

原创 Understand简明分析

Understand全称为Scientific Toolworks Understand,,是一款源代码阅读分析软件,使用它可以大大提高代码阅读效率。此软件亦有架构分析,代码评审与度量,生成软件质量统计与报表等功能。 官方网站:https://www.scitools.com/features/metrics.php 一.安装 傻瓜式安装,安装过程...

2019-07-16 10:34:00 3057

原创 C语言中的static 详细分析

原文地址: http://blog.csdn.net/keyeagle/article/details/6708077 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 ...

2019-07-03 15:49:25 371

原创 在bugfree安装检查环境时,一直提示未安装mysql

问题出现在bugfree安装检查环境时,一直提示未安装mysql。  最后发现问题出现在xampp安装的时最新的php7.x。 7.x在原来代码的基础上移除了部分mysql的方法 所以检测一直mysql不存在 所以我们需要去修改bugfree的源代码,方法如下:修改:bugfree\install\func.inc.php 中的checkMysql方法:源代码:functi

2017-09-19 16:20:15 6975 16

原创 bugfree测试软件平台安装与使用

最近公司要我搭建一个bugfree测试软件平台,所以就花半天研究了并成功搭建创建项目和用户,做了一个ppt展示功能,这里感谢在网上提供文档的好人们并记录下我搭建bugfree的过程。第一步:下载XAMPP和bugfreehttp://www.bugfree.org.cn/http://www.apachefriends.org/zh_cn/xampp.html第二步:安

2017-09-19 11:20:11 927

原创 函数需要声明的情况

函数需要声明的情况是:1. 函数是外部定义的, 即调用者看不到函数的实现时.   比如函数A在a.cpp中实现的, 函数B在b.cpp中实现的. 函数B要调用A,则需要先声明, 同样, A调用B也需要先声明.2. 调用处, 函数还未实现.   比如函数A在第1行到15行.  函数B在17行到20行.  这时A调用B就需要先声明.  反过来B调用A的话, 因为A在B的前面已经实现, 所以就可

2017-09-08 10:31:00 4666

原创 SPI通讯协议

一、SPI介绍1.1技术性能:采用主从模式,一般仅支持单Master--多Slave。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前--底位在后(MSB first)。接口有两条单向数据线,为全双工通信。  各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,EEPROM,FlashROM,A/D转换器、D/A转换器、LED/

2017-09-07 16:44:02 800

原创 软件开发模式对比(瀑布、迭代、螺旋、敏捷)

1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对

2017-09-05 17:07:02 447

原创 堆和栈的区别(内存和数据结构)

在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。数据结构的栈和堆 首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据结构:堆和栈。 堆和栈都是一种数据项按序排列的数据结

2017-06-02 17:20:44 625

原创 内存的堆分配和栈分配

C++ 内存模型:   1、栈区:由编译器自动分配和释放,存放函数的参数数值,局部变量的值        其操作方式类似于数据结构中得栈   2、堆区  一般由用户分配和释放,若用户不释放,程序结束时候由OS回收。        它与数据结构中堆是两回事,分配方式类似链表   3、全局区(静态区)static 全局变量和静态变量的存放区域。       初始化的全局变量

2017-06-02 16:45:30 852

原创 C语言字节对齐问题详解(对齐、字节序、网络序等)

首先说明一下,本文是转载自:http://www.cnblogs.com/clover-toeic/p/3853132.html引言     考虑下面的结构体定义:typedef struct{ char c1; short s; char c2; int i;}T_FOO;     假设这个结构体的成员在内

2017-06-01 11:30:26 2169

原创 IAR中如何定向把数组和函数放在指定的地址单元

应用中我们经常会用到一些应用场景,如使用Const 关键字定义一个数组到Flash地址单元,但是具体该数组放在Flash的那个位置,通常是由编译器自己分配的(和LCF连接配置文件设置有关),以及定义函数到RAM区域,增快程序代码的执行速度。所以在这些场合我们会去思考如何指定一段数组或者一个函数到特定的Flash,EEPROM或者RAM区间中,下面简单给出几个实例。1. 指定数组

2017-06-01 10:43:23 8182

原创 32位机器下面各类型的取值范围(sizeof值)

32位机器下面的结果: 数据类型说明字节数取值范围bool布尔型1true,falsechar字符型1-128~127unsigned char无符号字符型10~255short短整型2-32768~32767unsigned short无符号短整型

2017-06-01 09:35:27 6450

原创 局部变量、全局变量、局部静态变量、全局静态变量、系统级全局变量、文件级全局变量

函数体内声明的变量仅在该函数体内有效,别的函数是无法使用的。并且在函数运行结束后,这些变量也将消失了。我们把这些在函数体内声明的变量称为局部变量(Local Variable)。在函数体外声明一个变量,它称为全局变量(global variable)。所谓全局,是指对于所有函数都能够使用。当然,在该变量声明之前出现的函数是不知道该变量的存在的,于是也就无法使用它了。另外,如果我们声明了

2017-05-31 15:46:41 584

原创 JDK安装与环境变量配置

本文介绍JDK的安装与环境变量配置。工具:JDK1.7.0  WIN7步骤:1. 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)如下图所示

2017-04-28 09:10:15 422

原创 IAR .map文件中CODE memory,data memory+115absoult,const memeory

25 928 bytes of CODE  memory  1 004 bytes of DATA  memory (+ 124 absolute )     68 bytes of CONST memoryCODE memoryxxxx 个字节的代码(占FLASH)data memoryxxxx个字节的变量数据(占RAM)+124absoult表示绝对变量占RAM的大小

2017-04-12 09:09:06 4381

原创 【IAR】设置和编译信息解析 程序运行耗时 内存分配MAP

一、设置:1、怎么设置可以查看单片的内存(消耗)使用状况?IAR的菜单栏 -->Tools-->IDE Options -->Messages -->Show build messages选择 ALL设置完后IAR点MAKE,没有error的话最后会在Message框显示代码的大小(菜单栏-->View-->Maessge-->Build)  1. Tools-

2017-04-11 10:59:14 1902 1

原创 assert()宏用法总结

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression );  assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单bad

2017-04-07 13:51:08 1043

原创 C/C++/JAVA/汇编标识符组成

C语言标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。不能把C语言关键字作为用户标识符,例如if ,for, while等.标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实

2017-04-06 17:05:40 903

原创 关键字 extern

Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义。谨记:声明可以多次,定义只能一次。在使用中,要形成一种风格。  函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern的。但是引用的时候一样是需要声明的。而全局变量在外部使用声明时,extern关键词是必须的,如果变量无extern修饰且没有显式的初始化,同样成为变量的定义,因此此时必须加ext

2017-03-23 16:59:57 497

原创 pragma 命令

1、#pragma message(“ ”) 编译器编译到此处,在Build窗口中打印相应文本信息。2、#pragma error “” 编译器编译到此处,在Build窗口中产生错误并打印其文本信息。3、#pragma inline [=forced | never] 用这个指令是建议编译将这条指令后面的函数内联到调用它的函数的函数体中去。 当#pragma i

2017-03-03 16:40:41 719

原创 JTAG、SBW、BSL 三种接口的区别

MSP430无论是仿真还是烧写程序,一般可以通过:JTAG、SBW、BSL接口进行。1、JTAG是利用边界扫描技术,在430内部有逻辑接口给JTAG使用,内部有若干个寄存器连接到了430内部数据地址总线上,所以可以访问到430的所有资源,包括全地址FLASH、RAM及各种寄存器。可以用于对430的仿真和编程,主要连接线有TMS、TCK、TDI、TDO,430还需要另两条线路RST、TEST

2017-01-16 14:44:38 3643

原创 谈软件测试的心得

离开软件有一段时间,离开项目管理也有时间,今日和以往的同事交流,我提出软件测试的重要性,希望他们在这方面工作的能写出一点的心得,他们谦虚的非要我作些点评,我也就欣然同意了,这是一件好事呀!     从我软件工程网开设专栏到今天,已经两年了,这两年我跟随软件工程网一起发展,原先也是保有一份热情做下来,到今天做一个企业的系统规划时,虽然没有什么证书,没有什么荣誉,但自己能力已经得到提高,从一个

2016-12-28 13:37:59 585

原创 bool & BOOL

BOOL其实就是int一、 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0和非0的区别 二: bool是标准C++数据类型,可取值true和false。单独占一个字节, 如果数个b

2016-12-19 11:07:15 731

原创 上电复位POR与上电清除PUC的区别

一:POR是上电复位信号,它只在以下两个事件发生时产生: 1、芯片上电。 2、RST/NMI设置成复位模式,在RST/NMI引脚上出现低电平信号。看来这都是外部产生的。 二:PUC信号是上电清除信号,POR信号的产生总会产生PUC信号,但PUC信号的发生不会产生POR信号。产生它的事件为: 1、发生POR信号。 2、处于看门狗模式下,看门狗定时时间到。 3、看门狗定

2016-11-25 09:49:20 4507

原创 IAR for MSP430时,如何查看编写代码占用字节数、内存占用情况、堆栈溢出

在tool选项中有个options 里面有message选项 选择ALL 编译完成后,IAR会给出有多少代码和ram被占用。如果要看具体语句占用的容量,需要看汇编后的汇编代码,找C预言对应产生的汇编代码那段,会给出每条语句地址,这样就能知道具体占用多大。以msp430f135为例,它是512bytes的ram,起始地址为200h,终止地址为3ffh,所以

2016-10-24 16:09:54 11717 1

原创 对MSP430单片机__delay_cycles精确延时的说明及改正

在这里, 我来讨论一下关于MSP430单片机使用__delay_cycles延时的问题. IAR for MSP430编译器提供了一个编译器内联的精确延时函数(并非真正的函数)以提供用户精确延时使用, 该函数原型是: __intrinsic void __delay_cycles(unsigned long __cycles);该内部函数实现__cycles个CPU周期

2016-09-13 09:13:02 6751 2

原创 SPI读写总结

SPI协议是主从模式:从机不主动发起访问,总是被动执行操作。CSN:片选信号。SCK:时钟信号。MOSI:master output slave input,即主机输出从机输入。可以理解主机写从设备。MISO:master input slave output,即主机输入从机输出。可以理解主机读从设备。SPI全称:Serial Peripheral interface,

2016-09-12 16:38:38 2739

原创 常用宏定义运算

#define DLT(x,y)            (((x)>(y))?((x)-(y)):((y)-(x)))#define MIN(x,y)            (((x)>(y))?(y):(x))#define MAX(x,y)            (((x)>(y))?(x):(y))#define EQU(x,y)            (DLT((x),(y))

2016-09-09 09:46:51 5654

原创 __DATE__,__TIME__,__FILE__,__LINE__调用

#include  #include    int main()  {      printf("%s\n", __DATE__);      printf("%s\n", __TIME__);      printf("Bug is here:%s on line %d\n", __FILE__, __LINE__);        return 0;  

2016-09-08 19:19:35 406

原创 单目、二目、三目运算符

单目,一个运算数 i++, i--, !a, ~a双目,两个运算数 a+b a-b a*b三目,三个运算数 bc=a?b:c; (if(a) bc =b;else bc =c;) int i = 0; i = (i == 0) ? 1 : 0;->在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”。用法: p->a,其中p是指向一个结构体的指针,a是这个结构

2016-08-30 14:42:24 21098

原创 int *p=(int *)a;

int *p=(int *)a; //表示将指针a的类型转换为整型指针再赋给p。

2016-08-30 14:17:20 1441

原创 const int a; int const a; const int *a; int * const a; int const * a const; 之间的区别

const int a; int const a;   这两个写法是等同的,表示a是一个int常量。const int *a;  表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量。也可以写成int const* a; 含义相同。int * const a; 表示a是一个指针常量,初始化的时候必须固定指向一个int变

2016-08-30 14:12:42 572

原创 电池内阻计算

不同种类的电池,其内阻是不同的;就算是同一牌子、同一生产线的电池,由于内部化学特性,同一批电池的内阻也是不能做到完全一致的;另外在使用后,根据各种情况,电池的内阻也会变化的。内阻是衡量电池性能的一个重要技术指标。通常情况下,电池的内阻越小,大电流放电能力强;内阻大的电池放电能力就弱。新电池的内阻低,旧电池的内阻高,从测电池内阻也能判断电池的寿命。 电池的内阻一般用毫欧(mΩ)。一:电池

2016-08-23 15:05:09 14901

原创 static全局变量、局部变量、函数

static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?   1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件

2016-07-27 09:45:05 368

原创 430按位操作

P4OUT &= ~BIT0等效于P4OUT = P4OUT ^ (~BIT0); 按位与同样P4OUT ^= ~BIT0等效于P4OUT = P4OUT ^ (~BIT0); 按位异或P4OUT |= ~BIT0等效于P4OUT = P4OUT | (~BIT0); 按位或比如原来P4输出为0000 1111即P4OUT=0x0F经过P4OUT &= ~BIT0BIT0=0000

2016-06-27 16:34:59 962

原创 VC++6.0下新建工程中中的17个选项

要理解每种工程的作用需要很多基础知识,只能简要的和你讲一下:1.ATL COM AppWizard 用来新建一个COM组件的向导,比如WORD里用的公式编辑器就是一个COM组件。2.Cluster Resource Type Wizard 群集资源类型向导,用来创建可以到处用的资源项目,比如字体就是一种资源。3.Custom AppWizard 这个是给高档用户用的自定义向导。4.

2016-06-27 16:05:42 577

空空如也

空空如也

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

TA关注的人

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