张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

在单片机编程中什么时候需要用到enum呢

畅学单片机 2018-11-28 09:18 次阅读

当变量的数值在几个范围之间,如一个week变量取值只有Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday。这样用enum比较好。当然也可以用define.但是define维护起来比较麻烦, 适合变量的数值范围值较少的时候。

1、用enum关键字说明常量(即说明枚举常量)有以下几点好处:

(1) 使程序更容易维护和直观。例如,下面定义的枚举是描述UART支持的传输bit位数,从枚举类型的定义就可以知道UART模块提供的传输bit的几种模式。

enum{usartDatabits4=USART_FRAME_DATABITS_FOUR,/*4databits(notavailableforUART).*/usartDatabits5=USART_FRAME_DATABITS_FIVE,/**《5databits(notavailableforUART).*/usartDatabits6=USART_FRAME_DATABITS_SIX,/**《6databits(notavailableforUART).*/usartDatabits7=USART_FRAME_DATABITS_SEVEN,/**《7databits(notavailableforUART).*/usartDatabits8=USART_FRAME_DATABITS_EIGHT,/**《8databits.*/usartDatabits9=USART_FRAME_DATABITS_NINE,/**《9databits.*/usartDatabits10=USART_FRAME_DATABITS_TEN,/**《10databits(notavailableforUART).*/}USART_Databits_Enum;

(2)使程序更安全

比如,在写底层驱动是,向上层提供一个UART初始化函数UartInit(uint32 baudrate , uint32 bit)在调用该函数时,可能因为程序员不了解模块UART支持的传输bit模式而提供了错误的bit参数。避免此类现象,我们当然也可以在UarTInit()函数中对bit范围进行检查。如果参数取值是连续的还好,如果不连续使用多个if-else或switch。将耗费一定的ROMCPU时间。

我们可以将函数定义为UarTInit(uint32 baudrate , USART_Databits_Enum bit)。一来我们可以通过查看USART_Databits_Enum枚举类型很容易知道UART支持的传输bit模式。另一方面在编译的时候就可以避免传递错误的参数。

2、枚举与宏定义的区别和联系:

宏和枚举之间的差别主要在作用的时期和存储的形式不同,宏是在预处理的阶段进行替换工作的,它替换代码段的文本,程序运行的过程中宏已不存在了。而枚举是在程序运行之后才起作用的,枚举常量存储在数据段的静态存储区里。(在IAR编译环境中,枚举类型默认为字符型,在M3内核下编程,为了减少不必要的字符扩展指令,可以用?enum_is_int指令来强制使所有的枚举类型为4bytes。)

但也不能就此说宏比枚举好,如果需要定义非常多的常量,用一条enum {…。.}明显比一大堆define更清晰,枚举也可以用来定义一些特殊类型,比如Bool,如: type enum {FALSE,TRUE} Bool;

原文标题:枚举常量在单片机编程中有何好处

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

软件测试编程技术

本课程强调了软件设计开发相关知识对于做好软件测试工作的重要性,将软件设计开发工程中的重要阶段的重要方法植入软件测试课程体
发表于 11-14 00:00 33549次 阅读
软件测试编程技术

软件测试编程技术

本课程强调了软件设计开发相关知识对于做好软件测试工作的重要性,将软件设计开发工程中的重要阶段的重要方法植入软件测试课程体
发表于 11-14 00:00 33549次 阅读
软件测试编程技术

单片机应该如何学习详细的学习步骤说明

不知不觉自己接触单片机已经有两年多了,从最初的MCS-51,到后来的AVR、MSP430,对于单片机....
发表于 06-18 17:50 5次 阅读
单片机应该如何学习详细的学习步骤说明

使用MSP430单片机设计的高级流水灯程序免费下载

本文档的主要内容详细介绍的是使用MSP430单片机设计的高级流水灯程序免费下载。
发表于 06-18 17:49 7次 阅读
使用MSP430单片机设计的高级流水灯程序免费下载

EM3-V22单片机开发板电路原理图免费下载

