xixia07m 2023-06-03 08:51 采纳率: 0%
浏览 9

这个C程序是如何引发执行的?

void uartTest(U32 *cmd)
{
U32 state_rcv=0,state_send=0,i,time_out;
U8 UartSendBuff[1024],UartRecvBuff[1024];

U32 first_data,step,Lenth,test_result=0,tmp=0;
U32 Uart_FiFO=0,time_out_flag=0,recv_lenth=0;

first_data=cmd[1];
step=cmd[2];
Lenth=(cmd[3]<<8)+cmd[4];

if(cmd[5]==0x11)//time_out EN:0x11
{
    time_out=50000;
    time_out_flag=0x11;
}
else 
{
    time_out=0;
    time_out_flag=0x22;
}

for(i=0;i<1024;i++)
{    
    UartRecvBuff[i]=0;    
    UartSendBuff[i]=0;    
}
if((cmd[0]==0)||(cmd[0]==7)||(cmd[0]==8))
{
    if(Lenth>1024)
    {
        Uart_FiFO=1024;
    }
    else Uart_FiFO=Lenth;        
}
else
{
    if(Lenth>256)
    {
        Uart_FiFO=256;
    }
    else Uart_FiFO=Lenth;
}
  • 写回答

3条回答 默认 最新

  • 梦幻编织者 2023-06-03 09:03
    关注

    这个C程序可能是一个函数,需要在其他程序中调用。调用时需要传入一个U32类型的指针cmd,其中包含了一些参数,例如数据的起始值、步长、长度等。函数会根据这些参数进行一些操作,最终返回一个测试结果test_result。具体的操作包括初始化一些变量、根据数据长度确定缓冲区的大小、根据参数判断是否开启超时等。最终根据不同的cmd[0]值,选择不同的缓冲区大小。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月3日