在串口发送数据的过程中有时出现死机现象,在调试时发现没有错误的地方,调试指针就是不向移动 。查找半日也找不到问题的所在这时你看看发送数据时有这样的结构吗?也许在这里你可以找到答案。

一些人这样写发送:

                                     do
                                    {
                                     TI=0;
                                     SBUF=temp[i++];
                                     while(!TI);
                                    }
                                    while(i<n);

    运行时向外送出一个字节后,指针指向SBUF=temp[i++] 行处不再向下运行,即出现死机现象,但如果稍稍修改一下运行的顺序后发送的过程可以非常顺畅地进行如下:


            

                       do
                       {    
                             SBUF=temp[i++];
                             while(!TI);
                      TI=0;
                            }
                            while(i<n);

    

   这只是一个小小的例子,在编程的过程中有时前后的顺序对整个工程的成功与否起到关键性的作用,希望广大同行相互借鉴,彼此共勉。