
CC2430串口收发与无线发送的问题。
求高手指导,CC2430串口收发与无线发送的寄存器是不是有冲突啊?在做一个东西,需要2430从串口读数据然后通过无线发送出去,一直没法实现,串口读与无线发只能实现其中一个...
求高手指导,CC2430串口收发与无线发送的寄存器是不是有冲突啊?在做一个东西,需要2430从串口读数据然后通过无线发送出去,一直没法实现,串口读与无线发只能实现其中一个功能,我没有用协议栈。求高手指导一下,不胜感激。
你这个问题解决了嘛?可以将代码发给我看看嘛?467168066@qq.com 展开
你这个问题解决了嘛?可以将代码发给我看看嘛?467168066@qq.com 展开
3个回答
展开全部
自己写个串口回调函数 然后使用自己的串口接收发送函数, 向外发我当时用的指定地址, 但是输入输出簇我记得改成了 COLLECTOR_CMD_ID了记住这个宏定义的值 头文件那也要改 你具体网上搜下吧 这方面不多 但是也有些 给你个网址吧http://blog.csdn.net/logiclimit/article/details/5691424
写的很好但是 要自己改一些 否则不会有结果 但有很好的参考价值。。。下面是我当时用的回调函数 一朋友给的 具体的不记得了 我没有源码了 好久不搞zigbee了
void SampleApp_Serial_Control(uint8 port,uint8 event)
{
uint8 *buf, len;
if (!otaBuf)
{
if ( !(buf = osal_mem_alloc( SERIAL_PORT_RX_CNT )) )
{
return;
}
}
len = HalUARTRead( port, buf, SERIAL_PORT_RX_CNT );
if ( !len ) // Length is not expected to ever be zero.
{
osal_mem_free( buf );
return;
}
otaBuf = buf;
otaLen = len;
//调试时使用
//HalUARTWrite(HAL_UART_PORT_0,otaBuf,otaLen);
osal_set_event( sapi_TaskID, SERIAL_PORT_MSG_RCV_EVT);
}
写的很好但是 要自己改一些 否则不会有结果 但有很好的参考价值。。。下面是我当时用的回调函数 一朋友给的 具体的不记得了 我没有源码了 好久不搞zigbee了
void SampleApp_Serial_Control(uint8 port,uint8 event)
{
uint8 *buf, len;
if (!otaBuf)
{
if ( !(buf = osal_mem_alloc( SERIAL_PORT_RX_CNT )) )
{
return;
}
}
len = HalUARTRead( port, buf, SERIAL_PORT_RX_CNT );
if ( !len ) // Length is not expected to ever be zero.
{
osal_mem_free( buf );
return;
}
otaBuf = buf;
otaLen = len;
//调试时使用
//HalUARTWrite(HAL_UART_PORT_0,otaBuf,otaLen);
osal_set_event( sapi_TaskID, SERIAL_PORT_MSG_RCV_EVT);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题我没有解决。不过使用协议栈就可以了,使用协议栈就不会有这种问题。
追问
首先谢谢您的回复,再请问,你后来没有用协议栈去做?还是用其它方法实现了此功能呢?
追答
不客气,互相学习。上半年由于时间紧,所以这个问题放弃了,最终没有解决,我有个同学也是同样的问题,2个月的时间也没有解决,不知道是什么原因。我后来用CC2530的协议栈做的,没有出现问题。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实用不用协议栈都没有关系,主要是你的串口接收程序要采用中断查询的方式,当检查到串口有数据要接收的时候,就去接收,然后再发出去,不知道楼主现在有没有把问题解决,如果没有解决,我可以发一个串口中断接收代码给你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询