zoukankan      html  css  js  c++  java
  • 串口接收字符时,最后一个字符延时发送

    使用的是5271的串口,调试时用调试助手给5271的串口发送数据。
    在5271的程序中需要对串口送来的完整包做处理,而判断完整包的方式是:在接受字符串过程中,如果在接受完
    某个字符后的一段时间内(称为超时时间)再没有接受到字符,则认为完整的一包已经收完。这是触发一次串口高级中断,
    并处理该包。
    但现在的现象是在调试助手中,发送"112233",但是该字符串分为两个完整的包,第一个是"1122",第二个是"3";
    串口助手应该是没有问题的,感觉好像是5271的串口吧最后一个字符延时发送了。
    解决的办法:
    5271的串口的中断发生方式有两种:
    1 接收到一个字符触发中断
    2 缓冲区溢出触发中断

    原先设置的是方式是方式1
    现在不设置,而是取默认的就好了

    原先为:
    MCF_UART_UMR0 = (0
                    | uparity
                    |MCF_UART_UMR_RXIRQ
                    |MCF_UART_UMR_PT
                    | MCF_UART_UMR_BC_8 );
    现在为
    MCF_UART_UMR0 = (0
                    | uparity
                //    |MCF_UART_UMR_RXIRQ
                    |MCF_UART_UMR_PT
                    | MCF_UART_UMR_BC_8 );

  • 相关阅读:
    iView
    JS
    JS
    JS
    Java
    Java
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/gaotaozhaolei/p/1036011.html
Copyright © 2011-2022 走看看