电机驱动开发历程(二)
应该昨天写的,昨天没来得及写。
周四记录的问题,主要时串口的收发问题,现在思路已经明确了:
串口发数据:运用中断机制来发数据,不会影响主程序的实时采集,已经验证了,但是程序里还有个问题,就是这个机制发数据,不管fifo设置多少,每一次都只能发最多16字节的数据,很奇怪。但是我可以暂时先把我的数据压缩到16字节以内,先行测试PID算法数据,时间紧张,这个问题空闲时间顺带着一起看看;
串口收数据:
分两部分:
因为485要走modbus协议,我可以根据协议内容呢,截取特定个数的数据,做处理,这样的话,就不会出现,来了一堆数据,不知道啥时候数据结了;
至于232,是留给自己开发调试使用,我可以指定一个结束字符,作为结束的标记;
另外,上位机的制作这边,是通过232串口来给上位机传送数据,并且实时显示。上位机接收大量数据后,串口关闭有问题,导致上位机程序卡死,这个问题,大概原因是C#的ui线程与串口数据接收线程互相打架,解决方式是设置两个标记位,两个线程如果在忙,那么就先处理各自的,不忙了,就可以停。
附一张暂时的上位机软件图片(暂时的上位机,第二个chart显示了数据,所以看上去黑不溜秋的):