当前位置: 首页 > news >正文

01_IAR新建CC2530工程

IAR建立CC2530工程

前言

​ 由于很多Zigbee商家提供的教程未有从零建立CC2530工程的讲解,可能会导致后面的开发中出现一些琐碎的问题。本文将以LED流水灯为例,从0到1用IAR建立CC2530工程。

IAR介绍

IAR Embedded Workbench被广泛应用于消费电子、工业控制、汽车应用、医疗、航空航天以及手机应用系统等领域的嵌入式系统开发。许多全球著名的公司都在使用IAR提供的开发工具来开发他们的前沿产品。

CC2530是一款高性能、低功耗的片上系统(SoC)解决方案,专门用于2.4GHz IEEE 802.15.4、ZigBee和RF4CE应用。

​ 为了进行CC2530的应用开发,需要先安装IAR相关的开发环境。由于CC2530使用的是增强型8051内核,因此应选用IAR Embedded Workbench for 8051版本。

新建CC2530工程(以LED流水灯为例)

  1. Project —> Create New Project —> 选择8051 —> 选择Empty project —> OK

在这里插入图片描述

  1. 选择一个文件夹保存工程文件

在这里插入图片描述

3. 配置工程属性

​ 新建工程后,在左侧工作区会出现工程文件,鼠标右击文件 —> Options 进入到工程属性配置

在这里插入图片描述

通常配置:

​ General Options —> Device information —> Device —> 右侧Button —> Texas Instruments(TI) —> CC25xx —> 3x —> CC2530F256(根据芯片闪存选择)

​ Data model —> Large

​ Calling convention —> XDATA

在这里插入图片描述

  • Note: CC2530有32/64/128/256 KB 闪存块,闪存的大小在芯片表面可以看到, 如下图所示

在这里插入图片描述

链接器配置:

​ Linker —> Linker configuration file —> check(勾上) Override default —> 找到 TI cc2530F256_banked.xcl 文件 (根据实际芯片容量选择)

在这里插入图片描述
调试器配置:

​ Debugger —> Driver —> Texas Instruments —> check Override defalut

在这里插入图片描述

  • Note: 仿真器实物上也有TI公司的标志, 这里实质就是告诉IDE用哪款调试器

在这里插入图片描述

END: 点击OK配置完成

4. 项目结构管理

​ 这里我们采用分模块的方式,将同一模块作为一个项目组(文件夹),主程序直接放到主目录中

建立项目组:

右键点击项目工程 —> Add —> Add Group —> 输入LED —> 出现一个文件夹样的东西

在这里插入图片描述

新建项目文件:

​ Ctrl+N 新建文件,建三个 分别保存为 LED.c LED.h main.c 保存到默认路径即可

在这里插入图片描述

​ 右键点击项目文件 —> Add —> Add Files —> 选择 main.c

​ 右键点击LED项目组(可以理解为文件夹) —> Add —> Add Files —> 选择LED.c

​ 项目结构如下图所示
在这里插入图片描述

  • Note: 源文件都默认保存在目录中(如下图所示),但项目管理界面是树状的文件夹形式,若不嫌费事,也可以先建立文件夹将源文件保存在单独文件夹中。

在这里插入图片描述

END: 至此一个项目的框架建立完毕 下面将继续演示 LED流水灯程序

LED案例(demo版)

​ 由于本章内容主要是演示如何新建一个CC2530工程,因此使用的是简略版的代码,也不对代码进行讲解。

​ 将以下内容复制到刚刚创建的对应的文件中

main.c

