微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZigBee串口接收串口指令频繁的时候会死机

ZigBee串口接收串口指令频繁的时候会死机

时间:10-02 整理:3721RD 点击:

问题如题,串口处理函数我改了,改成不需要特定格式就发送到应用层,

void MT_UartProcessZToolData ( uint8 port, uint8 event )
{
uint8 flag = 0, i,j = 0;
uint8 buf[128] = "";
(void)event;

while(Hal_UART_RxBufLen(port))
{
HalUARTRead(port, &buf[j], 1);
j++;
flag = 1;
}

if(flag == 1)
{
pMsg = (mtOSALSerialData_t *) osal_msg_allocate(sizeof(mtOSALSerialData_t)+j+1);
// pMsg->hdr.event = CMD_SERIAL_MSG;//原来的送到eventprogress的事件号

//8.13 by sure
if(port==0)
pMsg->hdr.event = CMD_SERIAL_MSG;
else if(port==1)
pMsg->hdr.event = CMD_SERIAL_MSG_1;

pMsg->msg = (uint8*)(pMsg+1);
pMsg->msg[0] = j;
for(i =0; i < j; i++)
{
pMsg->msg[i+1] = buf[i];

}
osal_msg_send(App_TaskID, (byte *)pMsg );
osal_msg_deallocate((uint8 *)pMsg);
}}

这样串口每发一条命令过来,(协调器)就发该指令到对应的设备,但是如果串口指令发送的太快,协调器不再向空中发送指令,但过一阵子又可以发送了,是不是串口缓冲不过来,我的指令是10个字节一条的

是有这个可能,CC2530处理能力有限,串口发送太频繁可能会造成死机,可以在程序里加段延时

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top