CC2530 zigbee RS485通讯

原创 2016年08月29日 16:27:49

 通讯是RS485,之前代码在115200波特率下能正常工作,后来改成9600居然异常。实测数据,是发送不完整,甚至只发送了一个字节的错误数据。

分析原因,是RS485发送接收硬件切换脚的使能,没有等到发送完成就切换了。原来由于速度快等待时间短。

串口收发用的是中断,这里只描述发送。

    发送函数:  P0_1 = 1;
      HalUARTWrite(0,buf,len);

1、 _hal_uart_isr.c 中, 

  if (isrCfg.txHead == isrCfg.txTail)
  {
    IEN2 &= ~UTXxIE;
    isrCfg.txMT = 1;
  },保持不变,原来的115200时,在中断函数里加了延时和RS485脚的切换,但9600时间长了,不合适加在中断里。

2、MT_UART.C中,串口初始化的回调函数里,增加:

  if(event &HAL_UART_TX_EMPTY){
     event &=(~HAL_UART_TX_EMPTY);
  //    P0_1 = 0;
    osal_start_timerEx(SampleApp_TaskID,SEND_TIME_RS485_EVENT,SEND_TIME_RS485MAX); 
  },其实我想在这个函数中直接将RS485使能脚改为接收,但还是会出现最后一个字节发送不完整。因此,增加了延时使能的串口事件,不在此直接延时等待。

3、SanmpleApp.c中,uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )函数里,增加:

  if ( events & SEND_TIME_RS485_EVENT )
  {
    P0_1 = 0;
    return (events ^ SEND_TIME_RS485_EVENT);
  } 

至此,整个发送完成。SEND_TIME_RS485MAX经调试,2毫秒即可,推算,发送完成标志置位,还有一个字节没有传输完,并且传输完后还需要稳定时间,9600发送完后1毫秒多点。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ZigBee研究之旅(三)---CC2530的电源管理模块

CC2530电源管理模块 (CC2530_datasheet.pdf节选) ******************************************************...

基于CC2530的ZigBee转以太网网关的设计与实现

ZigBee是一种低成本,低功耗的近距离无线组网通讯技术,在智能家居、智能楼宇、工业监控等领域均有广泛应用。基于ZigBee的智能家居应用,如图1所示,用户在家庭中安装一个主控中心(ZigBee网关)...

TI ZigBee FAQ 常见问题解答 CC2530低功耗完成

TI ZigBee FAQ 常见问题解答 作者 VV  发表于 2014-11-23 22:40 榜眼40451分 1,TI的ZigBee...

zigbee网关 CC2530 zstack用手机控制1602显示

在zigbee工程里面ZigbeeGateWay.h增加一个CLUSTERID #define ZIGBEEGATEWAY_LCD_UPDATE_CLUSTERID 9 这样CLUSTERID的...

物联网|无线传感器网络|IEEE 802.15.4|ZigBee|CC2530|Z-Stack

物联网 无线传感器网络WSN 实现 协议栈 IEEE 802154 内容 特点 ZigBee 协议 体系结构组成 相关协议术语 设备类型Device Types Coordinator功能 CC253...

zigbee网关 zstack CC2530添加iic温度传感器lm75a

lm75a已经裸机驱动起来,下一步准备添加在zstack中zigbee网关 cc2530裸机驱动温度传感器LM75A 把iic.c, iic.h, lm75a.c, lm75a.h拷贝到zigbeeG...

ZigBee_CC2530_06H_中断的使用

CC2530的中断系统是为了让CPU对内部或外部的突发事件及时地做出响应,并执行相应的终端程序。中断由中断源引起,中断源由相应的寄存器来控制。当需要使用中断时,需配置相应的中断寄存器来开启中断,当终端...

ZigBee_CC2530_0BH_动态切换PANID

void Change_PanId( uint16 new_panid ) { uint16 pan_id = new_panid; uint8 extenPanId[8]; //获取本...

cc2530实验小项目-循环控制LED灯 (基于ZigBee协议)

cc2530关于如何循环控制LED灯的思路和源代码!

zigbee网关 CC2530 zstack用手机控制12864(支持汉字)显示

参考zigbee网关 CC2530 zstack用手机控制1602显示程序,在1602的工程基础上修改 添加12864驱动文件,首先将原先的1602的驱动移除掉,将zigbee网关 cc2530...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CC2530 zigbee RS485通讯
举报原因:
原因补充:

(最多只允许输入30个字)