我在使用串口接收中断读取NFC模块数据时,我想将NFC模块回传的状态指令存储于数组中。通过串口助手,NFC模块可以收到单片机发送的请求指令,同时会向MSP430单片机发送状态指令。但是数组中并没有相关数据,请各位指点迷津,感激不尽!代码如下:
/**********************************************************************
USART0 接收中断函数
***********************************************************************/
#pragma vector = USART0RX_VECTOR
__interrupt void Usart0_Rx(void)
{
IE1&=~URXIE0; //关闭串口中断使能
uint i=3;
uchar *pq0=value; //value[N_Data]={0xfe,0xfe,0xfe,0xf,...}
SendUart(pq0,N_Data); //发送数据请求指令
Add_UsData(RXBUF0); //接收NFC状态
while(P2IN==1) //有手机靠近NFC
{
i--;
if(aRxBuff[9]==0xE7)
{
TXBUF0 = (uchar)times0;
}
else
SendUart(pq0,20);
if(i==0)
break;
}
IE1|=URXIE0; // 使能USART0的接收中断
}
/**********************************************************************
功能:发送函数。采用查询方式。
PBuffer:指向发送数据缓冲区的指针
n_byte:发送的字节数
***********************************************************************/
void SendUart(uint *pBuffer,uint n_byte)
{
uint q0;
for(q0=0;q0<n_byte;q0++)
{
while((IFG1&UTXIFG0)==0); //判断是否发送完毕
TXBUF0=*pBuffer;
pBuffer++;
}
pBuffer=0;
}
/**********************************************************************
处理NFC状态数据
***********************************************************************/
void Add_UsData(uchar *sq0)
{
if(NRxBuff<N_Data)
{
while((IFG1&URXIFG0)==0); //判断是否接收完毕
aRxBuff[NRxBuff]=*sq0;
NRxBuff++;
}
NRxBuff=0;
}