历史上的今天
返回首页

历史上的今天

今天是:2025年08月06日(星期三)

正在发生

2020年08月06日 | msp430如何选择头文件?怎么添加?

2020-08-06 来源:elecfans

  使用iar,如果没有头文件,编译肯定通不过,更加不用说继续设计了,本人使用IAR进行msp430开发,选择原因是因为ccs所需内存太大了,keil已经无法满足MSP430的某些功能了,对于IAR集成开发环境,我们从事一个项目开发,首先就是要添加头文件,头文件相信大家都不陌生,使用C语言开发的时候我们见到过无数的 “#include《》”和“#include”都可以添加头文件,说明一下:放在自己工程目录下的头文件要用#include “msp430g2553.h” ,系统目录下的头文件才用#include《iomsp430g2553.h》,当然你自定义的头文件可以在系统头文件库里面的。


  再次使用时新版本的IAR5.31时发现又不会添加头文件了,想想当时用的时候也遇到过类似问题,最后也不知是如何解决的,在利用workspace栏添加时,倒也能添加,只是不再main分目录下,即便包含了xxx.h文件,编译时仍然会提示“can no find xxx.h”。


  有关IAR教程并总结出两种解决方法。

  方法一:将头文件xxx.h保存在当前工程目录下,通常和main.c放在同一个目录。此时,无需在workspace里面手工添加,只需要在main.c或者在对应的xxx.c文件中“#include xxx.h”,编译成功完成后会自动出现在相应的.c文件下,以表示该.c文件调用了.h文件。


  方法二:方法一中的文件排放是我们比较常见的一种文件组织方式,但是当文件较多时,.c和.h文件混在一起显得文件数较多且乱。此时,可以右击workspace中的Debug项,add --》 add group ,如图所示。自己可新增如名为Resource和Head的文件夹,将.c和.h文件作一个分类。

 msp430如何选择头文件?怎么添加?

  图1 新增Group


  需要注意的是,此时如果.h和.c文件不在编译器默认搜索路径下,则需要在如图2所示的C/C++ compiler 选项中添加额外的include 搜索路径,没行写一个新的路径,比如E:Example等等。

 msp430如何选择头文件?怎么添加?

  图2 增加额外的include搜索路径


  个人使用IAR总结的添加头文件的技巧:

  (1):将头文件msp430g2553.h保存在当前工程目录下,和main.c放在同一个目录当中。这样就无需在workspace里面进行手工添加,只需要在main.c或者在对应的c文件中include进来即可 ,编译成功完成后会自动出现在相应的.c文件下。这个方法简单而且也不容易出错,因为我们在项目开发的时候,设计的文件大,很容易忽略这些细节的。这个方法可以在项目开始就解决掉问题。


  (2):当我们开发的项目文件较多时,.c和.h文件混在一起显得文件数较多且显得很乱。我们不好迅速找到我们想要的文件,这点比较麻烦,这个时候,我们可以使用另外一个方法,就是右击workspace中的Debug项,add --》add group ,自己可新增如名为自己定义的组文件夹,将.c和.h文件作一个分类来进行管理,这样更加的直接明了,很适合用于大项目多文件的开发。


  IAR头文件,用户程序通过头文件访问库定义,头文件使用#include伪指令与之相结合,为了避免浪费编译时间,定义被划分到许多不同的头部定义,每一个文件覆盖特定的函数区域,用户可以根据使用的内容选择不同的头文件。


  IAR调试环境提供了MSP430单片机各系列的标准头文件,定义了系列中包含的寄存器的物理地址,在程序中可以字节使用寄存器名或者寄存器中位的名称,这样就避免使用实际的物理地址,使程序设计简介、高效。

推荐阅读

史海拾趣

Axiohm公司的发展小趣事

Axiohm公司最初是一家小型电子元件制造商,面对激烈的市场竞争,公司创始人李先生意识到唯有技术创新才能脱颖而出。他带领团队投入大量研发资源,成功开发出一种具有高性价比的新型半导体材料。这一创新不仅降低了生产成本,还提高了产品的性能稳定性,迅速赢得了市场的青睐。随着销量的不断增长,Axiohm逐渐在电子行业中崭露头角。

Fedco_Batteries公司的发展小趣事

面对日新月异的市场需求和技术变革,Fedco_Batteries始终保持创新的步伐。公司加大了研发投入,不断推出新型电池产品,满足客户的多样化需求。同时,公司还积极探索新的应用领域,将电池技术应用于更多领域,如新能源汽车、智能家居等。这种创新驱动的发展战略,让Fedco_Batteries在行业中始终保持领先地位。

ARMKEIL Microcontroller Tools公司的发展小趣事

ARMKEIL Microcontroller Tools公司的起点可以追溯到Keil公司的成立。1985年,Keil Elektronik GmbH(凯尔电子有限责任公司)在德国慕尼黑正式成立,由一群热衷于嵌入式系统开发的工程师创立。起初,公司的主要业务是开发和销售嵌入式系统的开发工具,这些工具为当时的电子工程师提供了强大的支持。随着业务的发展,Keil逐渐在嵌入式系统开发领域崭露头角。

