当前位置:文档之家› cc2530串口UART0通信实验(20200627130016)

cc2530串口UART0通信实验(20200627130016)

/*********************
头文件*************************************************/ #include <ioCC2530.h>
#include <string.h>
/********************* 宏定义*************************************************/ #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<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 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<len;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;
}
******************* 结束***********************************************。

相关主题