项目5嵌入式C语言
任务目标1、通过对嵌入式C语言的学习,温习C语言基本语法,并了解嵌入式C语言的若干要点。2、学会分析程序的执行过程,进而理解嵌入式C语言的普通C语言的区别,即嵌入式C语言需要驱动硬件,因此更多地处于往复循环过程中。
5.1数据类型在C语言中有int、char、float等数据类型,在嵌入式程序编写时,这些数据类型依然可用,不过嵌入式C语言中,对正整数做了一些特殊的定义,如uint8_t、uint16_t、uint32_t等,uint8_t表示8位的无符号字符型数据,可从0取到0xFF,uint16_t表示16位的无符号字符型数据,可从0取到0xFFFF,uint32_t表示32位的无符号字符型数据,可从0取到0xFFFFFFFF。举例来说,如果写定义一个名为n1的变量,可写:uint8_tn1=0xFF;但是,如果uint8_tn1=0xFFF;在编译时会有警告,因为uint8_t的最大值是0xFF,0XFFF已经超过其取值范围。在有些系统中,也有用U8、U16、U32分别表示8位、16位、32位无符号字符型数据的。uint16_t比uint8_t多占用了1倍的存储空间,因此在编写程序时,可依据数据的大小选用不同的数据长度来定义。
5.2结构体5.2.1C语言中的结构体结构体是C语言中的一种数据类型,是由不同类型的数据组合成的一个整体,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体。举例来说:structdate//声明一个结构体类型{intyear;intmonth;intday;}data是一个结构体,也是一种数据类型,其中的三个成员用来表示年、月、日,具有明显的共性联系。
5.2.1C语言中的结构体再举例来说:structstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}student1,student2;student是一个结构体类型,其中的一个成员是structdatebirthday;这个成员本身也是一个data类型的结构体,结构体变量名是birthday。student1和student2是student类型的结构体变量。成员的赋值方式举例如下:student1.num=10010;student1.birthday.month=7;此时,如果再定义一个指针变量p,指向结构体student,即structstudent*p;
5.2.1C语言中的结构体再举例来说:structstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}student1,student2;此时,如果再定义一个指针变量p,指向结构体student,即structstudent*p;则可以通过指针p给结构体变量student1或student2赋值。方法如下:p=student1;(*p).num=10011;等价于student1.num=10011;在C语言中,为了使用方便和使之直观,可以把(*p).num改用p-num来代替,它表示*p所指向的结构体变量中的num成员,同样,(*p).name等价于p-name。
5.2.2嵌入式语句中的结构体举例嵌入式系统中大量用到结构体,在使用时,也可以把其看成一种特殊的数据类型。比如typedefstruct{__IOuint32_tCRL;__IOuint32_tCRH;__IOuint32_tIDR;__IOuint32_tODR;__IOuint32_tBSRR;__IOuint32_tBRR;__IOuint32_tLCKR;}GPIO_TypeDef;就是定义了一个名为GPIO_TypeDef的结构体,其含有CRL等7个成员。
5.2.2嵌入式语句中的结构体举例#defineGPIOA_BASE(APB2PERIPH_BASE+0L)语句表示将GPIOA端口的地址赋给GPIOA_BASE。#defineGPIOA((GPIO_TypeDef*)GPIOA_BASE)语句中,((GPIO_TypeDef*)
您可能关注的文档
- 《智能光电系统设计》课件 项目1 常用电子元器件.pptx
- 《智能光电系统设计》课件 项目2 常见集成电路.pptx
- 《智能光电系统设计》课件 项目3 常见电路模块.pptx
- 《智能光电系统设计》课件 项目4 STM32知识基础.pptx
- 《智能光电系统设计》课件 项目6 电平与信号.pptx
- 《智能光电系统设计》课件 项目7 常见信号传输技术.pptx
- 《智能光电系统设计》课件 项目8 智能光电功能电路设计与仿真.pptx
- 《智能光电系统设计》课件 项目9 智能光电基础编程实践.pptx
- 《智能光电系统设计》课件 项目10 智能光电电路设计实战.pptx
- 《智能光电系统设计》课件 项目11 智能光电综合编程实践.pptx
最近下载
- 2025年黑龙江生态工程职业学院单招职业适应性考试题库完美版.docx
- A.STM A351 -2018 中文承压件用奥氏体铸钢件的标准规范 CN中文.pdf
- 《红岩》名著阅读整本书中考知识点归纳总结(复习必备).pdf VIP
- 市政专业03-重庆市市政钢结构(桥梁)工程初步设计和施工图设计文件审查要点解析.pptx VIP
- 章丘市农村妇女两癌筛查结果剖析与防治策略探究.docx
- 《东盟国家礼仪与民俗文化》教学课件.pptx
- 《校园绿化植物资源调查》课件.ppt VIP
- 大病低保申请书.docx VIP
- 2026最新农业无人机飞防喷洒农药作业及药害赔偿合同.docx
- 2025年党纪党规知识测试题库及全部答案.docx VIP
原创力文档

文档评论(0)