欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#串口CHART控件绘图时出现的数据干扰问题解决

程序员文章站 2022-06-08 17:29:33
...
    本上位机是针对STM32下位机进行开发的,使用c#语言,功能之一就是把下位机数据发送过来绘图。
    目前STM32串口看到的比较好的方案有两种

    1.串口通信两端使用共用体(C#本身不支持共用体,仅支持模拟共用体

    2.直接发送字符串:"帧头,数据,数据,数据,数据,数据,帧尾",这也是博主采用的方式。

但在绘制下位机数据时,出现了奇怪的现象

绘制时出现很多归0的点C#串口CHART控件绘图时出现的数据干扰问题解决,这不符合预期。

这个问题研究了很久:也想过很多原因:1.波特率设置过高2.帧头帧尾检测3.数据传输丢包等等,结果一直没调试好。

后来研究C#代码,发现这么几句:

            string[] strArray = str.Split(new char[] { ','});//用逗号分隔
            int[] intArray = new int[strArray.Length + 6];//BUG修复处,把strArray.Length改为5
            for (int i = 0; i < strArray.Length; i++)
            {
               int.TryParse(strArray[i], out intArray[i]);
            }

终于找到了原因,是因为下位机发送的枕头帧尾是字母字符,而在循环里进行了强制转换,结果转换过来肯定是0,产生了干扰。DEBUG:把下位机帧头帧尾改为数字。

结果如下:

C#串口CHART控件绘图时出现的数据干扰问题解决

干扰消除了!

发个博客记录一下。


相关标签: a's'