自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 code的用法

今天写程序的时候用了const,想到之前遇到的code的用法,那是第一次遇到code的那样的用法,查了一下,解释如下:在单片机使用C语言进行编程的时候,经常使用到code。code是keil C51(也就是说,在其它的编译器中可能是其它形式,例如IAR中的CODE)里面的关键字,一般用于定义常量数组,意思是告诉编译说把这个数组放在ROM存储。使用ROM(程序存储器)的好处是加快读...

2017-06-27 17:47:00 2333

转载 字符串处理

在C语言中,有时候要将数组转换成字符串,可以使用strcat(buf,buf2),将buf2连接到buf之后,讲一个数字转换成字符串输出,可以用sprintf(buf2,"%3.2f",rResistant);3.2f代表三位数字输出,2位小数点。如果是 buf2[0]= 16+SmokNum/10000+32; buf2[1]= 16+(SmokNum/1000)%10+3...

2017-06-21 10:15:00 210

转载 51单片机数组的定义方法(code与data的作用)

数组前不加“code”或“data”,则默认将数组存放在程序存储器中;code 指定数据是存储在代码区,数据是在编程的时候跟代码一起写入代码存储器,运行过程中不能改变;xdata 指定数据是存储在外部数据存储器了;data 指定数据存储在内部低128字节数据存储器里,如果变量不指定存储位置,默认就是data型,这部分存储器寻址速度最快;idata 指定数据存储在内部低256字节数据存储器...

2017-06-12 10:19:00 3537

转载 static有什么作用?

在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数一、 定义全局静态变量 :在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点:(1) 在全局数据区内分配内存(2) 如果没有初始化,其默认值为0(3) 该变量在本文件内从定义开始到文件结束可见二、 定义局部静态变量:在局部静态变量前面加上关键字stati...

2017-06-12 10:16:00 159

转载 stm32f030 模拟IIC

#define read_SDA (GPIOA->IDR&GPIO_Pin_10) >>10 //PA10 SDA#define set_SDA GPIO_SetBits(GPIOA, GPIO_Pin_10) //PA10 SDA#define clr_SDA GPIO_ResetBits(GPIOA, GPIO_Pin...

2017-05-27 11:55:00 853

转载 stm32的boot0和boot1

stm32的boot0和boot1TM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的Flash。2)SRAM = 芯片内置的RAM区,就是内存啦。3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。...

2017-05-20 17:04:00 248

转载 合泰内建函数

本使用手册版权为盛群半导体股份有限公司所有, 非经盛群半导体股份有限公司书面授权同意, 不得透过任何形式复制、 储存或传输。C COMPILER 使用手册March 27, 2012Rev 1.10 i March 27, 2012目录目录数据类型..............................................

2017-05-12 11:20:00 460

转载 合泰单片机使用心得

合泰单片机是台湾芯片,集成开发环境为HT-3000。大陆这边的芯片代理商是盛群半导体有限公司,官网上的程序用例都是由汇编编写的,当然也对C语言很好的支持,是标准C的子集。在工作中使用到的是8位的HT48R006,在开发过程中,需要注意一下几点:1、在HT-3000中有相关的配置,包括时钟的选择,管脚的功能配置,看门狗的使能,看门狗的喂狗指令方式。2、寄存器是支持位寻址的,包含了对...

2017-05-12 11:16:00 1121

转载 __IO uint16_t

STM32里的类型定义,见如下说明:typedef volatile unsigned short vu16;typedef __IO uint16_t vu16 /* IO definitions (access restrictions to peripheral registers) */#ifdef __cplusplus #define __I ...

2017-05-10 10:49:00 2522

转载 STM32中的位带(bit-band)操作

支持了位带操作后,可以使用普通的加载/存储指令来对单一的比特进行读写。在 CM3 中,有两个区中实现了位带。其中一个是 SRAM 区的最低 1MB 范围,第二个则是片内外设区的最低 1MB范围。这两个区中的地址除了可以像普通的 RAM 一样使用外,它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个 32 位的字。当你通过位带别名区访问这些字时,就可以达到访问原...

2017-05-03 22:21:00 199

转载 电子烟中测电阻注意事项

1. 在测电阻时必须先打开MOS,等MOS完全打开后再测试电阻,否则测出电阻值不准。2. 测试短路时,MOS完全打开后才可以测试,尤其是调节占空比输出的时候,否则很容易出现误判为短路现象。3. 在测试中,AD采集的第一组数据往往不准确,要多次测量求平均值计算出AD采样值,至少测量9次。转载于:https://www.cnblogs.com/yuandongtao1989/p/...

2017-05-03 15:10:00 375

转载 同步和异步区别

1在计算机领域,同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。2而我们平时经常讨论的同步问题多发生在多线程环境中的数据共享问...

2017-04-28 14:08:00 63

转载 看门狗

