这个程序是如何导致执行的?

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;
}

请问这个异步串口程序是怎么引发执行的?

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/262819
  • 这篇博客你也可以参考下:单片机利用串口打印变量进行快速调试
  • 除此之外, 这篇博客: 第十六届全国大学生智能汽车竞赛电磁越野组参赛技术总结中的 机械结构 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 都说“基础不牢,地动山摇”,机械结构作为智能车的基础部分,常被大家所忽略。拿今年电磁越野所使用的L车模距离,仅机械结构的改装都可以分为平台搭建、减震改造、转向改造、防水改造等(详情可以查看卓晴老师的这篇博文:L车改装浅析及性能测试)。我希望传达的信息就是,机械结构的改造非常重要,在我心中机械结构和硬件的重要性是大于软件的。如果智能车的机械结构或者硬件出了问题,软件再怎么优异也都于事无补。
    在我们前期的准备工作中,没有对机械结构引起足够的重视,这也导致我们在后期准备对机械结构非常头疼。我认为,一个优异的机械结构,需要满足方便、稳定、安全的特征。这里的方便指的是硬件的更换要方便,基本没有哪个队伍的硬件能做到一步到位,更多需要进行迭代改进。因此在设计车模的机械结构的时候,要考虑到该结构是否有利于后期的更换、维护。稳定则是指车模结构是否稳定,电磁越野组有它的特殊性,在比赛过程中,可能有沙坑、路肩、水坑等元素,所以在机械结构上考虑这些元素的应对方案也是非常重要的。路肩会比较高,在安装干簧管模块时需要格外注意,将接口朝上防止,否则可能会卡在路肩处。如果担心有水坑,防水工作也是必不可少的。同时减震也需要进行调整测试,不是所有车模拿到手中减震都是最好状态。另外,安全指对硬件做好防止短路的措施,切忌两块板重叠防止,这样会引起短路等不良后果。
    方向朝下的干簧管
    ▲我们接口向下的干簧管

  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 整个程序需要考虑的设计规范小节, 巩固相关知识点

多谢指教。