编程开发 购物 网址 游戏 小说 歌词 地图 快照 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 开发 租车 短信 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
移动开发 架构设计 编程语言 互联网 开发经验 Web前端 开发总结
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
  编程开发知识库 -> 研发管理 -> 启航CC2530 -> 正文阅读
 

[研发管理]启航CC2530[第1页]


CC2530其实可以理解成一款单片机+无线模块
学习之前希望大家先去了解51单片机和加深一下C语言,这对学习这款芯片是很有帮助的,本教程是基于有一点模拟电路基础和C语言基础的玩家,不时也会推出一些基础的干货,大神登门请多多指教,当然大家如果有什么疑问的话可以私下联系虎牙小哥。
下面我们先复习一下单片机吧;
 

第一个学习教程:I/O端口
·学习之前我们先看看芯片手册,打开我们的芯片手册(中英文资料在我的论坛帖子里面可以下载,我用的是中文版的,毕竟英语水平一般般),大家可以先浏览一下,有个认知;
 

·玩转IO一般只用到三个常用的寄存器就好(看我们的芯片手册IO栏目里面有详细介绍)
*P0SEL/P1SEL(0:普通IO 口  1:第二功能)
*P0DIR/P1DIR(0:输入  1:输出  )
*P0INP/P1INP(0:上拉/下拉  1:三态  )
一般初始化流程:普通IO--->设置输入输出--->配置上拉/下拉/三态
例如:
P1SEL &= 0X01;    //功能选择---通用IO
P1DIR |= 0X01;    //方向设定---输出
P1INP &= ~0X01;   //输入模式选择---打开上拉/下拉
 
P0SEL &= 0X30;    //功能选择---通用IO
P0DIR &= ~0X30;    //方向设定---输入
P0INP &= ~0X30;   //输入模式选择---打开上拉/下拉
由于 CC2530 寄存器初始化时默认是:
P1SEL =0x00;
P1DIR =0x00;
P1INP =0X00;
所以我们可以简化我们的初始化指令:
P1DIR |= 0X01;    //方向设定---输出
P0DIR &= ~0X30;     //方向设定---输入
 
大家都有点意思了吧,下面我们来实战一下;学习之前先配置好开发环境,第一步安装IAR此处省略,大家可以看到IAR的初始界面(下图),点击project--->Create New Project

 

弹出如下的界面,我们选择默认的配置就可以了,点击OK。然后选择储存路径。


下面配置我们的开发环境,点击project--->Options(快捷键alt+F7),看到如下界面:
 

第一步:Greneral Options---Target
Device;选择我们的芯片型号---点击右边的超链接
打开文件夹Texas Instruments选择CC2530F256.i51,按下图设置
 

第二步:Linker---Config---Linker configuration file---Override default
打开文件夹Texas Instruments选择lnk51ew_CC2530F256.xcl,按下图设置
 

 
第三步:Debugger---SETUP---Driver,选择Texas Instruments
 

配置完成,点击OK;
 
学过51单片机的同学是不是觉得很熟悉,步骤还是差不多,先新建一个文件,保存为.c文件,在右击Files下的工程(就是IO-Debug---Add---Add“IO.c”
 

下面开始码程序吧,先回想一下前面看的芯片手册,看下面代码:
#include<ioCC2530.h> //添加我们芯片的头文件
#define led P1_0 //先宏定义下我们的IO,方便下面写代码
#define key_1 P0_4 //*宏定义#define A常量B
#define key_2 P0_5 //*字面意思就是用A标识常量B
 
/***函数声明,main函数在前面,我们必须在主函数前加入函数声明,不然调用会编译出错***/
void Led_init(void); //LED初始化函数
void Key_init(void); //按键初始化函数
void Delayms(unsigned int xms); //毫秒延时函数
 
void main(void) //main函数
{
  Led_init(); //初始化LED
  Key_init();   //初始化按键
  while(1) //while1)循环(在没有跳出语句的情况下,无限循环)
  {
    if(!key_1) //判断key_1有没有按下
    {
      Delayms(20); //消抖
      if(!key_1) //确定key_1有没有按下
      led = 0; //led点亮,P1_00
    }
    if(!key_2) //判断key_2有没有按下
    {
      Delayms(20); //消抖
      if(!key_2) //确定key_2有没有按下
      led = 1; //led灭,P1_01
    }
  }
  
}
 
/***********
LED初始化函数:初始化LED
无返回值
*/
void Led_init(void)
{
  P1SEL &= 0X01;    //功能选择---通用IO
  P1DIR |= 0X01;    //方向设定---输出
  P1INP &= ~0X01;   //输入模式选择---打开上拉/下拉
}
 
/***********
按键初始化函数:初始化按键
无返回值
*/
void Key_init(void)
{
  P0SEL &= 0X30;    //功能选择---通用IO
  P0DIR &= ~0X30;    //方向设定---输入
  P0INP &= ~0X30;   //输入模式选择---打开上拉/下拉
}
 
/***********
延时函数:延时xms
xunsigned int类型
无返回值
*/
void Delayms(unsigned int x)    
{
 unsigned int i,j;
 for(i=x;i>0;i--)
   for(j=587;j>0;j--);
}
 
这段代码还是挺容易啃的,大家肯得下吗?有疑问的可以联系虎牙小哥哦;
下面我们编译看看代码有没有错吧,第一次Compile的时候需要保存工作空间:
 

再点一次,没有错误也没有警告;
 

下面进入我们的仿真吧,我用的是网蜂科技的zigbee开发板,看图
 

 
连接我们的仿真器,马上开始实战吧。
 

点击Download and Debug,下载程序并仿真
 

进入仿真页面
 

效果(按下KEY_1,LED亮,按下KEY_2,LED灭)
 

 

我们看回代码吧,通过这次实验,大家基本上都会配置IO了吧,大家可以脑洞大开,按照技术手册去的更改两个init函数,然后玩出想要的效果,本次讲解就到这里了,后面会慢慢更新一些实验,让大家更好的体会!
  研发管理 最新文章
开始使用代码编辑器——Sublime Text 3
程序调试
别告诉我你会记笔记——工作中如何使用笔记
android wss 连接不上ejabberd服务器的处理
软件配置管理基线解释
软件配置管理中三个基线概念
伙伴系统之伙伴系统概述
C#之字符匹配
查看域名是否支持IPv6
你对Linux窗口管理程序Tmux了解吗
上一篇文章      下一篇文章      查看所有文章
加:2016-12-25 11:07:03  更:2016-12-25 11:07:34 
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年7日历
2018-7-19 0:40:40
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程开发知识库