基于1.3和1.4的协议栈
主要是自己根据网络上的一些例子可以实现协议栈下的串口数据的收发,但是我想实现的是在cc2541里面可以判断从串口接收到的数据是不是我要的,如果是就再显示到pc或mcu上,我用下面程序怎么就实现不了,请问大家该如何做,是缺少什么呢?
static void rxCB(uint8 port,uint8 events)
{
unsigned char RxBuf[128];
if((events & HAL_UART_TX_EMPTY)||( events & HAL_UART_TX_FULL )) // 发送区满或者空
{
return;
}
NPI_ReadTransport( RxBuf, sizeof(RxBuf) );
if(osal_memcmp(RxBuf,"TESTUART",sizeof(RxBuf)))
{
NPI_WriteTransport(RxBuf,sizeof(RxBuf));
osal_memset(RxBuf,0,sizeof(RxBuf));
}
}
我是新手,请大家指导!谢谢
Viki Shi:
http://www.ti.com/lit/sw/swrc257/swrc257.zip这个链接里有UART的example
zulin wu:
回复 Viki Shi:
Viki Shi
http://www.ti.com/lit/sw/swrc257/swrc257.zip这个链接里有UART的example
zulin wu:
回复 zulin wu:
这个问题暂时解决了,但是我不知道原因,如下
static void rxCB(uint8 port,uint8 event){ (void)port;// uint16 temp; unsigned char rxBuf[128]; //HalUARTRead(0,uartbuf,sizeof("UartInit OK\n")); if(event&HAL_UART_RX_TIMEOUT) { temp=Hal_UART_RxBufLen( port ); if(temp>0) { HalUARTRead(0,rxBuf,temp); if(osal_memcmp(rxBuf,"UART OK?",temp)) { HalUARTWrite(0,"YES",sizeof("OKE")); //HalUARTWrite(0,rxBuf,sizeof(rxBuf)); //这句不行 } } }
请教各位用标注了的这句就会出现很严重的数据丢失,这是为什么呢?