自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鱼鱼的嵌入式学习

知识源于点滴积累

  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 指针与数组--指针与数组的定义与声明

定义与声明的区别:(1)定义就是编译器创建一个对象,为这个对象分配一块内存并为其取一个名字,这个名字就是我们常说的变量名或对象名。定义需要分配内存。(2)声明表示该变量名或对象名在其他地方已经定义过,并且该变量名或对象名已经定义过,其他地方不能在使用该名字作为变量名或对象名。同一个变量名或对象名可以在不同的地方声明多次,并且声明不分配内存。指针与数组的定义域声明如下两种方式都是

2013-05-10 14:02:11 1115

原创 指针与数组--a与&a区别

假设声明了一个数组a,则&a表示数组a的首地址,a与&a[0]表示数组a首元素的首地址,那么&a+1与a+1有哪些区别呢?通过下面的实验来说明。int i = 0;int a[5]={1,2,3,4,5};int *p = (int *)(&a+1);for(i=0;i{printf("a+%d = 0x%p,a[%d] = %d\n",i,a+i,i,a[i]);}

2013-05-10 12:48:42 1352

原创 指针与数组--指针访问与下标访问

指针与数组下标访问与指针访问的区别如下:         char *p="abcde";char a[5]={1,2,3,4,5};printf(" p+4  = 0x%p,*(p+4) = 0x%x\n",p+4,*(p+4));printf("&p[4] = 0x%p, p[4]  = 0x%x\n",&p[4],p[4]);printf(" a+4  = 0x%p,*(

2013-05-10 12:04:20 2767

原创 #define

define 用于文本替换,称之为宏定义,基本形式为不带参数和带参数两中形式:(1)#define   name    struff           eg:#define  NUM     100         (2)#define   name(parameter-list)   struff     eg:#define  SUM(a,b)    ((a)+(b))

2013-03-10 17:21:55 1055

原创 STM32之SysTick嘀嗒定时器

STM32嘀嗒定时器为RTOS系统提供延时使用,在无操作系统情况下也可以实现准确的延时,从而告别通过while循环实现软件延时。嘀嗒定时器是一个24位的减计数器,包括有CTRL、LOAD、VAL、CALIB四个寄存器,各个寄存器的描述如下。(1)CTRL寄存器(控制寄存器):(2)LOAD寄存器(数值加载):(3)VAL寄存器(当前计数值):

2013-01-02 21:48:30 2863

原创 STM32之系统时钟

使用STM32已经有一段时间,为了快速完成任务习惯性在已有代码的基础上进行部分修改,而没有仔细阅读数据手册,详细分析参数设置的缘由。现将逐步将STM32的各部分内部结构一次进行细节的学习,今天进行STM32的时钟部分。         STM32F103系列时钟最高可以至72MHZ,时钟来源包括HSE(外部高速时钟)、LSE(外部低速时钟)、HSI(内部高速时钟)、LSI(内部低速时钟

2013-01-02 20:28:57 1535

原创 利用异或方法实现数据交换

两个数据实现数据交换通常选用中间变量的方式实现,利用异或运算可以方便实现两个数据的互换。         异或运算:a^b    (按位进行异或,相异为1,相同为0) 例如:a=5,即0101(2);b=6,即0110(2)。通过以下三个赋值语句可以实现数据交换。(1)a = a^b;(2)b = b^a;(3)a = a^b;过程分析:(1) a

2012-11-28 16:41:35 2497

原创 串口发送数据——字符串发送与十六进制发送的区别

在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。        在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。例

2012-11-28 16:01:15 58997 10

原创 STM32外部中断处理流程及注意事项

STM32的外部中断是以组为单位,例如PA0、PB0、PC0、PD0、PE0、PF0、PG0共用外部中断0,我们再使用时从中选择一个座位外部中断0即可,其他中断类推。外部中断包括EXTI0、EXTI1、EXTI2、EXTI3、EXTI4、EXTI9_5、EXTI15_10,Pin0--Pin4有各自独立的中断,Pin5--Pin9共用一个中断,Pin10--Pin15共用一个中断。

2012-10-09 11:35:04 8971

原创 内存对齐

#pragma  pack(push ,num)          num表示几字节对齐Typedef struct  AAA{Int a;Char b;…….}AAA;#pragma pack(pop)

2012-09-29 16:40:12 636

原创 结构体变量与结构体指针变量的使用方法

一、结构体的定义格式一般如下:Typedef struct SCI{    U8 data[MAXLEN];     U16 pos;}TSCI;二、访问结构体成员的基本方法有两种:1、定义一个结构体变量直接访问成员变量;2、定义一个结构体指针变量间接访问结构体变量。(1) 结构体变量访问TSCI  Sci1;Sci1.data [

2012-09-29 16:34:30 1986

原创 串口接收缓冲区的一点体会

在调试电台的使用过程中,设计到电台参数检测、电台参数修改、电台传输模式启动和数据传输是个部分,程序流程是:(1)依次检测电台参数(CFG = 0),若电台参数正确则继续检测参数,否则修改参数设置。所有参数都正确时返回 TRUE。(2)参数正确后进入数据传输启动模式(CFG =1),接收到READY后表示启动完成,返回TRUE。(3)数据传输模式正常启动后,发送或接收数据。在

2012-09-29 16:14:07 11791

转载 12个有趣的C语言面试题

1.gets()函数问:请找出下面代码里的问题:#include int main(void) {     char buff[10];     memset(buff,0,sizeof(buff));      gets(buff);      printf("\n The buffer entered is [%s]\n",buff);      return 0; }

2012-09-11 22:04:56 767

原创 FLASH读写----SPI

最近项目中用到FLASH作为数据存储,研究了下以SPI方式读写FLASH的基本方法与流程。应用环境如下: 控制器     STM32F103                               FLASH      M25P64                            读写方式    SPI                            编程环境

2012-09-09 22:08:23 19042 7

STM32 SPI方式读写flash

STM32以SPI方式读写FLASH中的数据。

2012-09-09

FPGA的27个实例

学习FPGA的好例子,叫你如何使用VHDL语言进行LED、AD/DA、ASK、FSK、PSK等控制

2010-05-18

空空如也

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

TA关注的人

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