(1)这个时间间隔不可避免,可以通过实际速度测算出来,如通信速度为300KB/S,那么平均每传输64B数据大约耗时200uS。 (2)实际速度与上下位机也有关系,上位机尽量一次能按最大数据量(4096B)处理,单片机的速度尽可能快。 (3)网上下载DEBUG372,可以调试你的下位机程序。http://wch.cn/download/list.asp?id=9
谢谢SCM!基本的思路我已经理清,下面就是慢慢调试了!
请问:vb编程时,能否在timer中直接使用CH375ReadData读下位机中的数据?为什么CH375ReadData读出的数据全为0?谢谢
是可以在timer中使用CH375ReadData的,但是要调用SetTimeOut函数,timer时间间隔要比timer设置大一点.
下位机stc12c5412ad,24M时钟,使用定时器0每0.5ms采集5个数据放在80h开始的ram中,累加到60个数据,改到0C0H开始的ram中再放60个数据,这样循环采集。定时器0中断程序大约用时300us。 上位机使用请求加应答方式vb timer每6ms读一次数据,有数据不规律的丢失,改变timer的时间无用,不知何故?谢谢
CH375SetTimeOut设置的读超时要小于6ms.你这种传输方式时间太紧凑,而且上位机的6ms是不精确的,如果再运行其他大的程序的话比如视频播放软件,时间肯定会不精确.如果上位机用定时器,定时器的时间间隔至少要在500ms以上,而且CH375SetTimeOut设置读请求的超时要比定时器的时间间隔小,也就是CH375ReadData函数的等待时间要小于定时器的时间间隔,这种方式适合数据量很小的时候.你可以用查询+DoEvents的方式试试.如果这样还不行可以用缓冲上传模式+查询+DoEvents的方式
谢谢zyw.明天我试试看。
用缓冲上传模式+查询+DoEvents的方式数据不再丢失,但采集的同时处理数据又发现数据丢失。是否要用到多线程了。有没有vb.net的例子。谢谢
其他的我还没试过,我先测试单片机和CH375有没连接好,怎么我的测试程序输入的数据和输出的数据是一样的呢?输入0x55输出也是一样的?那位好心人帮我解析一下,不胜感激。
你需要去看下在你做测试命令的时候,片选上面以及WR和RD上面是否有信号,以及芯片的25,26脚电压是多少,正常芯片复位以及晶振起振的话,电压为25脚为低,26脚为高.
我也做,但不会编程序,请搂主把程序发一下,要全的。谢谢!!
CH372EVT.ZIP里有相关的上位机和下位机例子程序
各位大虾, 我出现的错误是ERROR:F1
你是在什么地方返回0xf1, 先做测试命令,看看能不能通过
很好,收藏!