【单片机到嵌入式之路】序列之一:简单的讨论一下C语言知识

  • 冰山一角
  • LV5工程师
  • |      2014-01-02 23:52:33
  • 浏览量 2932
  • 回复:29

一、C语言的好处

1.可移植性强;

2.开发速度快,效率高;

3.结构清晰

4....

二、C语言的位操作

在单片机中C语言的位操作用的比较多,而且用的好对代码的执行效率都是很有帮助的,下面简单介绍一下在单片机中的应用,就算是抛砖引玉吧。

定义一个8位的寄存器(0xF0是寄存器的地址):

#define   REG     0xDE

1)对单个的位进行赋值

1)将寄存器REG的第2位置“1”

 REG |= (1 << 2);

2)将寄存器REG的第2位清零

      REG &= ~(1 << 2);

3)将寄存器REG的第2和第4位置“1”

     REG |= (1 << 4) | (1 << 2);

4)将寄存器REG的第35位清零

     REG &= ~( (1 << 5) | (1 << 3) );

所以书上就出了一些口诀:

        位置1使用位运算"|"

        位置0使用位运算"&"

三、C语言的结构体在单片机中的应用

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。但是有时候结构体会涉及一些比较麻烦的事情:结构体的大小与内存对齐。这个暂时不解释。下面主要讲解一下如何应用。

比如在时钟程序中,经常就会用到结构体,结构体用的好,事半功倍。

//定义一个时间结构体

typedef struct

{

u16 Year; 

u8  Month;  

u8  Day;

u8  Week;

u8 Hour; 

u8  Min;    

u8  Sec;

}Dtime;

像上面这种太普通了,下面来个难点的。

//时间结构体

Dtime SetTM;

typedef struct{

short Min;  //最小值

short Max;  //最大值

short Tv;   //变量

}Limi;  这个结构体就可以通过按键来控制,按键加减可以调节时间。

 

其实C语言博大精深,这仅仅只是一个方面,像指针、函数、联合体等等都是重点,链表等等都是经典。


先休息了,有空再继续。。。


  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:27
冰山一角 2015-07-16
0   回复
举报
发布
littleHi 2015-07-15
顶一个
0   回复
举报
发布
冰山一角 2015-07-08
0   回复
举报
发布
littleHi 2015-07-07
冰哥总结的好
0   回复
举报
发布
冰山一角 2015-07-07
0   回复
举报
发布
孤独的远行人 2015-07-07
。。。
0   回复
举报
发布
冰山一角 2015-07-07
   是的
0   回复
举报
发布
孤独的远行人 2015-07-07
STM32里面的硬件基本都是用结构体的数据结构来定义的,乍一看好像是软件的功能,其实这些寄存器的地址是相连的,顺序也不能变。
0   回复
举报
发布
冰山一角 2015-07-06
0   回复
举报
发布
孤独的远行人 2015-07-06
非常不错,要是你能把结构体的元素的地址和硬件中地址联系起来那就更透彻了。
0   回复
举报
发布
查看更多
x
收藏成功!点击 我的收藏 查看收藏的全部帖子