首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CC2530基础实验之串口控制LED灯

CC2530基础实验之串口控制LED灯

作者头像
w候人兮猗
发布2020-07-01 17:33:28
1.3K0
发布2020-07-01 17:33:28
举报
/**************************************************************
 * 文件名称:uart2.c
 * 功    能:PC机控制发光二极管亮灭
*************************************************************/
#include "ioCC2530.h"
#include <string.h>
//定义led灯端口
#define LED1 P1_0     // P1_0定义为P1_0
#define LED2 P1_1     // P1_0定义为P1_1
#define JD P2_0
#define on 1
#define off 0

#define uint unsigned int
#define uchar unsigned char
#define DATABUFF_SIZE  3  //数据缓冲区大小

uchar  buff_RxDat[DATABUFF_SIZE+1]; //数据缓冲区
uchar  uIndex = 0;  //数据缓冲区的下标
/***************************************************************
 * 函数名称:InitUART0
 * 功    能:UART0初始化
 * 入口参数:
 * 出口参数:无
 * 返 回 值:无
***************************************************************/
void initUART0(void)
{
    PERCFG = 0x00;  //位置 1 P0 口
    P0SEL = 0x3c;       //P0用作串口, P0.2、P0.3作为串口RX、TX
    U0BAUD = 216;
    U0GCR = 10;
    U0CSR |= 0x80;  // UART模式
    U0UCR |= 0x80;  // 进行USART清除,并设置数据格式为默认值
    URX0IF = 0;     // 清零UART0 RX中断标志
    U0CSR |= 0X40;  //允许接收
    EA = 1;             //使能全局中断
}

/***************************************************************
* 函数名称:receive_handler
* 功    能:接收数据后处理
* 入口参数:无
* 出口参数:无
* 返 回 值:无
***************************************************************/
void receive_handler(void)
{
    uchar onoff=0;  //LED灯的开关状态
    uchar c;
    c= U0DBUF;         // 读取接收到的字节
    if(c == 0xfa)
    {
      JD=on;
      LED1=on;
    }
    if(c==0xfb)
    {
      JD=off;
      LED1=off;  
    }

}
/***************************************************************
* 函数名称:main
* 功    能:main函数入口
***************************************************************/
void main(void)
{
    P1SEL &= ~0x03;     // 设置LED为普通IO口
    P1DIR |= 0x03 ;    // 设置LED为输出
    LED1 = 0;         //灭 LED
    LED2 = 0;
    P2DIR |=0x01;
    P2_0=0;

    CLKCONCMD &= 0x80;   //时钟速度设置为32MHz
    initUART0();  // UART0初始化
    while(1)
    {
      if(URX0IF)
      {
        URX0IF = 0;//清中断标志
        receive_handler();  //调用接收数据后处理函数
      }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年3月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档