部分代码如下
//红外发射管发送端单片机,接收编码完成的音频信号
void UART_OnRx(void)
{
unsigned char Temp;
static unsigned int i;
//接收编码完成的音频信号,调用FIFO库函数,将音频信号写入Rx_FIFO
Temp_R=UCA0RXBUF;
Rx_FIFO_WriteChar(Temp_R);
//将Rx_FIFO中的数据读入数组
Rx_FIFO_ReadChar(&Temp);
Music[i]=Temp;//Music[]音频信号数组,八位
i++;
if(i=8)
i=0;
}
//红外发射管发送端单片机,将音频信号与温度复用,发送
void UART_OnTx(void)
{
unsigned char Temp;
static unsigned int i;
//将温度、音频信号写入Tx_FIFO
if (i==0)
Tx_FIFO_WriteChar(TMPRT_T);//调用FIFO库函数,TX_FIFO[0]写入温度信号
else if(i==9)
{
Tx_FIFO_WriteChar(END);//TX_FIFO[9]最后一位写入结束标志位
}
else
{
Tx_FIFO_WriteChar(Music[i-1]);//调用FIFO库函数,TX_FIFO[1]~TX_FIFO[8]写入音频信号
}
i++;
if(i==10)
i=0;
//将发送FIFO中的数据读入发送缓存
if(Tx_FIFO_DataNum>0)
{
Tx_FIFO_ReadChar(&Temp);//调用FIFO库函数,将发送FIFO中的数据读入发送缓存
UCA0TXBUF= Temp;
//发送完最后标志位整体清空
if(Temp=END)
{
Rx_FIFO_Clear();
Tx_FIFO_Clear();
}
}
}
|