搜档网
当前位置:搜档网 › cc2530串口UART0通信实验(20200627130016)

cc2530串口UART0通信实验(20200627130016)

cc2530串口UART0通信实验(20200627130016)
cc2530串口UART0通信实验(20200627130016)

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

头文件*************************************************/ #include

#include

/********************* 宏定义*************************************************/ #define uint unsigned int

#define uchar unsigned char

// --------------- LED 控制端口------------------------------- //

#define GLED P1_0〃绿色LED定义

#define RLED P1_1〃红色LED定义

// --------------- 按键输入端口------------------------------- //

#define KEY1 P0_0

/********************* 全局变量**********************************************/ unsigned char Uart0_Rx;

unsigned char Text_Data[]=" 海舟物联网教育!\r\n";

/********************* 函数声明***********************************************/ void Delay(uint);

void Init_LED(void);

void Init_Uart0(void);

void Init_Sysclk(void);

void Uart0_TX_Data(unsigned char *Data,int len);

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

* 函数名称: void Delay(uint n)

* 函数功能: 软件延时函数

* 入口参数:

* 出口参数:

* 备注:

******************************************************************************/ void

Delay(uint n)

{

uint i;

for(i=0;i

for(i=0;i

for(i=0;i

for(i=0;i

for(i=0;i

'****************************************************************************

* 函数名称 : void Init_Uart0(void) *函数功能 : Uart0 初始化设置

* 入口参数 : *出口参数

****************************************************************************

// 位置 1 P0 口 // P0_2,P0_3 用作串口 // P0 优先作为 UART0 // UART 方式 // 波特率设为 9600bps // UART0 TX 中断标志初始置位 0 // 允许接收

// 开总中断,接收中断

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

* 函数名称 : void Uart0_TX_Data(unsigned char *Data,int len) *函数功能 : 串口 0 发送一组数据

* 入口参数 :

* 出口参数 :

* 备 注:

******************************************************************************/ void Uart0_TX_Data(unsigned char *Data,int len)

{

int j;

for(j=0;j

{

U0DBUF = *Data++;

while(UTX0IF == 0);

UTX0IF = 0;

}

}

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

* 函数名称 : void Init_Sysclk()

* 函数功能 : 设置系统时钟

* 入口参数 :

* 出口参数 :

* 备 注:

void Init_Uart0(void)

{

PERCFG = 0x00;

P0SEL = 0x3c;

P2DIR &= ~0XC0;

U0CSR |= 0x80;

U0GCR |= 8;

U0BAUD |= 59;

UTX0IF = 0;

U0CSR |= 0X40;

IEN0 |= 0x84;

**************************************************************************** }

void Init_Sysclk(void)

{

CLKCONCMD &= ~0x40;

while(CLKCONSTA & 0x40);

CLKCONCMD &= ~0x47;

} /****************************************************************************** *函数名称 : void Init_LED(void)

* 函数功能 : 初始化 LED

* 入口参数 :

* 出口参数 :

* 备 注:

******************************************************************************/ void Init_LED(void)

{

P1DIR = 0x03;

// P1.0 P1.1 设置为输出 RLED = 1;

//初始化LED 状态

GLED = 1;

} /****************************************************************************** * 函数名称 : void main(void)

* 函数功能 : 主函数

* 入口参数 :

* 出口参数 :

* 备 注:

******************************************************************************/ void main(void)

{

Init_Sysclk(); // 初始化系统时钟

Init_Uart0(); // 串口 0 设置 Init_LED(); // 初始化 LED

while(1)

{

Uart0_TX_Data(Text_Data,17);

Delay(50000);

Delay(50000);

Delay(50000);

// 设置系统时钟源为 32MHZ 晶振 // 等待晶振稳定 // 设置系统主时 32MHZ

'****************************************************************************

*函数名称: void UART0_ISR(void)

*函数功能: Uart0 中断服务子程序

* 入口参数:

* 出口参数:

* 备注:

****************************************************************************

#pragma vector = URX0_VECTOR

__interrupt void UART0_ISR(void)

{

URX0IF = 0; // 清中断标志

Uart0_Rx = U0DBUF;

}

******************* 结束***********************************************

相关主题