微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 如何在zstack例子simpleApp中添加UART?(CC2530)

如何在zstack例子simpleApp中添加UART?(CC2530)

时间:10-02 整理:3721RD 点击:

在例子simpleApp中

SimpleCollector.c



void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData )
{
uint8 buf[32];
uint8 *pBuf;
uint8 tmpLen;
uint8 sensorReading;
if (command == SENSOR_REPORT_CMD_ID)
{
…………………………
#if defined( MT_TASK )
debug_str( (uint8 *)buf );
#endif
// can also write directly to uart //如果需要上传至计算机,可自行添加串口发送程序

}
}


【问题一】请问如何添加?

我看一个些文档说,debug_str( (uint8 *)buf );就是串口通信,但是我已经把MT_TASK预编译了,为什么不能在串口调试工具中显示?

【问题二】我曾经在一个TI的点对点测试中成功传输数据,代码如下:

/****************************************************************
初始化串口0函数
****************************************************************/
void initUART0(void)
{
PERCFG = 0x00;
P0SEL = 0x3c; //P0.2和P0.3用作串口
P2DIR &= ~0XC0;
U0CSR |= 0x80;

U0GCR |=0x0A;
U0BAUD |= 216; //波特率设为57600

UTX0IF = 1; //UART0 TX中断标志初始置位1
U0CSR |= 0X40; //串口中断接收允许
IEN0 |= 0x84; //开总中断,接收中断
}
/****************************************************************
串口发送字符串函数
****************************************************************/
void UartTX_Send_String(uchar *Data,int len)
{
int j;
for(j=0;j<len;j++)
{
U0DBUF = *Data++;
while(UTX0IF == 0);
UTX0IF = 0;
}
}

但是在zstack中就没有用了,可能是我移植 的方法不会吧,请问这与zstack中UART有什么区别吗?

十分感谢!

参考zstack中的serialApp

\ZStack-CC2530-2.5.x\Projects\zstack\Utilities\SerialApp

原来utilities中也有例子,我说怎么在Samples找不到,感谢阁下的提醒,我先研究下~

你好!我出现了和楼上相同的情况,我把自己写的UART加到协议栈里面的协调器程序中,usart1,用的是P0_4,P0_5口,只做发送数据功能,没有使用协议栈里面的uart,但是我进去之后,每次程序进行uart发送时,子节点就和协调失去联系,显示“Assoc  cnf  fail”,这是什么原因呢?难道协议栈里面不能自己写UART,只能用默认的?

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

网站地图

Top