距上次写工作日志都两周了,这一周多的任务就是完成单片机与计算机的通信。
上次通信之所以失败,是因为采用同步I/O口时延迟加的不够长,后来,我用了下面这个循环才可以:
大概延迟到ms级才行。但是这样还是不好准确的掌握时间,然后我又换了异步I/O读写方式。先新创建了一个线程,专门用来捕捉串口事件,但是失败了。由于多线程不易于调试,所以我取消了多线程,改用异步I/O的阻塞方式读取数据,但是大概有30%的概率收到数据会出错。并且一般是最高位丢失或最低位丢失。具体原因我不太清楚,但一直没找到解决的方法,直到今天在有个老师的提醒下,我想到一种解决方式,就是同一个数据我发送两遍,两遍一样了我才显示,这样就增强了稳定性。其实错误还是存在的,只是我没有显示出来而已。
当然,可以抽出时间来看看增强通信稳定性的论文,毕竟,提高接收数据的稳定性才是最本质的提高。也就是发最少的数据但能得到最准确的结果才行。
另外,合同竟然还没签下来,等待吧~~~