独立看门狗:1,时钟由专用LSI提供,主频故障了也能工作。2,相对窗口看门狗时间不是很精确,窗口看门狗:1,时钟由APB1经过预分频得来;2,窗口顾名思义 只有一段的时间可以对看门狗重载(喂狗)提早和太晚喂狗都会被看门狗复位。 独立看门狗只要在它计时完成之前喂狗都是可以的,所以如果程序跑飞又跑回来了独立看门狗就检测不到了。转载于:https://www.cnblogs.com/yua...

2017-04-26 20:23:00 82

转载 电压跟随器

电压跟随器编辑电压跟随器,顾名思义,是实现输出电压跟随输入电压的变化的一类电子元件。也就是说,电压跟随器的电压放大倍数恒小于且接近1。中文名电压跟随器外文名Voltage Follower目录1简介2电路图3电压跟随的作用简介编辑电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低。一般来说,...

2017-04-20 09:58:00 318

转载 MOS应用笔记

N沟道D接负载S接地P沟道S接电源D接负载总的来说就是N管接在负载的下面,P管接在负载的上面。这样可以保证Vgs的正常驱动。转载于:https://www.cnblogs.com/yuandongtao1989/p/6736946.html...

2017-04-20 09:13:00 116

转载 struct和typedef struct彻底明白了

struct和typedef struct分三块来讲述:  1 首先://注意在C和C++里不同    在C中定义一个结构体类型要用typedef:    typedef struct Student    {    int a;    }Stu;    于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)   ...

2017-04-14 22:42:00 71

转载 C结构体之位域(位段)

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节...

2017-04-14 21:53:00 67

转载 C语言结构体(Struct)

