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流水灯为例)
- Project —> Create New Project —> 选择8051 —> 选择Empty project —> OK

- 选择一个文件夹保存工程文件

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工程的讲解,可能会导致后面的开发中出现一些琐碎的问题。本文将以LED流水灯为例,从0到1用IAR建立CC2530工程。 IAR介绍 IAR Embedded Workbench被广泛应用于消费电子、…...
原生鸿蒙的竞争力到底如何?
目录 1. 崛起与挑战2. 安全机制3. 自动化检测前移4. 深入探讨开发者服务优势 1. 崛起与挑战 长期以来,移动操作系统市场被IOS和安卓所垄断,一直都难以推出完整的自主系统,面临诸多挑战,如推广困难、应用适配难度大,以及…...
数字化生态平台:关键功能全解析
在当今数字化浪潮中,数字化生态平台正发挥着举足轻重的作用。那么,它的关键功能究竟有哪些呢?让我们一探究竟。 首先,数据集成与管理是数字化生态平台的重要功能之一。它能够从多个来源收集数据,包括企业内部系统、外…...
c 到 c++ 过渡
c基础入门 #include <iostream> #include <cmath> #include <unistd.h> // 总结:按照书写依次往下,先看 iostream 再看 cxxx 最后 xxx.husing namespace std; // 本质:自定义作用域,作用域就在该命名空间内部。…...
[linux驱动开发--环境搭建] qemu-9.1+linux-kernel-6.11
本文档模拟vexpress-a9开发板,作为铁头娃,要学就学最新的包 已经上传到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#二次开发入门)
如下图所示,获取多个实体的最大包围盒,用红色线表示: 也可单独选圆的包围盒 部分代码如下: using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using A…...
【Clickhouse 探秘】Clikchouse 有哪些表引擎?你都知道哪些?
👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…...
你好,C++并发世界
C并发编程的主要目的是任务隔离和提高性能 是的,C并发编程的主要目的是任务隔离和提高性能。具体来说,可以总结为以下几点: 任务隔离:通过并发编程,程序可以将不同的任务或计算分隔开,这样可以防止它们之间…...
windows10 安装 达梦数据库DM8
一. 前期工作 下载 https://www.dameng.com/list_103.html 通过百度网盘分享的文件:达梦数据库 链接:https://pan.baidu.com/s/1mJcT3UiwojeWIhXpAwh-RA 提取码:jyzi 点我: 想要 解压 双击iso文件 二. 安装步骤 1 .双击setup.ext安装 …...
ntp交叉编译 ntpdate时间同步
NTP(Network Time Protocol,网络时间协议)是一种用于在计算机系统之间同步时钟的协议,广泛覆盖网络环境中,确保网络设备和计算机上的时间保持一致。NTP 是基于 UDP 协议工作在123号端口上,能够在不同的网络条件下达到数千级别的精度同步时间。 实现windows上位机作为ntp服…...
微服务实战系列之玩转Docker(十六)
导览 前言Q:基于容器云如何实现高可用的配置中心一、etcd入门1. 简介2. 特点 二、etcd实践1. 安装etcd镜像2. 创建etcd集群2.1 etcd-node12.2 etcd-node22.3 etcd-node3 3. 启动etcd集群 结语系列回顾 前言 Docker,一个宠儿,一个云原生领域的…...
Solana 代币 2022 — Transfer Hook
从零到英雄的 Solana 代币 2022 — Transfer Hook Token 2022 计划引入了几项令人兴奋的扩展,增强了铸造和代币账户的功能。在这些功能中,我个人最喜欢的是Transfer Hook (转账钩子) 。 想象时间 让我们戴上想象的帽子…...
网络爬虫中的反爬虫技术:突破限制,获取数据
,网络爬虫已成为获取大量网络数据的重要工具。然而,随着爬虫技术的发展,许多网站也开始采用各种反爬虫措施来保护自己的数据。作为爬虫开发者,我们需要不断更新我们的技术,以应对这些反爬虫措施。本文将详细介绍一些常…...
【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生成
前几篇文章介绍了路由的相关知识,包括原理,模板和约束。围绕的一个点就是URL,那么URL是如何生成的呢? 在 ASP.NET CORE应用程序中,使用了一个叫 LinkGenerator的链接生成器来生成URL的。 LinkGenerator是一个中间件组件…...
使用 Java 实现从搜索引擎批量下载图片
在进行一些数据收集、图像处理或研究工作时,我们可能需要从网络上批量下载高质量的图片。本文将介绍如何使用 Java 和 Jsoup 库,从搜索引擎中抓取图片,解析详情页并过滤出高质量图片。通过以下几个步骤,您可以自动化这个图片收集的…...
基于Matlab GUI的说话人识别测试平台
基于Matlab GUI的说话人识别测试平台 摘 要:为了克服在Matlab中语音处理工具箱的不足,设计出基于Matlab图形用户界面(GUI)的说话人识别测试平台。系统框架设计:特征参数采用美尔倒谱系数及差分美尔倒谱系数,…...
Leetcode 热题100之二叉树2
1.二叉树的层序遍历 思路分析:层序遍历是逐层从左到右访问二叉树的所有节点,通常可以使用广度优先搜索(BFS)来实现。我们可以使用一个队列(FIFO)来存储每一层的节点,并逐层访问。 初始化队列&a…...
<项目代码>YOLOv8 煤矸石识别<目标检测>
YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...
GA/T1400视图库平台EasyCVR视频分析设备平台微信H5小程序:智能视频监控的新篇章
GA/T1400视图库平台EasyCVR是一款综合性的视频管理工具,它兼容Windows、Linux(包括CentOS和Ubuntu)以及国产操作系统。这个平台不仅能够接入多种协议,还能将不同格式的视频数据统一转换为标准化的视频流,通过无需插件的…...
TC2526 低功耗原边反馈开关电源芯片
概述 TC2526 是一款低功耗原边反馈(PSR)开关电源芯片,其内部集成了大功率 BJT 管,适用于隔离型的高效低功耗便携式设备充电器应用。TC2526 采用独特具有恒流恒压功能的原边反馈控制技术,以及独特的轻载调频技术降低轻载…...
3分钟神奇恢复!让Windows 11 LTSC系统拥有完整Microsoft Store应用商店的终极秘籍
3分钟神奇恢复!让Windows 11 LTSC系统拥有完整Microsoft Store应用商店的终极秘籍 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否正…...
从CLIP到多模态:对比学习驱动的视觉-语言模型演进与实战
1. 对比学习:CLIP的基石与多模态革命 我第一次接触CLIP模型是在2021年初,当时OpenAI发布的这篇论文彻底颠覆了我对视觉模型训练方式的认知。传统计算机视觉任务总是离不开人工标注的海量数据,而CLIP却另辟蹊径,用自然语言作为监督…...
SteamAutoCrack终极指南:5步掌握游戏DRM自动移除技术
SteamAutoCrack终极指南:5步掌握游戏DRM自动移除技术 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否曾为Steam游戏的DRM保护而烦恼?每次运行游戏都需要启…...
3步掌握城通网盘解析工具:彻底告别30秒等待与限速困扰
3步掌握城通网盘解析工具:彻底告别30秒等待与限速困扰 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘下载的漫长等待和蜗牛般的速度而烦恼吗?城通网盘作为国内广…...
Arm硬件跟踪技术在嵌入式调试中的应用与优化
1. Arm Development Studio 跟踪技术深度解析在嵌入式系统开发领域,调试实时性要求高的系统一直是个棘手问题。传统断点调试会中断程序执行流,而日志输出又可能影响系统时序。Arm Development Studio提供的硬件跟踪技术完美解决了这一痛点——它能以纳秒…...
Claude Code 模型切换脚本 switch.sh 编写
背景 Claude code 使用不同模型,需要切换,之前手动切换重命名 setting.json 和环境变量修改,想着切换麻烦,编写个脚本吧,用 claude code 编写。基本流程是: 将 settings-model.json 复制为 settings-json。…...
Trae日志占用很大解决方法(Windows)Trae日志占用、Trae logs删除、Trae缓存清理、Trae占用C盘、Trae AppData 清理
Trae日志占用很大解决方法(Windows) 关键词:Trae日志占用、Trae logs删除、Trae缓存清理、Trae占用C盘、Trae AppData 清理最近清理电脑磁盘时,发现 C 盘莫名其妙少了十几个 G。作为长期写代码的人,我第一反应就是&…...
别再死记硬背了!用Python模拟D触发器与JK触发器波形,5分钟搞定时序逻辑难题
用Python动态模拟时序逻辑:D触发器与JK触发器的可视化实践 时序逻辑电路是数字系统设计的核心基础,但对于许多初学者而言,纯理论推导和手工绘制波形图往往令人望而生畏。本文将带你用Python构建一个直观的触发器模拟系统,通过代码…...
告别重复劳动:用这个Maya Mel脚本插件,5分钟搞定Arnold材质批量调节
告别重复劳动:Maya Mel脚本插件在Arnold材质批量调节中的高效应用 在三维动画和视觉特效制作中,材质调节往往是项目后期最耗时的环节之一。当导演皱着眉头说"这个场景的金属感太强了"或者客户反馈"整体色调需要更暖一些"时…...
