IAR环境配置、新建工程、点亮LED灯

这篇博客分享了如何在IAR环境中配置新项目,新建工程,并通过编写代码点亮CC2530单片机上的LED灯。文章详细介绍了设置过程,包括设备选择、堆栈配置、链接器设置和调试选项,以及提供了两种不同的LED闪烁程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很久以前写的,今天在硬盘中翻腾出来了,拿出来和大家分享。

今天,第一次点亮了led灯,真的好开心。

下面从基础步骤开始详细叙述

 

1.打开IAR,project-ànew project,(如下图),点击ok

1.                          File àNew File 创建一个新的文档

Save as    led.c  将新创建的文档保存为led.c

 

此时,就可以在新创建的文档中编辑代码了。

3. 以我的模块为例,有2530RF和QAZB2V1串口转zigbee配置底板,其中QAZB2V1中带有两个LED灯,就是要点亮它们。

由图可以看到,引脚P1_0P1_1分别和LED1 LED2相连。

2.                          根据以上电路图写程序如下

#include<ioCC2530.h>

 

#define uint unsigned int

 

void Delay(uint);

 

void Delay(uint n) //延迟函数

{ uint i;

  for(i=0;i<n;i++);

   for  (i=0;i<n;i++);

     for  (i=0;i<n;i++);

       for  (i=0;i<n;i++);

         for  (i=0;i<n;i++);

}

void main()

{

 P1DIR|=0X03;//P1-0 P1_1定义为输出

 P1=0X00;

 while(1)

  {

   P1=0X03;

   Delay(10000);

   P1=0X00;

   Delay(10000);

  }

}

如直接调试,会出现以下提示

(如果设置好了,出现这种情况,可以project——>add file例如led.c来解决)

做设置如下

设置一 Project à Options àGeneral Options àDevice选 CC2530.i51并且设置datamodel 为large

 

 

设置二:在GeneralOptions下选择Stack/Heap选项卡,设置XDATA为OX1FF

 

设置三 、选择Linker à 选configà在 Override Default前面打对勾,然后选择lnk51ew_cc2530.xcl

 

设置四、在Debugger栏目中,setup选项卡下,选择Driver一项选 Texas Instruments

进行了这些设置后就可以调试下载运行了。

注意:延时的长度一定要设好,不然看不到灯的闪烁。

 

以下是两个灯不同时闪烁的程序

#include <ioCC2530.h>

 

#define LOW 0

#define HIGH 1

#define uint  unsigned int

#define uchar unsigned char

#define RLED P1_0 //定义LED1为P10口控制

#define YLED P1_1 //定义LED2为P11口控制

 

 

 

void Delay(uint);        //延时函数

void InitIO(void);        //初始化LED控制IO口函数

 

void Delay(uint n)   //延时函数

{

   uint i;                 //定义一个变量i;   

   for(i = 0;i<n;i++);

       for(i = 0;i<n;i++);

       for(i = 0;i<n;i++);

       for(i = 0;i<n;i++);

       for(i = 0;i<n;i++);

}

 

void InitIO(void) //初始化IO口程序

{

   P1DIR |= 0x03;  //P1_0、P1_1定义为输出

   RLED = 1;

   YLED = 1;

 

}

 

 

void main()

{

 InitIO();

 

 

 

 while(1)

  {

       //P1=0X03; 

   

   P1_0 = LOW;

    Delay(10000);

   P1_1 = LOW;

   Delay(10000);

  P1_0 = HIGH;

   Delay(10000);

  P1_1 = HIGH;

 

  }

}

 

程序2

#include <ioCC2530.h>

#define uint unsigned int

#define uchar unsigned char

//定义控制灯的端口

#define RLED P1_0      //定义LED1为P10口控制

#define YLED P1_1      //定义LED2为P11口控制

//函数声明

void Delay(uint);           //延时函数

void Initial(void);          //初始化P0口

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

//延时

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

void Delay(uint n)

{

       uinttt;

       for(tt= 0;tt<n;tt++);

       for(tt= 0;tt<n;tt++);

       for(tt= 0;tt<n;tt++);

       for(tt= 0;tt<n;tt++);

       for(tt= 0;tt<n;tt++);

}

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

//初始化程序

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

void Initial(void)

{

       P1DIR|= 0x03; //P10、P11定义为输出

 

       RLED= 1;

       YLED= 1;     //LED

}

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

//主函数

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

void main(void)

{

       Initial();         //调用初始化函数

       RLED= 0;            //LED1

       YLED= 0;            //LED2

       while(1)

       {

          YLED = !YLED;

          Delay(10000);

          RLED = !RLED;

       }

}


IAR Software是一款强大的嵌入式开发工具,常用于ARM等微控制器的程序编写。如果你想通过IAR点亮三个信号,首先你需要完成以下几个步骤: 1. **配置项目**: - 创建一个新的IAR工程,选择适合你的目标硬件平台和相应的处理器架构。 - 配置连接器(Linker Settings),确保你的LED(信号)端口被映射到实际的硬件上。 2. **定义寄存器和变量**: - 定义控制LED的GPIO(通用输入/输出)寄存器或宏,以及用于存储LED状态的布尔变量。 ```c #define LED0_PORT GPIOA #define LED0_PIN 0 // 例如,假设第一个LED连接在PA0 bool ledState[3]; // 一个数组表示三个LED的状态 ``` 3. **初始化硬件**: - 在程序启动时,初始化GPIO设置为推挽模式(Push Pull)以便能直接驱动LED。 ```c void init_LEDs(void) { LED0_PORT->DIR |= (1 << LED0_PIN); // 设置为输出 } ``` 4. **控制LED**: - 使用循环或条件判断来轮流改变ledState数组中的值,然后更新GPIO状态。 ```c void toggle_LEDs(void) { for(int i = 0; i < 3; i++) { if(ledState[i]) { // 如果当前LED亮着 LED0_PORT->DATA &= ~(1 << LED0_PIN); // 关闭它 } else { // 否则打开它 LED0_PORT->DATA |= (1 << LED0_PIN); } ledState[i] = !ledState[i]; // 切换状态 delay_ms(500); // 等待一段时间再切换下一个 } } ``` 5. **主循环**: - 在主循环中不断调用`toggle_LEDs`函数,保持LED闪烁。 ```c int main(void) { init_LEDs(); while (true) { toggle_LEDs(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值