微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > bug反馈~!zigbee栈2.5.1a中SerialApp运行不了

bug反馈~!zigbee栈2.5.1a中SerialApp运行不了

时间:12-22 整理:3721RD 点击:

TI:

    你好,这几天调试串口,死活调不通,

受不了,参考贵公司的SerialApp,在IAR中运行发现串口也不通

说说我的情况与做的实验

1. 我的机器win7 x64 旗舰版,IAR 8.10.1,zigbee栈2.5.1a,跑我自己的程序,CC2530串口可以接收数据,但是不能输出数据(管脚处示波器没有波形),但是HalUARTWrite函数的返回值是对的,之后在代码中插入死循环,一直执行,串口的初始化,宏定义全部都是抄自SerialApp

    temp_len+= HalUARTWrite(SERIAL_APP_PORT, p, sizeof(ss);发现temp_len每次返回值都是对的,temp_len最大到128就不增长了,

2.在同样的机器,(win7 x64 旗舰版,IAR 8.10.1,zigbee栈2.5.1a),跑SerialApp,HalUARTWrite同样没法输出,插入同样的死循环,结果一样temp_len到128就不涨了,示波器上什么波形都没有

3.在VMware Workstation运行win xp 32位,IAR 7.51a,zigbee栈2.2.2-1.3.0,SerialApp完美运行,HalUARTWrite()函数执行时,示波器有波形,电脑上显示串口读到的值也对

4.在(win7 x64 旗舰版,IAR 8.10.1),没有zigbee环境,写了段小代码,运行成功,CC2530串口输出到电脑完全正确

//代码如下

void initUARTtest(void)
{

    CLKCONCMD &= ~0x40;            
    while(!(SLEEPSTA & 0x40));     
    CLKCONCMD &= ~0x47;           
    SLEEPCMD |= 0x04;       

    PERCFG = 0x00;              
    P0SEL = 0x3c;              

    U0CSR |= 0x80;              
    U0GCR |= 10;             
    U0BAUD |= 216;                //波特率设为57600
    UTX0IF = 1;

    U0CSR |= 0X40;                //允许接收
    IEN0 |= 0x84;                //开总中断,接收中断
}

void UartTX_Send_String(uchar *Data,int len)
{
  int j,k;
  for(j=0;j<len;j++)
  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
}

void main(void)
{int k;
initUARTtest();
while(1)
{UartTX_Send_String(Recdata,6);       
for(k=0;k<255;k++)
{Delay(255);
}}}

5.同样的代码放在(win7 x64 旗舰版,IAR 8.10.1,zigbee栈2.5.1a,),中单步调试,执行到语句  U0DBUF = *Data++;CC2530没有发出波形

6.多次重复试验4与5,发现试验4在执行到U0DBUF = *Data++,时候UTX0IF会变到1,而试验5在执行到U0DBUF = *Data++;时候UTX0IF不会变化,

补充试验   (win7 x64 旗舰版,IAR 8.10.1,跑zigbee栈2.2.2-1.3.0的SerialApp,同样是HalUARTWrite返回值正确,但是串口就是没有波形输出,编译的时候会有非常多的警告,

IAR 编译器的问题? 

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

网站地图

Top