DUBILIER公司的发展小趣事

DUBILIER公司非常重视人才的培养和发展。公司建立了完善的人才培训体系,为员工提供各种培训和发展机会。通过内部培训和外部引进相结合的方式,DUBILIER公司培养了一支高素质、专业化的技术和管理团队。这些人才不仅为公司的发展提供了强大的支持,还为公司赢得了更多的商业机会和合作伙伴。

Essentra Components公司的发展小趣事

随着环保意识的不断提高,Essentra Components公司积极响应绿色发展的号召,将环保理念融入到产品的设计和生产过程中。公司采用环保材料替代传统材料,减少了对环境的污染;同时,公司还引进了先进的节能减排技术,降低了生产过程中的能耗和排放。这些措施不仅提高了产品的环保性能,还为公司赢得了更多的社会赞誉和市场份额。

ABC [ABC Taiwan Electronics Corp]公司的发展小趣事

ABC Taiwan Electronics Corp成立于上世纪八十年代,起初只是一个小型电子零件加工厂。面对激烈的市场竞争和有限的资源,公司创始人凭借对电子技术的深刻理解和敏锐的市场洞察力,带领团队不断研发新产品,逐步赢得了客户的信任。通过不断积累经验和扩大规模,ABC逐渐在电子零件加工领域站稳了脚跟。

问答坊 | AI 解惑

CPLD入门资料

本帖最后由 paulhyde 于 2014-9-15 09:27 编辑 偶得一CPLD资料,分享下..,.  …

查看全部问答>

Synopsys Star-HSpice v2006 03 SP1 1CD(电路仿真软件)

Synopsys Star-HSpice v2006 03 SP1 1CD(电路仿真软件) Synopsys.Star-Rcxt vB-2008.12 SP2 Linux 1CD Synopsys.Star-Rcxt vB-2008.12 SP2 LinuxAMD64 1CD synopsys vera vZ-2006.12 Linux 1CD Synopsys Vera v6.3.10 for linux & solaris 1C ...…

查看全部问答>

基于单片机的大容量存储器扩展的意义和发展趋势

最近老师给了个课题,让我对单片机的存储容量进行扩展,东西是自己可以弄出来,可是到了写报告的时候就犯难了,还要写什么扩展的意义和这方面的发展趋势,我对这个方面了解不深,没法用较好的语言来组织,希望听听各位哥哥姐姐的看法,还望大家不吝 ...…

查看全部问答>

用vs2005(C++)开发wince5.0程序,如何操作sqlce

用vs2005(C++)开发wince程序,如何操作sqlce?不使用CF。在网上找的资料,要么是用evc和adoce,但是在vs2005下面编译不过;要么是用ado.net。如果谁有这方面的资料请给共享一下。…

查看全部问答>

想找个兼职,VC、单片机、arm嵌入式开发

想找个兼职,VC、单片机、arm嵌入式开发 作过基于microchip系列、msp430系列、S3C44B0、AT91RM9200、ST710等mcu的项目, 包括电力系统监控、税控等行业. 可承担四层板电路设计,底层嵌入式程序设计及上位机配套程序编写。…

查看全部问答>

请教:我在src/common/intr.c里定义一个全局变量来保存中断号,怎样才能在我自己的驱动里引用这个变量?

我要写一个键盘驱动, 首先在src/common/intr.c里定义了一个全局变量“volatile UINT32 g_keyIntIrq”用来记录发生中断的引脚; 怎样才能在我自己的驱动程序文件platform\\smdk2440a\\src\\drivers\\keybd\\kbdcommon\\S3c2440kbd.cpp里使用这个 ...…

查看全部问答>

2011年电子大赛控制类内部模拟题目

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 1.1任务设计并制作一个水位监测与控制装置,1.2 要求1. 基本要求(1)通过键盘可以设定B瓶里的液位(0-25cm内的任意值),并通过控制电磁阀(或类似于电磁阀的装置)使B瓶的液位达到设定值。(2)液 ...…

查看全部问答>

求求大侠们帮帮我!!!

我刚学习zigbee,整了一套装备,在做两个指示灯交替闪烁实验时,模块的指示灯根本就没有反应。 这个实验我是按照买的资料提示做的,程序也是人家编好的,只需我下载到模块即可,但当我Debug后PC上的程序好像在运行,但模块上根本就没有什么变化, ...…

查看全部问答>

!!!stm8l152c6的Vref严重问题,Vref引脚向外漏电流!

我的一个项目从其他单片机平台移植到stm8l152c6,外接Vref基准为2.500v,当我把基准电压电路关闭后让单片机进入halt模式,测量待机功耗与st资料相差太远,多方查找竟然是Vref引脚向外漏电!同样的外围基准电路,在msp430、合泰单片机、松翰单片机一 ...…

查看全部问答>