本文档的主要内容详细介绍的是EM3-V22单片机开发板电路原理图免费下载。
发表于 06-18 17:20 7次 阅读
EM3-V22单片机开发板电路原理图免费下载

使用51单片机进行家用智能电热水器的毕业设计免费下载

本设计采用ATEML公司生产的AT89C51单片机为核心来设计智能电热水器。本设计也对单片机控制电热....
发表于 06-18 17:20 7次 阅读
使用51单片机进行家用智能电热水器的毕业设计免费下载

STM32嵌入式入门必看之文章给你详细的讲解

STM32嵌入式入门必看之文章-----介绍非常详细!(学习STM32的理由!!!!)为什么要写这篇....
发表于 06-18 16:52 6次 阅读
STM32嵌入式入门必看之文章给你详细的讲解

如何使用16位单片机进行智能循线和避障机器人设计资料说明

本文介绍了一种具有智能循线和避障功能的机器人设计方案,机器人系统包括控制系统的硬件和软件设计。硬件部....
发表于 06-18 15:49 8次 阅读
如何使用16位单片机进行智能循线和避障机器人设计资料说明

实例解读51单片机完全学习与应用的PPT课件教程免费下载

本文档的主要内容详细介绍的是实例解读51单片机完全学习与应用的PPT课件教程免费下载包括了:第1章 ....
发表于 06-18 15:49 8次 阅读
实例解读51单片机完全学习与应用的PPT课件教程免费下载

618限时特惠~正在进行!最后一天!

推荐课程: 张飞软硬开源,629元既可获得基于STM32 BLDC直流无刷电机驱动器视频 618限时特惠,怎能不看看呢? 电...
发表于 06-18 10:46 92次 阅读
618限时特惠~正在进行!最后一天!

请问MCU将默认使用什么?

海都。我用的是PIC16F87A单片机。通常情况下,我通过编写(13)位来编写μ-CONFIG(0x3F3A);在MPLAB IDE...
发表于 06-18 08:04 9次 阅读
请问MCU将默认使用什么?

STC8系列单片机技术参考手册的详细资料免费下载

STC8系列单片机是不需要外部晶振和外部复位的单片机,是以超强抗干扰/超低价/高速/低功耗为目标的8....
发表于 06-18 08:00 10次 阅读
STC8系列单片机技术参考手册的详细资料免费下载

采用SPCE061A和PTR8000实现模拟SPI总线通信

