|
|
#include <ioCC2530.h>
#include <string.h>
#define uint unsigned int
#define uchar unsigned char
//定義控制燈的端口
#define LED1 P1_0
#define LED2 P1_1
//函數(shù)聲明
void Delay(uint);
void initUARTtest(void);
void UartTX_Send_String(char *Data,int len);
void InitClock(void)
{
//選擇32MHz晶振
CLKCONCMD &= ~0x40;
//等待晶振穩(wěn)定
while(!(SLEEPSTA & 0x40));
//TICHSPD128分頻,CLKSPD不分頻
CLKCONCMD &= ~0x47;
//關(guān)閉不用的RC振蕩器
SLEEPCMD |= 0x04;
}
void initUARTtest(void)
{
//初始化時(shí)鐘
InitClock();
//使用串口備用位置1 P0口
PERCFG = 0x00;
//P0用作串口
P0SEL = 0x3c;
//選擇串口0優(yōu)先作為串口
P2DIR &= ~0XC0;
//UART方式
U0CSR |= 0x80;
//波特率baud_e的選擇
U0GCR |= 10;
//波特率設(shè)為57600
U0BAUD |= 216;
//串口0發(fā)送中斷標(biāo)志清零
UTX0IF = 0;
}
void UartTX_Send_String(char *Data,int len)
{
int j;
for(j=0;j<len;j++)
{
U0DBUF = *Data++;
while(UTX0IF == 0);
UTX0IF = 0;
}
}
/*延時(shí)函數(shù)*/
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++);
}
/*main()函數(shù)*/
void main(void)
{
uchar i;
char Txdata[30]=" Qingdao Donghe Xinxi Jishu ";
//P1 輸出控制LED
P1DIR = 0x03;
//開(kāi)LED1
LED1 = 0;
//關(guān)LED2
LED2 = 1;
//串口初始化
initUARTtest();
//串口發(fā)送Qingdao Donghe Xinxi Jishu
UartTX_Send_String(Txdata,29);
//清空Txdata
for(i=0;i<30;i++)Txdata[i]=' ';
//將UART0 TX test賦給Txdata;
strcpy(Txdata,"123");
while(1)
{
//串口發(fā)送數(shù)據(jù)
UartTX_Send_String(Txdata,sizeof("123"));
//延時(shí)
Delay(50000);
Delay(50000);
Delay(50000);
LED1 = ~LED1;
LED2 = ~LED2;
}
}
|
|