zigbee串口接受发送流程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

zigbee串口接受发送流程
前面学会了如何使用串口,但是仅仅学会使用串口远远不够,这两天把串口相关代码又看了一遍,不能说是全部弄清楚,至少能够从总体把握了。

串口接受DMA模式:data--U0DBUF--DMA--rxBuf--(通过调用回调函数)HalUARTRead()读取rxBUf中的数据--设置事件发生标志--调用相关的处理函数
串口接收中断模式:data--U0DBUF-中断--rxBuf--(通过调用回调函数)--HalUARERead()读取rxBuf数据--设置事件发生标志--调用相关的处理函数
下面较为详细的说明以上两种方法:
中断:中断函数把U0DBUF数据放入rxBuf()存储空间去,大概每过200ms后调用polllsr()函数,得到未被读取的字节个数,然后返回HalUARTpoll()进行下一步处理。

如果触发以下三种事件:rxBuf()接收满,rxBuf接收超时,rxBuf()接收到预设值,则调用回调函数,读取数据。

其中回调函数完成以下事情读取缓冲区的数据,设置事件发生标志,特别注意如果mt中回调函数没有编译,则回调函数在应用层中,因此可以直接在应用层处理。

如果mt回调函数有编译则设置mt中的任务,调用其中的任务处理函数。

dma:主要区别就是将中断服务程序改为dma模式,其余一样。

(关于dma方式毛毛老师已经说的很清楚了,有需要的同学可以参考《Zstack中串口操作的深度解析dma(一》)
注意事项:对于大量的数据发送,当接受缓冲区的数据达到一定数量,将触发接收满,超时,达到预设值三个事件,通过硬件终止pc与串口的数据传送。

当数据取完后,再通过软件将硬件打开,继续传输数据。

还是有些细节没有弄明白,必须通过实验来验证。

欢迎各位来交流。

相关文档
最新文档