第三节 创建IAR工程-点亮LED

第三节  创建IAR工程-点亮LED
    经过前面的准备工作,这章开始我们开始正式的开发过程。万事开头难,针对MT254xboard开发板的详细介绍参见《MT254xBoard-V1.0-硬件手册.pdf》,在这里我不做详述。
    这个教程是为有一定51基础和C基础的人准备的,如果读者这方面还欠缺,请找相关方面的书籍恶补一下。CC2540的本质就是一个8051的单片机,所以我们裸机开发就可以作为一个51单片机来开发,裸机开发的目的是为了让大家熟悉整个硬件以及开发环境,这并不是我们的最终目的,但这是一个必须的过程,为后面开发协议栈奠定基础。


    打开我们前面安装的IAR软件,创建一个新的工程:


 因为我们使用的CC2540是增强型51单片机,这里我们创建一个空的8051工程,具体配置选项如图:


选择目录保存工程:


我们这里创建一个最简单的例程,点亮一个LED,这个例程就像我们学习每种编程语言是都是先来个Hello World!。虽然简单,但是能够让我们最快的掌握一个开发环境的使用。


新的工程为空工程,没有任何文件,我们这里新建一个文件并且保存为C文件。


添加文件到工程:


保存WorkSpace,在IAR中每个工程都必须要有一个Workspace,而且一个Workspace中可以有多个工程,所以这里我也必须要保存一个Workspace,点击file->save Workspace As就会弹出如下对话框,这里和保存文件一样需要对这个WorkSpace命名,我们这里一样取名LED。


接下来我们需要对工程进行一些配置,使它适应我们的CPU。在工程处右击,进入配置界面。


CPU配置:


这里我们第一个要做的就是选择我们的CPU,我们使用的是TI公司生产的CC2540F256,所以这里选择CC2540F256。配置好CPU后,我们还需要配置编译输出的文件格式,选择到Linker选项,配置如下图:


 debug选项:


选项配置:


经过这些配置后,我们可以开始编码了,下面开始编写我们的第一个代码,功能是点亮2个LED,开发板上有两个LED灯,分别对应P1.0和P1.1。
    代码如下,可能觉得都是注释,这里我还是建议大家有一个好的编码风格,在开发大项目时就能够看到它的优势。

<span style="font-size:18px;">/******************************************************************************

                  版权所有 (C), 2013-2020, 深圳市馒头科技有限公司

 ******************************************************************************
  文 件 名   : LED.c
  版 本 号   : V1.0
  作    者   : 朱兆祺
  生成日期   : 2014年6月6日
  功能描述   : 点亮一个LED
  函数列表   :
              main
  修改历史   :
  1.日    期   : 2014年6月6日
    作    者   : 朱兆祺
    修改内容   : 创建文件

******************************************************************************/

/*----------------------------------------------*
 * 包含头文件                                   *
 *----------------------------------------------*/
#include <ioCC2540.h>

#include "delay.h"

/*****************************************************************************
 函 数 名  : main
 功能描述  : 主函数,C程序入口
 输入参数  : void
 输出参数  : 无
 返 回 值  : 

 修改历史      :
  1.日    期   : 2014年6月6日
    作    者   : 朱兆祺
    修改内容   : 创建

*****************************************************************************/
int main(void)
{
    P1SEL &= ~0X03;     // 将P1.1、0设置为IO功能
    P1DIR |= 0X03;      // 设置P1.1、0为输出功能
    
    while(1)
    {
    P1  = (P1 & 0XFC) | 0X01;         // 设置P1.0输出高电平
    }
    return 0;
}</span>



编写好代码后,就可以编译下载到开发板上了。点击图中所示图标全速运行。


根据原理图,P1.0对应的是LED2,这里我们能够看到LED2处于点亮的状态。


根据CC254X的数据手册,我们可以很快知道P1SEL是设置IO功能,P1DIR是设置输入输出。至于为什么程序是这么写,我们来看下,CC254X芯片的P1口一共有8个IO口,那就是说刚刚好由两位十六进制进行控制:1111 1111(FF),这里仅仅是LED1和LED2,也就是P1.1和P1.0两个IO口,为了不影响其他引脚的使用,我们这里巧妙使用与或控制其功能。比如:P1 = (P1 & 0XFC) | 0X01;    P1与上1111  1100,这样不影响其他引脚的基础上,清除了P1.0和P1.1的输出,再或上0X01,这样将P1.0设置为高电平,根据原理图,高电平是点亮LED2.



本文章转载自
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/69222.aspx
请勿用于商业
  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值