/*****************************************
//by 虚幻代码
//说明:从CC2530 上通过串口不断发送字符串到PC 端,实验使用UART0,波特率为19200
*****************************************/#include <iocc2530.h>
#include <string.h>#define uint unsigned int
#define uchar unsigned char//定义LED
#define rled P1_0
#define gled P1_1//函数声明
void delay(uint);
void uarttx_send_string(char *data,int len);
//延迟函数
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 uarttx_send_string(char *data,int len)
{
int j;
for(j=0;j<len;j++)
{
U0DBUF=*data++;
while(UTX0IF==0);
UTX0IF=0;
}
}char txdata[25]="start transmit:\n";
//主函数
void main(void)
{
//初始化LED
P1DIR=0X03;
rled=1;
gled=1;
//初始化串口
CLKCONCMD &=0XBF;//系统时钟为32MHZ
while(CLKCONSTA & 0X40);//等待时钟稳定
CLKCONCMD &=0XF8;//主时钟频率为32MHZ
PERCFG &=0XFE;//设USART0的ALT 1
P0SEL |=0X3C;//P0口2、3、4、5做外设
P2DIR &=0X3F;//P0外设优先级USART0最高
U0CSR |=0X80;//设USART0 工作方式为 UART
U0GCR |=9;
U0BAUD |=59;//设波特率
UTX0IF=0;//UART0 TX中断标志位清0
//传送字符串
uarttx_send_string(txdata,25);
uint i;
for(i=0;i<30;i++)
txdata[i]=' ';
strcpy(txdata,"hello,cc2530\n");
while(1)
{
uarttx_send_string(txdata,sizeof("hello,cc2530\n"));
delay(60000);
gled=!gled;
delay(60000);
delay(60000);
}
}
联系客服