新人新手求一个详细一点的cc2541有协议栈的uart串口例子
基于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));
}
}
我是新手,请大家指导!谢谢
http://www.ti.com/lit/sw/swrc257/swrc257.zip这个链接里有UART的example
你好,谢谢你,有一个问题想请教你,就是我按我上面粘贴的那个程序实现判断如果在串口接收到的数据是123的话就在pc串口助手上显示这个数,如果不是就显示error!!可是运行之后可以实现了,但是很不稳定,如下Viki Shi
http://www.ti.com/lit/sw/swrc257/swrc257.zip这个链接里有UART的example
11:50:20.991 123
11:56:51.141 123
11:56:51.880 ERROR!!ERROR!!
11:56:52.638 ERROR!!ERROR!!
11:56:53.327 ERROR!!ERROR!!
11:56:54.045 ERROR!!ERROR!!
11:56:54.695 ERROR!!ERROR!!
11:56:55.425 ERROR!!ERROR!!
11:56:56.202 ERROR!!ERROR!!
11:56:57.443 ERROR!!ERROR!!
11:56:58.644 ERROR!!ERROR!!
11:56:59.422 ERROR!!
11:57:01.441 ERROR!!ERROR!!
11:57:02.523 ERROR!!ERROR!!
11:57:03.458 123
还请您指教,谢谢!
这个问题暂时解决了,但是我不知道原因,如下
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)); //这句不行
}
}
}
请教各位用标注了的这句就会出现很严重的数据丢失,这是为什么呢?