首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于MC13213(MC9SGB/GT60)的Smac4.1c 的基本功能应用项目不断更新中。。

试着把你的main文件中的变量改成全局变量,不要放在函数内作为局部变量
上述问题会不会是由于中断向量表没有添加造成的呢?中断向量应该如何正确设置
基本功能实现了,我能在MC1321x-SRB开发板上发包了,不过还有点问题。
发端似乎只能发送一次包,不能持续发包,收端也只能收到一次正确的包。
我怀疑是发包的指针的问题?MCPSDataRequest(&gsTxPacket);发送后没有回到原先的gsTxPacket[0];
希望哪个大虾给我点提示,应该如何改进,或是规避这个软件问题?
switch (gi8AppStatus) {

case IDLE_STATE:
gi8AppStatus= TRANSMIT_DATA;
break;



case WAITING_FOR_ACK:
gi8AppStatus= IDLE_STATE;

MLMERXEnableRequest(&gsRxPacket, 0);
LOW_POWER_WHILE();
LED2^=1;
break;

case TRANSMIT_DATA:
//gi8AppStatus= IDLE_STATE;


gau8TxDataBuffer[0] = 1;
gau8TxDataBuffer[1] = 1;
gau8TxDataBuffer[2] = 1;
gau8TxDataBuffer[3] = 1;
gau8TxDataBuffer[4] = 1;
gau8TxDataBuffer[5] = 1;
gau8TxDataBuffer[6] = '\0'; /* Sending String */
gsTxPacket.u8DataLength = 7;

MCPSDataRequest(&gsTxPacket);
gi8AppStatus = WAITING_FOR_ACK;

LED1^=1;


break;


case TIMEOUT_STATE:
if (u8RetryNo < RETRY_COUNT)
{
gi8AppStatus= TRANSMIT_DATA; /* Retransmit. */
switch (u8RetryNo % 4)
{
case 0x00:
LED1 = 0;
LED2 = 1;
LED3 = 1;
LED4 = 1;
u8RetryNo++;
break;
case 0x01:
LED1 = 1;
LED2 = 0;
LED3 = 1;
LED4 = 1;
u8RetryNo++;
break;
case 0x02:
LED1 = 1;
LED2 = 1;
LED3 = 0;
LED4 = 1;
u8RetryNo++;
break;
case 0x03:
LED1 = 1;
LED2 = 1;
LED3 = 1;
LED4 = 0;
u8RetryNo++;
break;
}
} else
{
/* Give up on packet. */

LED1 = 1;
LED2 = 1;
LED3 = 1;
LED4 = 1;
gi8AppStatus= IDLE_STATE;
u8RetryNo = 0;
}
}
返回列表