ZigBee/CC2530
发送数据
发送字符
void Send_Byte(unsigned char content)
{
U0DBUF = content;
while(UTX0IF == 0);
UTX0IF = 0;
}
发送字符串
void Send_String(unsigned char *content)
{
while(*content != '\0')
{
Send_Byte(*content++);
}
}
接收数据
接收字符数据
#pragma vector = URX0_VECTOR
__interrupt void URX0_ISR(void)
{
if(U0DBUF == 0xA1) P1_0 = !P1_0;
}
接收字符串数据
unsigned char usart_rx_data_buffer[16];
unsigned char usart_buffer = 0;
int usart_rx_index = 0, utx0if = 0;
#pragma vector = URX0_VECTOR
__interrupt void URX0_ISR(){
usart_buffer = U0DBUF;
utx0if = 1;
}
void ClearData(){
usart_rx_index = 0;
memset(usart_rx_data_buffer, 0, sizeof(usart_rx_data_buffer));
}
void main(void)
{
halBoardInit();
ConfigRf_Init();
while(1)
{
if(utx0if){
utx0if = 0;
usart_rx_data_buffer[usart_rx_index++] = usart_buffer;
usart_buffer = 0;
if(strcmp("LampToggle@", (const char *)usart_rx_data_buffer) == 0) {
ClearData();
}
if(usart_rx_data_buffer[usart_rx_index - 1] == '@') ClearData();
}
}
}