微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > zigbee串口

zigbee串口

时间:10-02 整理:3721RD 点击:
为什么我在使用z-stack协议栈的时候,连续两次调用HalUARTWrite()向电脑发送数据。为什么第二次发送的数据总是收不到,起先认为是中间没有延时,中间延时了10ms还是不行,为什么啊。

首先我想说问题描述不清楚,输入条件不太全
是使用z-stack吗,默认的配置吗,UART工作在pollDMA模式还是中断模式
其次是否有低功耗处理等等

你的接收ok吗,是否有问题。原则上来说,配置好UART之后,要发送多少数据都是没啥问题的,前提是没啥冲突
HalUARTWrite这个函数也只不过是对底层函数或者说寄存器的一些封装而已,都是那么个发送方式

我想问你这个函数HalUARTWrite(xx,xx,xx)

比如发送字符串"hello eeworld"
通过调用 两次分别发送 "hello" 和"eeworld" 或者一次发送"hello eeworld"有差别吗,都发送不完整还是怎样,这样便于定位问题

还是你仅仅发送了一个字符。。。

一些参考链接给你
http://www.deyisupport.com/quest ... /f/104/t/59665.aspx

http://www.deyisupport.com/quest ... /140491.aspx#140491

链接中比较重要的可能原因是:

  1. 开启了POWER_SAVING,但是只要一次一包包地发,是没问题的;
  2. 但连着发2包就有问题了,连着3,4,5包好像又没问题。追踪过dmaCfg这个结构体,需要发的数据包也都放到缓存里了

复制代码


您按照我前面的说法先验证一下 "hello eeworld"的两种发送模式,再来确认一下,谢谢您

我用的是网峰教程上的步骤来的,首先是用 MT_UartInit();初始化串口,然后用MT_UartRegisterTaskID(task_id);注册串口,再使用连续发送HalUARTWrite(0,"Hello World\n",12); HalUARTWrite(0,"Hello zigbee\n",13);后面的内容hello zigbee 就无法显示了,再就是我如果把这两句话放在一起用一个发送函数发送的话,是没有问题的。内容都可以显示。

没有好好看我的回答啊,

开启了POWER_SAVING,但是只要一次一包包地发,是没问题的;
但连着发2包就有问题了,连着3,4,5包好像又没问题。追踪过dmaCfg这个结构体,需要发的数据包也都放到缓存里了

我提到的连接都看了吗,无所谓你什么教程,要用心搞。。。

用的是哪款串口调试助手?有没试过把接收到的字符串转成hex格式显示看看?是否有在预编译选项中将那几个有关MT的选项x掉?

我打开串口助手,直接找不到串口

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

网站地图

Top