标题:
实验-串口实验-zibgee
[打印本页]
作者:
xiaoyanyan
时间:
2018-11-2 19:12
标题:
实验-串口实验-zibgee
zigbee串口实验
单片机源程序如下:
#include<ioCC2530.h>
#include<string.h>
void initUART0(void);
void initLed(void);
#define uint unsigned int
#define uchar unsigned char
#define LED1 P1_0
#define LED2 P1_1
uchar temp;
char str1[50]="1:led1 on,2:led2 on,3:led1 off,4:led2 off\r\n";
void initUART0(void)
{
CLKCONCMD &= ~0x40;
while(CLKCONSTA & 0x40);
CLKCONCMD &= ~0x47;
PERCFG = 0x00;
P0SEL=0x3C;
P2DIR &= ~0xC0;
U0CSR |= 0x80;
U0GCR |=9;
U0BAUD |= 59;
UTX0IF =1;
U0CSR |= 0x40;
IEN0 =0x84;
}
void UartTX_Send_String(char *data,int len)
{
uint j;
for(j=0;j<len;j++)
{
U0DBUF=*data++;
while(UTX0IF==0);
UTX0IF=0;
}
}
void initLed(void)
{
P1DIR |= 0x03;
LED1=1;
LED2=1;
}
void main()
{
initLed();
initUART0();
char receive_buf[2];
uchar counter=0;
uchar RT_flag=1;
UartTX_Send_String(str1,50);
while(1)
{
if(RT_flag==1)
{
if(temp!=0)
{
if((temp!='\r') &&(counter<2) )
{
receive_buf[counter++]=temp;
}
else{
RT_flag=3;
}
if(counter==3)
{
RT_flag=3;
}
temp=0;
}
}
if(RT_flag==3)
{
U0CSR &=~0x40;
receive_buf[1]='\0';
if(receive_buf[0]=='1')
{
LED1=0;
UartTX_Send_String("LED1 on\n",8);
}
if(receive_buf[0]=='2')
{
LED2=0;
UartTX_Send_String("LED2 on\n",8);
}
if(receive_buf[0]=='3')
{
LED1=1;
UartTX_Send_String("LED1 off\n",8);
}
if(receive_buf[0]=='4')
{
LED2=1;
UartTX_Send_String("LED2 off\n",8);
}
U0CSR |= 0x40;
RT_flag=1;
counter=0;
}
}
}
#pragma vector=URX0_VECTOR
__interrupt void UART0_ISR(void)
{
URX0IF=0;
temp=U0DBUF;
}
复制代码
所有资料51hei提供下载:
UART.rar
(19.07 KB, 下载次数: 6)
2018-11-2 19:11 上传
点击文件名下载附件
串口zigbee
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1