#include <ioCC2530.h>
#include "LED.h"
#define uint unsigned int
#define uchar unsigned charvoid 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(void)
{Init_LED(); //初始化 LED 灯控制 IO 口 while(1) //死循环 { LED1 = !LED1; // LED1 灯闪一次 Delay(50000); LED2 = !LED2; // LED2 灯闪一次 Delay(50000); LED3 = !LED3; // LED3 灯闪一次 Delay(50000); } }

LED.c

#include <ioCC2530.h>
#include "LED.h"void Init_LED(void)
{P1DIR |= 0x03;P0DIR |= 0x10;LED1 = 1;LED2 = 1;LED3 = 1;
}

LED.h

#ifndef __LED_H
#define __LED_H
#define LED1 P1_0
#define LED2 P1_1
#define LED3 P0_4
void Init_LED(void);#endif

编译与下载

​ 写好程序后, 点击 Project —> Rebuild All —> 弹出窗口中输入工作空间名字LED会自动保存为.eww文件

在这里插入图片描述

​ 用仿真器连接电脑和ZigBee开发板, 按一下仿真器上复位按钮,在工具栏点击Download and Debug 或按下 Ctrl+D

在这里插入图片描述

​ 在出现的调试按钮中点击 Go 即可在开发板上看到流水灯现象 (直接按下板子复位键也可以)

在这里插入图片描述

结语

​ 本章讲解了如何在IAR上新建CC2530工程,并以LED流水灯为例,讲解程序的编译与下载。由于讲解重点是工程的建立,因此不对IAR的下载注册以及仿真器驱动安装等赘述。此外,由于硬件不同,该流水灯程序并不一定适用所有人。本篇LED的引脚为P0_4 P0_0 P0_1 低电平驱动。

相关文章:

01_IAR新建CC2530工程

IAR建立CC2530工程 前言 ​ 由于很多Zigbee商家提供的教程未有从零建立CC2530工程的讲解&#xff0c;可能会导致后面的开发中出现一些琐碎的问题。本文将以LED流水灯为例&#xff0c;从0到1用IAR建立CC2530工程。 IAR介绍 ​ IAR Embedded Workbench被广泛应用于消费电子、…...

原生鸿蒙的竞争力到底如何?

目录 1. 崛起与挑战2. 安全机制3. 自动化检测前移4. 深入探讨开发者服务优势 1. 崛起与挑战 长期以来&#xff0c;移动操作系统市场被IOS和安卓所垄断&#xff0c;一直都难以推出完整的自主系统&#xff0c;面临诸多挑战&#xff0c;如推广困难、应用适配难度大&#xff0c;以及…...

数字化生态平台:关键功能全解析

​在当今数字化浪潮中&#xff0c;数字化生态平台正发挥着举足轻重的作用。那么&#xff0c;它的关键功能究竟有哪些呢&#xff1f;让我们一探究竟。 首先&#xff0c;数据集成与管理是数字化生态平台的重要功能之一。它能够从多个来源收集数据&#xff0c;包括企业内部系统、外…...

c 到 c++ 过渡

c基础入门 #include <iostream> #include <cmath> #include <unistd.h> // 总结&#xff1a;按照书写依次往下&#xff0c;先看 iostream 再看 cxxx 最后 xxx.husing namespace std; // 本质&#xff1a;自定义作用域&#xff0c;作用域就在该命名空间内部。…...

[linux驱动开发--环境搭建] qemu-9.1+linux-kernel-6.11

本文档模拟vexpress-a9开发板&#xff0c;作为铁头娃&#xff0c;要学就学最新的包 已经上传到github仓库 目录 编译qemu-9.1编译linux-kernel-6.11编译busybox-1.36.1NFS挂载 1. qemu-stable-9.1源码编译安装 1.1. 下载qemu源码的stable-9.1分支 仓库地址 mkdir qemu_9.…...

019集——获取CAD图中多个实体的包围盒(CAD—C#二次开发入门)

如下图所示&#xff0c;获取多个实体的最大包围盒&#xff0c;用红色线表示&#xff1a; 也可单独选圆的包围盒 部分代码如下&#xff1a; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using A…...

【Clickhouse 探秘】Clikchouse 有哪些表引擎?你都知道哪些?

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…...

你好,C++并发世界

C并发编程的主要目的是任务隔离和提高性能 是的&#xff0c;C并发编程的主要目的是任务隔离和提高性能。具体来说&#xff0c;可以总结为以下几点&#xff1a; 任务隔离&#xff1a;通过并发编程&#xff0c;程序可以将不同的任务或计算分隔开&#xff0c;这样可以防止它们之间…...

windows10 安装 达梦数据库DM8

一. 前期工作 下载 https://www.dameng.com/list_103.html 通过百度网盘分享的文件&#xff1a;达梦数据库 链接&#xff1a;https://pan.baidu.com/s/1mJcT3UiwojeWIhXpAwh-RA 提取码&#xff1a;jyzi 点我: 想要 解压 双击iso文件 二. 安装步骤 1 .双击setup.ext安装 …...

ntp交叉编译 ntpdate时间同步

NTP(Network Time Protocol,网络时间协议)是一种用于在计算机系统之间同步时钟的协议,广泛覆盖网络环境中,确保网络设备和计算机上的时间保持一致。NTP 是基于 UDP 协议工作在123号端口上,能够在不同的网络条件下达到数千级别的精度同步时间。 实现windows上位机作为ntp服…...

微服务实战系列之玩转Docker(十六)

导览 前言Q&#xff1a;基于容器云如何实现高可用的配置中心一、etcd入门1. 简介2. 特点 二、etcd实践1. 安装etcd镜像2. 创建etcd集群2.1 etcd-node12.2 etcd-node22.3 etcd-node3 3. 启动etcd集群 结语系列回顾 前言 Docker&#xff0c;一个宠儿&#xff0c;一个云原生领域的…...

Solana 代币 2022 — Transfer Hook

从零到英雄的 Solana 代币 2022 — Transfer Hook Token 2022 计划引入了几项令人兴奋的扩展&#xff0c;增强了铸造和代币账户的功能。在这些功能中&#xff0c;我个人最喜欢的是Transfer Hook &#xff08;转账钩子&#xff09; 。 想象时间 让我们戴上想象的帽子&#xf…...

网络爬虫中的反爬虫技术:突破限制,获取数据

&#xff0c;网络爬虫已成为获取大量网络数据的重要工具。然而&#xff0c;随着爬虫技术的发展&#xff0c;许多网站也开始采用各种反爬虫措施来保护自己的数据。作为爬虫开发者&#xff0c;我们需要不断更新我们的技术&#xff0c;以应对这些反爬虫措施。本文将详细介绍一些常…...

【ROS2】cv_bridge:ROS图像消息和OpenCV的cv::Mat格式转换库

1、简述 cv_bridge可以实现ROS图像消息(sensor_msgs::msg::Image)和OpenCV的cv::Mat格式的转换。 cv_bridge支持各种常见的图像编码格式,包括JPEG、PNG、BMP等。 2、互转 1)cv::Mat转sensor_msgs::Image cv::Mat image; sensor_msgs::ImagePtr pMsg = cv_bridge::CvIma…...

【Web.路由】——URL生成

前几篇文章介绍了路由的相关知识&#xff0c;包括原理&#xff0c;模板和约束。围绕的一个点就是URL&#xff0c;那么URL是如何生成的呢&#xff1f; 在 ASP.NET CORE应用程序中&#xff0c;使用了一个叫 LinkGenerator的链接生成器来生成URL的。 LinkGenerator是一个中间件组件…...

使用 Java 实现从搜索引擎批量下载图片

在进行一些数据收集、图像处理或研究工作时&#xff0c;我们可能需要从网络上批量下载高质量的图片。本文将介绍如何使用 Java 和 Jsoup 库&#xff0c;从搜索引擎中抓取图片&#xff0c;解析详情页并过滤出高质量图片。通过以下几个步骤&#xff0c;您可以自动化这个图片收集的…...

基于Matlab GUI的说话人识别测试平台

基于Matlab GUI的说话人识别测试平台 摘 要&#xff1a;为了克服在Matlab中语音处理工具箱的不足&#xff0c;设计出基于Matlab图形用户界面&#xff08;GUI&#xff09;的说话人识别测试平台。系统框架设计&#xff1a;特征参数采用美尔倒谱系数及差分美尔倒谱系数&#xff0c…...

Leetcode 热题100之二叉树2

1.二叉树的层序遍历 思路分析&#xff1a;层序遍历是逐层从左到右访问二叉树的所有节点&#xff0c;通常可以使用广度优先搜索&#xff08;BFS&#xff09;来实现。我们可以使用一个队列&#xff08;FIFO&#xff09;来存储每一层的节点&#xff0c;并逐层访问。 初始化队列&a…...

<项目代码>YOLOv8 煤矸石识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…...

GA/T1400视图库平台EasyCVR视频分析设备平台微信H5小程序:智能视频监控的新篇章

GA/T1400视图库平台EasyCVR是一款综合性的视频管理工具&#xff0c;它兼容Windows、Linux&#xff08;包括CentOS和Ubuntu&#xff09;以及国产操作系统。这个平台不仅能够接入多种协议&#xff0c;还能将不同格式的视频数据统一转换为标准化的视频流&#xff0c;通过无需插件的…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...