前面的教程中我们讲解了数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{...

2017-04-14 21:51:00 95

转载 Warining: L6305W: Image does not have an entry point. (Not specified or not set due to multiple cho...

MDK(KeiluVision4)中如何解决警告:Warining:L6305W:Imagedoesnothaveanentrypoint.(Notspecifiedornotsetduetomultiplechoices.)在OptionsforTarget选项的Linker下的Misccontrols处加入入口地址:--en...

2017-04-12 10:02:00 1133

转载 C语言格式输出函数printf()详解

printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。在前面的例题中我们已多次使用过这个函数。1.调用格式为printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式...

2017-04-11 22:04:00 1304

转载 MCU CPU 区别

MCU(Micro Controller Unit),又称单片微型计算机(Single Chip Microcomputer),简称单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机。 MCU按其存储器类型可分为无片内ROM型和带片内ROM型两种。对于无片内ROM型的芯片,必须外接EPROM才能应用...

2017-04-11 18:11:00 212

转载 单片机 APROM: RAM: Flash:区别

APROM是用户程序存储区,我们写的单片机的程序的代码,就放在这里.APROM是,APROM是Flash中的一部分。RAM,随机存储器,主要用来存放动态数据,比如我们程序里定义的变量,就是放在这里的,还有程序运算时产生的中间的结果,也是放在这里的。Flash,总得来说,分为两个部分,一是LDROM,即程序引导区,一个全新的单片机,电脑烧程序的时候,如何与电脑通信的呢?原因单片机在出厂前,...

2017-04-11 17:20:00 2967

转载 char (*a) [N]

char *a[]表示的是数组a[]是一个指向char的指针类型数组,相当于a[]里面的每一个元素都实际值都是一个指向字符串的指针(即存储某个字符串的首地址)后面这个你应该要问的是char (*a)[]吧,不然的话就和第一个一样了char (*a) [N]表示的是指向一个元素为N的字符串数组的指针,说白了就是一个数组指针(指向数组的指针)。这个和函数指针有点像 int (*p) (in...

2017-04-11 17:15:00 729

转载 strcat的几种实现及性能比较

一 原型说明 strcat()为C语言标准库函数,用于字符串拼接。函数原型声明在string.h头文件中:char *strcat(char *dest, const char *src); 该函数将参数src所指字符串拷贝到参数dest所指字符串的结尾处(覆盖dest结尾处的'\0')并添加'\0'。其返回值为参数d...

2017-04-11 11:48:00 382

转载 sprintf用法

sprintf(string,"%f",num);string是一个字符串,num是你要的数字,这样就能将浮点数num转成字符串string了,你那个写法是错的,后面还有对指针进行运算也是不对的。char s[20];int a=10;sprintf(s,"%d.jpg",a);//若a=10,则字符串s中存放的是"10.jpg".C语言在字符串处理中本来就很繁琐,但字符串...

2017-04-11 11:39:00 563

转载 void (*pFunction)(void);

typedef void (*pFunction)(void); JumpAddress = *(__IO uint32_t*) (DEF_FLASH_AppStartaddr + 4); Jump_To_Application = (pFunction) JumpAddress; /* Initialize user application's Sta...

2017-04-08 18:34:00 788

转载 16个单片机常用模块电路

1. 双路232通信电路:3线连接方式,对应的是母头,工作电压5V,可以使用MAX202或MAX232。2. 三极管串口通信:本电路是用三极管搭的,电路简单,成本低,但是问题,一般在低波特率下是非常好的。3. 单路232通信电路:三线方式,与上面的三级管搭的完全等效。4. USB转232电路:采用的是PL...

2017-04-08 16:36:00 341

转载 MOS管工作原理

MOS管,即在集成电路中绝缘性场效应管。MOS英文全称为Metal-Oxide-Semiconductor即金属-氧化物-半导体,确切的说,这个名字描述了集成电路中MOS管的结构,即:在一定结构的半导体器件上,加上二氧化硅和金属,形成栅极。MOS管的source和drain是可以对调的,都是在P型backgate中形成的N型区。在多数情况下,两个区是一样的,即使两端对调也不会影响器件的性...

2017-04-08 16:33:00 213

转载 STM32借用固件库使用外设的说明

在选择使用哪些外设的的时候,是去更改从官方模版中拷贝过来的stm32f10x_conf.h文件的27-48行,把我们要用的外围的头文件包含进来,不用的外围的头文件注释掉,但是你是否发现我们根本没有在用户主程序文件中包含stm32f10x_conf.h这个文件。那我们的修改这个文件怎么进入主程序文件的呢?答案只有一个,它包含在stm32f10x.h这个文件中,因为在用户主文件main...

2017-04-08 16:31:00 295

转载 【转载】STM32之中断与事件---中断与事件的区别

这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套。图中的蓝色虚线箭头,标出了外部中断信号的传输路径。首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测电路受上升沿或下降沿选...

2017-04-08 16:30:00 163

转载 头文件重复包含(转)

#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "x.h"#include "x.h"显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include "a.h"#include "b.h"看上去没什么问题。如果a.h和b.h都包含了一个头文件x.h。那么x.h在此也同样被包含了两次,只不...

2017-04-08 16:24:00 74

转载 C语言位操作

C语言中,有时需要进行置位操作,比如针对其中的某些位。这样做的目的是既达到了目标,又不会影响其它位。常用的置位操作如下:#define setbit(x,y) x|=(1<<y) //将X的第Y位置1#define clrbit(x,y)x&=~(1<<y) //将X的第Y位清0 举个例子:int main(i...

2017-04-08 14:27:00 164

转载 NOP使用注意事项

在51内核中 C语言可以使用_nop_()延时或者汇编语言NOP。并且一般是要加上 #include <intrins.h>而在ARM内核中 C语言可以使用__nop()延时或者汇编语言NOP延时。 __nop()函数我是在<intrinsics.h>中找到的,但添加到C程序中会错误,直接引用__nop();就没有问题。不同的内核NOP延时函数...

2017-04-07 18:03:00 294

转载 头文件intrins.h的用法

KEIL 中 头文件 INTRINS.H的作用 在 C51 单片机编程中,头文件 INTRINS.H 的函数使用起来,就会让你像在用汇编时一样简便.内部函数 描述_crol_ 字符循环左移_cror_ 字符循环右移_irol_ 整数循环左移_iror_ 整数循环右移_lrol_ 长整数循环左移_lror_ 长整数循环右移_nop_ 空操作 8051 NOP 指令_testbit_ 测试并...

2017-04-07 16:16:00 2529

转载 RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器概念

常见存储器概念:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器可以分为很多种类,其中根据掉电数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。在单片机中,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行保存一...

2017-04-06 16:52:00 237

转载 const在C语言中的用法

 程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。1.作用于变量:   用static声明局部变量-------局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态存储的,即指令执行到变量定义处时才给变量分配存储单元,跳出代码块时释放内存单元(生命期)。用static声明局部变量时,则...

2017-04-06 13:51:00 243

转载 volatile的作用

volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序:1234XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;对外部硬件而...

2017-04-06 12:37:00 57

转载 absacc.h keil软件里怎么找不到 ,如何找?

把下面的内容保存成absacc.h即可:原因是高版本的KEIL进行了优化,将以前很多库文件去除了,需要用户手动添加#ifndef __ABSACC_H__#define __ABSACC_H__#define CBYTE ((unsigned char volatile code *) 0)#define DBYTE ((unsigned char volatile data *...

2017-04-06 12:28:00 1803

转载 KEIL中程序优化说明

优化级别说明(仅供参考) :则其中的 Code Optimization 栏就是用来设置 C51 的优化级别。共有 9 个优化级别(书上这么写的) ,高优化级别中包含了前面所有的优化级别。现将各个级别说明如下:0 级优化:1、 常数折叠:只要有可能,编译器就执行将表达式化为常数数字的计算,其中包括运行地址的计算。2、 简单访问优化:对 8051 系统的内部数据和位地址进行访问优化。3、 ...

2017-04-02 12:43:00 863

转载 KEIL中三种编译模式以及对变量空间的影响

三条编译模式控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下。SMALL:所有变量都被定义在8051单片机的片内RAM中,对这种变量的访问速度最快。另外,堆栈也必须位于片内RAM中,而堆栈的长度是很重要的,实际栈长取决与不同函数的嵌套深度。采用SMALL编译模式与定义变量时指定data存储器类型具有相同效果。COMPACT:所有变量被定义在分页寻址的片...

2017-04-02 12:18:00 870

空空如也

空空如也

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

TA关注的人

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