自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MDK---Keil生成.bin文件和hex文件

一、Keil生成bin文件1、右键工程名,选择:Option For Target"xxx" 或者直接点击魔术棒2、选择User:3、选择After Build/Rebuild下的 Run#1如上图所示4、添加路径:"D:\keil for arm\ARM\ARMCC\bin\fromelf.exe" --bin --output ..\OBJ\rfid.bin ..\...

2018-10-29 13:10:10 14506 2

原创 【预处理】——__FILE__、__LINE__、#line、__func__、__DATE__和__TIME__等的用法

C语言中的__FILE__、__LINE__和__DATE__等都在头文件#include<stdio.h>中__LINE__#include<stdio.h>intmain(int argc, char ** argv){ printf("%d ",__LINE__); /*C语言中的 __LINE__ 用以指示本行语句在源文件中的位置信息*/...

2018-10-23 22:34:11 2088

原创 C语言——malloc函数详解

malloc函数和free函数详解引言:为什么使用动态内存分配当你声明数组时,你必须用一个编译时常量指定数组的长度。但是,数组的长度常常在运行时才知道,这是由于它所需要的内存空间取决于输入数据。例如,一个用于计算学生等级和平均分的程序可能需要存储一个班...

2018-10-23 11:55:50 52596 5

原创 I2C——基本原理

IIC通信协议(Inter-Integrated Circuit)是由PHILIPS公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在多用于系统内多个IC间的通讯。IIC物理层:1、它是一个支持多设备的总线。“总线”是指多个设备公用的信号线。在一个IIC通讯总线中,可连接多个IIC通讯设备,支持多个通讯主机和多个通讯从机。2、...

2018-10-22 12:28:49 7606 1

原创 UCOSIII--任务内嵌消息队列

#define OS_CFG_TASK_Q_EN                1u   /* Include code for OSTaskQXXXX()                                        */要使用内嵌消息队列,将宏OS_CFG_TASK_Q_EN设置为1。任务内嵌消息队列,顾名思义,就是使用任务内部的内嵌消息队列,无需创建新的消息队列,发送...

2018-10-17 21:44:23 1156

原创 UCOSIII--嵌入式系统、轮询系统和前后台系统

1、裸机系统裸机系统通常分为轮询系统和前后台系统,1.1、轮询系统轮询系统伪代码int main(void){    //硬件相关初始化    HardWareInit();   //无限循环    for( ; ;) {    //处理事情1    DoSomething1();    //处理事情2    DoSomething2()...

2018-10-15 21:12:53 814

原创 C语言---C专家编程 什么时候数组和指针相同

 什么时候数组和指针是相同的:规则1:表达式中的数组名(与申明不同)被编译器当作指向该数组第一个元素的指针规则2:下标总是与指针的偏移量相同规则3:在函数参数的声明中,数组名被编译器当作指向该数组第一个元素的指针规则1的例外情况:1、数组作为sizeof的操作数,此时是整个数组的大小,而不是指针所指向的第一个元素的大小2、使用&操作符取数组的地址3、数组是一...

2018-10-12 08:42:33 283

原创 C语言---数组和指针

令人震惊的事实:数组和指针并不相同文件1:int my_array[5];文件2:extern int *my_array;这样的程序能不能运行呢?肯定是不能运行的这里文件1定义了一个数组my_array,但文件2申明它为指针。这有什么错误吗?,无论如何,“每个人都知道”在C语言中,数组和指针非常相似。问题在于“每个人”这种说法是错误的。定义和申明的区别...

2018-10-10 20:37:31 144

原创 UCOSIII---任务内嵌信号量

void Fun_Open(){uint8_t  unlock_door_result=0xff;/*--------------------其他代码-----------------------------*/unlock_door_result=0x02;OSTaskQPost( (OS_TCB                *)&BEEPTaskTCB,    ...

2018-10-10 20:24:08 573

原创 C语言---《C陷阱与缺陷》边界计算与不对称边界

以第一个入界点和第一个出界点来表示一个数值范围这里下界是“入界点”,即包括在取值范围之中;而上界是“出界点”,即不包括在取值范围之中。这种不对称也许从数学上而言并不优美,但是它对于程序设计的简化效果很好。对于像C语言这样的数组下标从0开始的语言,不对称边界给程序设计带来的便利尤其明显:这种数组的上界(即第一个“出界点”)恰好是数组元素的个数!因此,如果我们要在C语言中定义一个拥有10个元素...

2018-10-10 13:43:31 237

原创 C语言---《C陷阱和缺陷》字符和字符串

C语言中的单引号和双引号含义迥异,在某些情况下如果把二者弄混,编译器并不会检测报错,从而在运行时产生难以预料的结果。用单引号引起来的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。因此对于采用ASCII字符集的编译器而言,'a'的含义与0141(八进制)或者97(十进制)严格一致。用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该指针数组被双引...

2018-10-10 13:18:52 163

原创 STM32---注释和调试打印

// 注释方法1/* 注释方法2*/#if 0注释方法3#endif方法1:适合单行注释方法2:适合多行注释方法3:如果多行注释里面还有注释,这种方法就比较适合#define DEBUG_ON  //  在底层的打印驱动 定义一个宏#ifdef  DEBUG_ON#define DEBUG(format, ...) do{     \        ...

2018-10-10 12:54:00 539

原创 UCOSIII---软件定时器

1、创建一个软件定时器:OSTmrCreate();void  OSTmrCreate (OS_TMR               *p_tmr,                   CPU_CHAR             *p_name,                   OS_TICK               dly,                   OS_TICK   ...

2018-10-10 12:33:51 1098

原创 C语言--《C专家编程》C语言申明的优先级规则

A 申明从它的名字开始读取,然后按照优先级顺序依次读取。B 优先级从高到低依次是:    B.1 申明中被括号括起来的部分    B.2 后缀操作符:括号()表示这是一个函数,而方括号[]表示这是一个数组。    B.3 前缀操作符:星号*表示“指向---的指针”。C 如果const和volatile关键字后面紧跟类型说明符(如int ,long等),那它作用于类型说明符,在其...

2018-10-09 21:32:09 186

原创 STM32---PB3和PB4引脚

GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//打开AFIO时钟    GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable...

2018-10-09 17:00:09 5888

原创 C语言---《C专家编程》编译器日期被破坏

char * localized_time(char * filename){    struct tm *tm_ptr;    struct stat stat_block;    char buffer[120];    stat(filename,&stat_block);    tm_ptr = localtime(&stat_block.st_m...

2018-10-09 10:30:45 133

原创 C语言---C语言中的符号重载

《C专家编程》符号重载符号 意义 static 在函数内部,表示 该变量的值在各个调用间一直保持延续性 在函数这一级,表示该函数只对本文件可见 extern 用于函数定义,表示全局可见(属于冗余的) 用于变量,表示它在其他地方定义 void 作为函数的返回类型,表示不返回任何值 在指针申明中,表...

2018-10-08 13:12:45 329

原创 C语言---sizeof运算符的返回类型

1、sizeof 运算符返回的是一个 unsigned 类型#include<stdio.h>int array_table[6]={12,14,15,35};#define LEN (sizeof(array_table)/sizeof(array_table[0]))int main(void){ int x=-1; if(x<=LEN...

2018-10-08 12:46:37 10797

空空如也

空空如也

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

TA关注的人

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