历史上的今天
今天是: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文件作一个分类。

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

图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单片机各系列的标准头文件,定义了系列中包含的寄存器的物理地址,在程序中可以字节使用寄存器名或者寄存器中位的名称,这样就避免使用实际的物理地址,使程序设计简介、高效。
上一篇:MSP430单片机的端口介绍
下一篇:MSP430微控制器全家族成员
史海拾趣
|
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嵌入式开发 作过基于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里使用这个 ...… 查看全部问答> |
|
本帖最后由 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、合泰单片机、松翰单片机一 ...… 查看全部问答> |




