This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28377 controlsuite例程问题

我修改了28377的sci例程,请大神看一下程序是否有问题,sci发送没有问题,但接收时每次只能接收一位,其他位不是错的,就是乱码。

附件是我改的程序,在线等。

  • 附两张图希望能吸引大神看过来

  • SCI接收和发送都是8位数据,你发任意一个ASCII字符都没有问题,但是像你发的pg这就是字符串了,需要改代码,接收要做判断,一次接收一位,发送也只能一位一位发送。

  • 对不起回复晚了,我的程序里对读字符的函数定义的循环如下:

     do            {

                         ReceivedChar = ScicRegs.SCIRXBUF.all;

                    // Echo character back

                    scia_xmit(ReceivedChar);            

         GpioDataRegs.GPBSET.bit.GPIO56=1;            

              i++;

             }while(ScicRegs.SCIFFRX.bit.RXFFST != 0);/**/                  LoopCount++;           }

    我觉的这里的判断应该是正确的,同样的例子在28335里用过。关于字和字符的问题还希望能帮我指下是哪个量的问题,谢谢!

  • 你的代码并没有错,只是SCIRXBUF寄存器是低八位有效,其范围不能超过255,你发任意的单个字符,查ASCII表它的值都不超过255,但是两个及两个以上的字符例如你发的pg就会溢出了,你的截图中也显示收到的变成0x00FF了

  • 这个程序原来是232上用的,现在在485上用。程序代码几乎没变,用232时候也是用SCIRXBUF接收,然后用循环程序输出。这是232结果,我觉的485一样才对

    谢谢大神,希望能再看看。