Zigbee模块是DL-30 淘宝买的 芯片是(cc2530) 两个模块通信 正常。
板子是IMX1052芯片 和上位机的通信 无论是接收还是发送 都是正常。
zigbee模块加到IMX1052芯片上后 与上位机通信 板子可以向上位机发送信息 上位机显示 正常。
但 上位机发送数据给zigbee 无效。单步调试发现板子接收缓存区好像收不到信号? 但板子直接用ttl转串口 完全可以。
代码如下
aw_local void __serial_task (void *p_arg)
{
#define TEST_SERIAL_NUM COM0
char Readbuf[80];
char Writebuf[80] = "Hello,Enter Serial INT Mode:\r\n";
int len = 0;
int i = 0;
//设置串口为中断模式
aw_serial_ioctl(TEST_SERIAL_NUM, SIO_MODE_SET, (void )SIO_MODE_INT);
//设置串口波特率 数据位校验位
aw_serial_ioctl(TEST_SERIAL_NUM, SIO_BAUD_SET, (void *)115200);
aw_serial_ioctl(TEST_SERIAL_NUM, SIO_HW_OPTS_SET, (void *)(CS8 | CLOCAL | CREAD));
//设置串口接收超时
aw_serial_ioctl(TEST_SERIAL_NUM, AW_TIOCRDTIMEOUT, (void *)200);
//打印两句话
aw_serial_write(TEST_SERIAL_NUM, "Hello, uart test:\r\n", 19);
aw_serial_write(TEST_SERIAL_NUM, "start\r\n", 7);
for(;;)
{
//接收读取缓存区数据
len = aw_serial_read(TEST_SERIAL_NUM, Readbuf, sizeof(Readbuf));
if (len > 0)
{
aw_serial_write(TEST_SERIAL_NUM, Readbuf, len);
aw_serial_write(TEST_SERIAL_NUM, "\r\n", 2);
//接收到0000 退出循环
if (strncmp(Readbuf, "0000", 4) == 0)
{
break;
}
}
// aw_serial_write(TEST_SERIAL_NUM, "work is run\r\n", 13);
}
aw_serial_write(TEST_SERIAL_NUM, "work is over\r\n", 14);
}
void demo_serial_entry (void)
{
/ 定义任务实体,分配栈空间大小为1024 */
AW_TASK_DECL_STATIC(task0, 1024);
AW_TASK_INIT( task0, /* 定义的任务实体 */
"task0", /* 任务名 */
2, /* 任务优先级 */
1024, /* 任务栈大小 */
__serial_task, /* 任务的入口函数 */
NULL); /* 传递给任务的参数 */
AW_TASK_STARTUP(task0); /* 启动任务 */
}
有大佬知道原因或者遇到过类似问题吗? 求解答,在线等,急!!!!