[讨论] zstack-CC253002.3.0如何同时使用两个串口?我试过了,不行!

panxm916   2012-4-16 23:35 楼主
我在编译选项中,定义ZTOOL_P1和ZAPP_P2。默认串口0使用DMA方式,串口1使用中断方式。但发现有两个函数根本就没有实现,查遍了整个工程文件也没有找到。这两个函数分别是_hal_uart.c中的HalUARTInitISR(void)函数和HalUARTPoll(void)。我个人认为这个协议栈默认根本就没有实现这两个函数。也就是说串口不能使用中断法,只能用DMA法。如果要同时使用两个串口的话必须解决两个问题:1)自己实现上面两个函数;2)为第二个串口再分配一对接收缓冲区。
而且还有两个问题:1)MT_UART_DEFAULT_PORT永远只有一个,如果要同时使用两个串口。这里要作出相应的更改;2)能不能同时都使用ZTOOL方式,即同时定义ZTOOL_P1和ZTOOL_P2。如果不行的话,那么只能分别使用不同的回调函数。一个使用MT_UartProcessZToolData ( uint8 port, uint8 event ),而另一个使用MT_UartProcessZAppData ( uint8 port, uint8 event )函数。2)这里对有人提过了关于串口使用问题提出点自己不同的意见,如果只有一个端口需要接收串口数据。那么MT_UartInit(); MT_UartRegisterTaskID(task_id);能够在某个任务初始化函数被调用。如果有多个任务要接收串口消息,那么不能这样做。除非用其中一个任务做中介,转发串口数据。初学ZIGBEE的一点想法,请大侠们提出宝贵意见。现在同时使用两个串口的问题并没有解决,期待高手出现!

回复评论 (3)

2007协议栈使用uart1修改步骤(SampleApp为例)

 

[ 本帖最后由 ljt8015 于 2012-4-17 09:41 编辑 ]
点赞  2012-4-17 09:36

这是使用中断方式需要修改的吗?如果两个串口一起用应该怎么改?

点赞  2012-4-17 15:23
楼主问题解决了吗?求分享具体实现啊!!!
点赞  2016-4-27 11:53
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复