DSP通过UART口与另一个芯片连接,通过下面的程序向芯片发送数据及读取寄存器值,如果我用UCOS_II操作系统,会不会因为等待寄存器状态或芯片的响应造成实时性下降呢?
/**********************************************************************************
* 名称 :uart0_sendByte(unsigned char dat)
* 功能 :UART0主串口发送一个字节
* 入口参数 :dat 数据
* 出口参数 :无
***********************************************************************************/
void uart0_sendByte(unsigned char dat)
{
*pUART0_THR=dat;
// TXbuff[j]=i; //检查输出正确与否
// j++;
while(!(*pUART0_LSR&THRE));
}
/**********************************************************************************
* 名称 :uart0_recByte(void)
* 功能 :UART0主串口接收一个字节数据
* 入口参数 :无
* 出口参数 :返回读取到的数据
***********************************************************************************/
unsigned char uart0_recByte(void)
{
unsigned char rec=0;
while(!(*pUART0_LSR&DR)); //等待直到有数据结接收
rec=*pUART0_RBR;
//SCON &= 0xFE;
return rec;
}
/**********************************************************************************
* 名称 :read_reg(unsigned char port,unsigned char reg)
* 功能 :读寄存器
* 入口参数 :port 通道
reg 寄存器名称
* 出口参数 :返回读取到的寄存器值
***********************************************************************************/
unsigned char read_reg(unsigned char port,unsigned char reg)
{
uart0_sendByte(((port-1)<<4)+reg);
return uart0_recByte();
}