关硕,关济实 (东北电力大学 自动化工程学院  吉林 吉林  132012) SPI(Serial Peripheral Inte...
发表于 06-18 07:12 3次 阅读
采用SPCE061A和PTR8000实现模拟SPI总线通信

请问晶振对单片机的作用是怎么样的?

真心不明白晶振对单片机的作用是怎么样的? cpu处理数据需要晶振吗?一条指令传到cpu他就是一连串的0,1形式的方波,cpu自然会处理...
发表于 06-18 05:56 21次 阅读
请问晶振对单片机的作用是怎么样的?

单片机初学指路

    单片机是什么,你可能不太清楚。学习单片机需要什么,可能你不清楚。         &nb...
发表于 06-18 04:35 29次 阅读
单片机初学指路

请问单片机5V是如何控制127V或者380V的设备的?

单片机5V是如何控制127V或者380V的设备的?其原理是什么?求大神详解!!!...
发表于 06-18 00:50 6次 阅读
请问单片机5V是如何控制127V或者380V的设备的?

如何自己制作ATM单片机下载器?

如何自己制作ATM单片机下载器?最好和STC通用   感谢...
发表于 06-18 00:06 8次 阅读
如何自己制作ATM单片机下载器?

单片机中晶振电路部分电容位置变化的影响

大家都了解单片机的晶振电路,常见的都是先晶振,然后两颗22pf电容到地,如图片中B这样,但是如果在设计板子时候,先将电容放在...
发表于 06-17 19:55 63次 阅读
单片机中晶振电路部分电容位置变化的影响

如何实现电风扇分档风力调节?

发表于 06-17 19:34 14次 阅读
如何实现电风扇分档风力调节?

如何设计电风扇模拟系统设计?

发表于 06-17 19:32 48次 阅读
如何设计电风扇模拟系统设计?

单片机定时器中断原理及s3c2440的定时器使用方法

使CPU中断的事件称中断源。中断源向CPU发出中断请求,CPU暂时中断原来执行的事件A转去做事件B。....
发表于 06-17 16:06 59次 阅读
单片机定时器中断原理及s3c2440的定时器使用方法

51单片机的定时器

从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T....
发表于 06-17 15:02 70次 阅读
51单片机的定时器

单片机定时器/计数器的结构

 每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数....
发表于 06-17 09:57 69次 阅读
单片机定时器/计数器的结构

单片机定时器/计数器基本原理

AT89S52单片机内部的定时/计数器的结构如图2所示。定时器T0由特殊功能寄存器TL0(低8位)和....
发表于 06-17 09:19 46次 阅读
单片机定时器/计数器基本原理

使用TMS320F28027单片机进行LED照明的程序免费下载

本文档的主要内容详细介绍的是使用TMS320F28027单片机进行LED照明的程序免费下载。
发表于 06-17 08:00 18次 阅读
使用TMS320F28027单片机进行LED照明的程序免费下载

C8051F系列单片机板子的原理图和PCB资料免费下载

本文档的C8051F系列单片机板子的原理图和PCB资料免费下载。
发表于 06-17 08:00 16次 阅读
C8051F系列单片机板子的原理图和PCB资料免费下载

你有这些嵌入式硬件电路设计的基本功吗?

我走的电子开发道路其实和大多数人说的一样,基本的路线为模拟电子(熟练)→数字电路设计(掌握)→单片机....
的头像 玩转单片机 发表于 06-16 11:52 473次 阅读
你有这些嵌入式硬件电路设计的基本功吗?

使用单片机设计超声波测距1602显示的程序和接线图免费下载

本文档的主要内容详细介绍的是使用单片机设计超声波测距1602显示的程序和接线图免费下载
发表于 06-13 17:40 56次 阅读
使用单片机设计超声波测距1602显示的程序和接线图免费下载

如何提高单片机的抗干扰性

搞过产品的朋友都有体会,一个设计看似简单,硬件设计和代码编写很快就搞定,但在调试过程中却或多或少的意....
发表于 06-13 17:40 56次 阅读
如何提高单片机的抗干扰性

使用单片机设计MP3的电路图免费下载

本文档的主要内容详细介绍的是使用单片机设计具有能显示歌名,电子书,闹钟,随音乐播放流水灯功能的MP3....
发表于 06-13 17:40 73次 阅读
使用单片机设计MP3的电路图免费下载

如何使用单片机设计AD和DA转换器详细资料说明

 某些单片机内部巳经集成了AD DA转换器,使其在工控行业、仪器仪表.家电产品的应用与日俱增.但是这....
发表于 06-13 17:17 58次 阅读
如何使用单片机设计AD和DA转换器详细资料说明

PROTEUS仿真软件的基本使用教程免费下载

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件....
发表于 06-13 17:17 59次 阅读
PROTEUS仿真软件的基本使用教程免费下载

如何进行直流稳压电源的设计详细资料说明

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器R....
发表于 06-13 16:58 81次 阅读
如何进行直流稳压电源的设计详细资料说明

基于GPRS技术的单片机开发特点及过程介绍

针对这一问题,提出一种基于GPRS的单片机上网的解决方案,即在单片机中实现PPP协议,并通过驱动GP....
发表于 06-13 15:20 120次 阅读
基于GPRS技术的单片机开发特点及过程介绍

四个单片机原理与应用的实验指导书资料免费下载

本文档的主要内容详细介绍的是四个单片机原理与应用的实验指导书资料免费下载实验项目包括了:实验一 I/....
发表于 06-13 08:00 25次 阅读
四个单片机原理与应用的实验指导书资料免费下载

使用AT89C51单片机设计步进电机控制系统论文资料免费下载

步进电机是现代控制技术中最早出现的执行部件,其特点是将数字脉冲控制信号直接转换为一定数值的机械角位移....
发表于 06-13 08:00 35次 阅读
使用AT89C51单片机设计步进电机控制系统论文资料免费下载

单片机最小系统电路原理图免费下载

本文档的主要内容详细介绍的是单片机最小系统电路原理图免费下载。
发表于 06-13 08:00 124次 阅读
单片机最小系统电路原理图免费下载

如何设计智能巡线小车的多模式速度控制系统详细设计方案说明

介绍了基于 Freescale HCS12 系列单片机的智能巡线小车多模式速度控制系统的设计方案。该....
发表于 06-12 17:07 40次 阅读
如何设计智能巡线小车的多模式速度控制系统详细设计方案说明

STM32F1单片机的IO位带操作头文件免费下载

本文档的主要内容详细介绍的是STM32F1单片机的IO位带操作头文件免费下载。
发表于 06-12 16:31 48次 阅读
STM32F1单片机的IO位带操作头文件免费下载

单片机精确延时的方法解析

1、使用循环函数延时: void delay1ms(void) //误差 0us,延时1ms ....
发表于 06-12 15:32 101次 阅读
单片机精确延时的方法解析

使用51单片机设计的计算器的程序和仿真资料免费下载

本文档的主要内容详细介绍的是使用51单片机设计的计算器的程序和仿真资料免费下载,可以计算加减乘除小数....
发表于 06-12 08:00 27次 阅读
使用51单片机设计的计算器的程序和仿真资料免费下载

CC2530 SOC芯片的数据手册免费下载

CC2530是一个真正的系统芯片(SOC)解决方案,适用于IEEE 802.15.4、ZigBee和....
发表于 06-12 08:00 30次 阅读
CC2530 SOC芯片的数据手册免费下载

STC15F408AD系列单片机的总体介绍资料免费下载

STC15F408AD系列单片机是STC生产的单时钟/机器周期(1T)的单片机,是高速/高可靠/低功....
发表于 06-12 08:00 33次 阅读
STC15F408AD系列单片机的总体介绍资料免费下载

使用单片机进行电子称的设计资料合集免费下载

本文档的主要内容详细介绍的是使用单片机进行电子称的设计资料合集免费下载包括了:1.设计开发原理说明(....
发表于 06-12 08:00 50次 阅读
使用单片机进行电子称的设计资料合集免费下载

TI高性能单片机和模拟器件在高校中的应用和选型指南PDF电子书

本手册主要着眼于选型,因此一些涉及深入的技术细节的章节在本手册中略去,大家可以参考我们的培训 PPT....
发表于 06-12 08:00 42次 阅读
TI高性能单片机和模拟器件在高校中的应用和选型指南PDF电子书

如何使用51单片机进行智能小车避障电路的实现

随着汽车工业的发展 ,汽车本身的安全 性和智 能性 日益得到重视。 目前 ,国内外 已经有了很多有关....
发表于 06-11 17:20 73次 阅读
如何使用51单片机进行智能小车避障电路的实现

如何实现电动小车的自动循迹和声控行驶资料说明

本系统通过采集光电传感器和驻极体的数据来实现电动小车的自动循迹和声控行驶。控制终端由 C8051F0....
发表于 06-11 17:20 51次 阅读
如何实现电动小车的自动循迹和声控行驶资料说明

PLC模块化编程和结构化编程

模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。
的头像 工控资料窝 发表于 06-11 16:14 257次 阅读
PLC模块化编程和结构化编程

使用51单片机进行自动循迹智能小车的程序资料免费下载

本文档的主要内容详细介绍的是使用51单片机进行自动循迹小车的程序资料免费下载
发表于 06-11 16:13 36次 阅读
使用51单片机进行自动循迹智能小车的程序资料免费下载

普中51单片机开发攻略PDF电子书免费下载

本开发攻略配套的实验平台为:普中 51-双核-A6/A7 开发板,前一款开发板采用的是双 CPU 设....
发表于 06-11 08:00 40次 阅读
普中51单片机开发攻略PDF电子书免费下载

如何使用ATmage32L单片机进行自动循迹智能小车的设计

本寻迹小车是以有机玻璃为车架,ATmage32L单片机为控制核心,加以直流电机、光电传感器和电源电路....
发表于 06-10 18:01 40次 阅读
如何使用ATmage32L单片机进行自动循迹智能小车的设计

使用STM32单片机应用LDC1000电感数字转换器的程序和工程文件

本文档的主要内容详细介绍的是使用STM32单片机应用LDC1000电感数字转换器的程序和工程文件资料....
发表于 06-10 17:39 52次 阅读
使用STM32单片机应用LDC1000电感数字转换器的程序和工程文件

如何让小车在路上走进行智能小车寻迹的详细资料说明

多数情况下,车是在路上跑的,我们的圆梦小车也不例外,只是它能认识的“路”与现实世界不同,因为它的眼睛....
发表于 06-10 17:38 57次 阅读
如何让小车在路上走进行智能小车寻迹的详细资料说明

太阳能电池板自动对光控制集成电路的关键技术研究

针对太阳能电池板自动对光控制集成电路的关键技术展开研究,设计一种可以通过太阳光电池板自动对光的集成电....
的头像 集成电路应用杂志 发表于 06-10 17:25 287次 阅读
太阳能电池板自动对光控制集成电路的关键技术研究

使用STM32F030单片机读取温湿度传感器SHT20的C语言源代码免费下载

本文档的主要内容详细介绍的是使用STM32F030单片机读取温湿度传感器SHT20的C语言源代码免费....
发表于 06-10 17:07 64次 阅读
使用STM32F030单片机读取温湿度传感器SHT20的C语言源代码免费下载

单片机晶振电路中22pf或30pf电容的作用

刚学单片机的学长告诉我单片机的晶振电路中就是用22pf或30pf的电容就行,听人劝吃饱饭吧,照着焊电....
的头像 传感器技术 发表于 06-10 16:44 314次 阅读
单片机晶振电路中22pf或30pf电容的作用

使用单片机进行电子音响实验的C语言程序和工程文件免费下载

本文档的主要内容详细介绍的是使用单片机进行电子音响实验的C语言程序和工程文件免费下载。
发表于 06-10 08:00 49次 阅读
使用单片机进行电子音响实验的C语言程序和工程文件免费下载

如何进行超声波测距仪的设计

电子测距仪要求测量范围在0.10~5.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳....
发表于 06-06 17:52 135次 阅读
如何进行超声波测距仪的设计

KQM2801A空气质量模块的数据手册和使用程序及工程文件免费下载

KQM2801A型空气质量检测模块,是使用半导体空气质量传感器作为检测空气中有机化合物气体的模块,它....
发表于 06-06 17:22 75次 阅读
KQM2801A空气质量模块的数据手册和使用程序及工程文件免费下载

单片机编程学习入门教程之LaunchPad板的实验报告资料说明

名为LaunchPad 的MSP-EXP430G2 低成本试验板是一款适用于TI 最新MSP430G....
发表于 06-06 16:52 63次 阅读
单片机编程学习入门教程之LaunchPad板的实验报告资料说明

少儿编程正在构筑未来互联网基石!

不管以后孩子是否从事编程行业,编程时学到的逻辑思维、算法思维、创新能力,将会终生受益。
的头像 银河机器人 发表于 06-06 09:32 269次 阅读
少儿编程正在构筑未来互联网基石!

使用单片机设计智能台灯的毕业设计资料合集免费下载

本文档的主要内容详细介绍的是使用单片机设计智能台灯的毕业设计资料合集免费下载包括了:基于单片机的智能....
发表于 06-06 08:00 81次 阅读
使用单片机设计智能台灯的毕业设计资料合集免费下载