自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DS1302写单个字节程序必须和规格书时序一直。CE单字节写完,CE不能拉低,否则写不进去。必须是命令和数据写完再拉低还必须拉低,否则也写不进去

void SPI_Write_Byte(uchar tdata) { uint i; DS1302_CS = 1; delayNus(4); for(i = 0;i < 8;i++) { DS1302_CLK = 0; delayNus(3); if((tdata&0x01)...

2020-01-17 15:14:34 432

转载 RS485硬件标准1-电平定义

RS485硬件标准1-电平定义原创猪哥-嵌入式 最后发布于2017-12-22 17:30:17 阅读数 21877 收藏展开RS485标准是为了弥补RS232通信距离短、速率低等缺点而产生的而产生的,该接口标准只规定了电气特性,并没有规定接插件,传输电缆和 应用层通信协议。RS485标准与RS232不一样,数据信号采用差分传输方式。所谓差分传输,就是发送端...

2020-01-16 10:01:28 4900

原创 KEIL3中批量注释和解除注释

有批量注释的,先选中你要注释的代码,然后Edit---Advanced---Comment Selection;批量取消注释就是选中要取消注释的,然后Edit---Advanced---Uncomment Selection

2020-01-16 09:06:46 2910

原创 任何十进制整数都可以精准转换为一个二进制整数,但任何一个十进制小数却不一定能精准转换为一个二进制小数,0.7也是一例,原因是只有5*2结果才会出0,其他数乘以2不出0

小数是0.5+0.25+0.125+0.0625+...+2(-n)次方相加0.7*2=1.4;0,4*2=0.8;0.8*2=0.6;0.6*2=1.2;0.2*2=0.4从4开始循环原因是只有5*2结果才会出0,其他数乘以2不出0

2020-01-15 14:56:46 3386

原创 二进制转换公式

整数转换等式两边同时除以2,得到的a0就是最低位的数据,以此论推,所以十进制整数转二进制竖式结果是最低位在最上面小数转换等式两边同时乘以2,得到a1也就是小数点后第一位的数据,以此论推,所以十进制小数转二进制竖式结果是最高位在最上面...

2020-01-15 14:53:53 2130

原创 史上最详细的虚拟机VMware12安装Windows7教程

摘要:VMware是一个强大的虚拟机,可以在一台电脑上模拟真实的环境,创建出一个虚拟机系统,并且可以在这个系统进行测试和其他的操作,当然你也可以直接网上下载现成的虚拟机镜像或者,网络上有很多的Ghost等文件,这类系统可能经过别人一些优化,但是优化的过程可能阉割了某些系统的文件,或者被植入一些广告等,文本一步步详细说明如何利用VMware12安装一个Win7系统,虚拟机win7镜像文件iso...

2020-01-15 13:57:08 626

转载 BCD码与十进制数间转换

BCD码与十进制数间转换原创Acuity- 最后发布于2018-06-13 00:26:15 阅读数 26079 收藏展开1.BCD码  BCD码(Binary-Coded Decimal‎)称为二进码十进数或二——十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常...

2020-01-15 11:17:33 2981

转载 8421BCD码运算法则,超过9(不含)或者有进位,需要加6补偿

附注:压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8.BCD码的运算法则BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算...

2020-01-15 10:39:56 15285 2

转载 共同体成员地址共用,相对首地址偏移量的相同的这一点很适合浮点类型转换

2.共用体2.1共用体的概念 共用体是一种构造类型的数据结构。在一个“共用体”内可以定义多种不同的数据类型,这些变量共享同一段内存,已达到节省空间的目的,共用体内的变量互相覆盖。定义共用体类型变量的一般形式:union 共用体名{成员表列;}变量表列;例如:[cpp]view plaincopyuniondata { ...

2020-01-14 15:05:22 2404

转载 共用体的共用体变量的引用方式

只有先定义了共用体变量才能在后续程序中引用它,有一点需要注意:不能引用共用体变量,而只能引用共用体变量中的成员。简单示例 uniondata{inti;charch;floatf;}a,b,c;对于这里定义的共用体变量a,b,c。下面的引用方式是正确的:a.i (引用共用体变量中的整型变量i)a.ch (引用共用体变量中的字符变量ch)a.f (引用共用体变...

2020-01-14 14:44:50 3765 1

转载 浮点数与4个字节的转换

前言:在串口、IIC、SPI等数据传送时基本上都是一次传送一个字节的数据,如果要传送浮点数据?通常是将浮点数乘以一个倍数,如10,100,1000,10000等,然后将其转换为整型数据再转化为单个字节进行传送。如果这个数据是要进行显示的话,那么这样做并没有什么不好。但是如果这个数是要传输给另端进行继续计算的话,那么就要考虑另一种方法了,就是直接将浮点数据转换为4个单字节,在另一端接受完数据...

2020-01-14 14:41:34 2010

转载 结构体共用体占用空间大小区别&&内存对齐计算

(题目来自牛客网)在32位机器上设有以下说明和定义:typedef union { long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(struct dat...

2020-01-14 14:34:10 683

转载 SPI详细解释有动态图(主机和从机是同时采集,同时输出,不存在一个周期一边沿读,一边沿写。SDI,SDO同时采样。内部移位寄存器一边沿移位,一边沿采集)

SPI详细解释转载qq_42282258最后发布于2018-08-05 23:04:44阅读数 9980收藏本文的程序是主控室STM32F107各种宏定义和文件会在末尾说明1、 SPI简介SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理...

2020-01-11 11:30:23 6648

原创 IIC一个周期内高电平读取数据可能是上升沿和下降沿各读一次更可能是电平触发模式

因为要判断高电平内数据高低位变化确定起始和停止信号,也可能是电平触发模式,高电平期间输出随着输入变化

2020-01-11 11:25:08 1763

原创 STM32参考说明中SPI数据发送接收过程数据寄存器缓冲区移位寄存器工作过程

2020-01-11 11:22:21 3402 2

原创 同是两个FOR循环延时1毫秒,反汇编一个用CJNE,一个用JNZ,不可以盲目套用时间计算公式

函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒void delaynms(unsigned char n){ unsigned char i; for(i=0;i<n;i++) delay1ms();}反汇编: 119: for(i=0;i<10;i++)C...

2020-01-09 14:45:47 975

转载 为什么时钟都用32.768K的晶振?2的15次方

在用单片机设计电路时,需要用到晶振,晶振的大小要根据需要来确定,比如说4M,8M,11.0592M,12M,20M,甚至还有其他数值的晶振。在使用时钟芯片或者使用RTC功能时,也需要晶振,但是这种晶振我们都用32.768K的晶振,一般把它叫做时钟晶振。比如看DS1302的手册,手册推荐的方框图如下:时钟框图为什么单片机的外部晶振有多种选择,而时钟晶振都是32.768K呢?...

2020-01-09 11:41:51 2122

原创 利用曲线理解饱和区,饱和区和放大区之间的虚线是临界饱和线

三极管在硬件设计中太过普遍了,不过要很好的理解三级管的特性,却没有那么简单,下图的曲线中截止区和放大区理解较为容易,而饱和区不能看图理解,否则会很迷糊。(1)截止区:简单的讲就是三极管未导通,Ube<打开电压,一般是小于0.5或者0.7V,此时Ib=0,Ic=Iceo≈0.(2)放大区:发射结正偏(Ube>0),集电结反偏(Ubc<0),此时Ic=βIb,成线性放大关...

2020-01-08 16:01:25 2242

转载 理解的三极管输出特性曲线图的放大区和饱和区,利用∆Ic小于∆βIb差值比较曲线左移右移关系

很多人都难以理解的三极管输出特性曲线图的放大区和饱和区因为这看似1+1=2的问题,所以很多教程解释的不清楚,尤其对这个输出曲线图的解释更少!估计高手都觉得太不值得细说了! 我们新手理解起来就有难度了!这就像大学教授教不了小学生的道理差不多。在解释曲线图前,你要先弄明白2个问题。1.很多教程都把曲线图分成三个区,我觉得不妥,我觉得应该是四个区,平的那一段放大区以及截止区没有异议,明显圆弧的那...

2020-01-08 15:45:13 4933 3

原创 C符号前后添加空格的说明

2020-01-08 13:49:29 669

转载 嵌入式C语言的自我修养:这样编出来的代码简直行云流水!

嵌入式C语言的自我修养:这样编出来的代码简直行云流水!玩转单片机今天转载自CSDN,作者:bahutou0 规范制定说明0.1 箴言技术人员设计程序的首要目的是用于技术人员沟通和交流,其次才是用于机器执行。程序的生命力在于用户使用,程序的成长在于后期的维护及根据用户需求更新和升级功能。如果你的程序只能由你来维护,当你离开这个程序时,你的程序也和你一...

2020-01-08 13:41:55 1156

原创 三极管深度饱和:基极电流大于两倍的VCC/(β*Rc);还和集电极电流有关

2020-01-08 11:05:43 1495

转载 code是keil的修饰符便是变量存储在程序存储器中,不可被修改调用时候调用数组名字,而不是连带数据类型也写上

c语言 unsignedchar code tabc语言 unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//code tab是什么意思tab是变量名,code是keil的修饰符便是变量存储在程序存储器中,不可被修改,因为传统51只有128字节的数据存储区这是个数组,tab是数组名,unsign...

2020-01-04 16:42:07 1621

转载 普通变量名字,结构体变量名称,函数名称和数组名称不同,虽然代表地址,但是不能像数组名直接当地址传递,需要取地址符号&结构体类型等的变量名并不能直接当作地址使用,这一点和基本数据类型相同。(修改版)

结构体类型的变量名并不能直接当作地址使用,这一点和基本数据类型相同。(修改版)转载昵称999发布于2018-09-12 15:37:13阅读数 3910收藏有了前面两篇的基础,下面正式开扒变量名和内存的关系,先看一段大家很熟悉的代码:  int i;  scanf_s("%d", &i);  int i;,在这一句就为i分配了内存(但尚未对这块内存进行初始化),所...

2020-01-04 10:12:13 1029

原创 CONST关键字定义的数组引用时候(强制转换为需要的类型)需要把CONST删除,否则报错,引用的是变量名字或者数组名字,不需要定义修饰的类型CONST

#include "led.h"#include "delay.h"#include "key.h"#include "sys.h"#include "lcd.h"#include "usart.h" #include "flash.h" //ALIENTEK战舰STM32开发板实验23//SPI 实验 //技术支持:www.openedv.com//广州市星...

2020-01-04 09:28:02 532

转载 c++引用类型详解。C语言中引用是一种操作方式不是数据类型

C++引用详解  引用的概念引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;  如下:定义引用ra,它是变量a的引用,即别名。    int a;    int &ra=a;  (1)&在此不是求地址运算符,而是起标识作用。  (2)类型标识符是指目标变量的类型。...

2020-01-04 09:23:00 2144

空空如也

空空如也

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

TA关注的人

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