(1)這個(gè)時(shí)間間隔不可避免,可以通過實(shí)際速度測算出來,如通信速度為300KB/S,那么平均每傳輸64B數(shù)據(jù)大約耗時(shí)200uS。 (2)實(shí)際速度與上下位機(jī)也有關(guān)系,上位機(jī)盡量一次能按最大數(shù)據(jù)量(4096B)處理,單片機(jī)的速度盡可能快。 (3)網(wǎng)上下載DEBUG372,可以調(diào)試你的下位機(jī)程序。http://wch.cn/download/list.asp?id=9
謝謝SCM!基本的思路我已經(jīng)理清,下面就是慢慢調(diào)試了!
請(qǐng)問:vb編程時(shí),能否在timer中直接使用CH375ReadData讀下位機(jī)中的數(shù)據(jù)?為什么CH375ReadData讀出的數(shù)據(jù)全為0?謝謝
是可以在timer中使用CH375ReadData的,但是要調(diào)用SetTimeOut函數(shù),timer時(shí)間間隔要比timer設(shè)置大一點(diǎn).
下位機(jī)stc12c5412ad,24M時(shí)鐘,使用定時(shí)器0每0.5ms采集5個(gè)數(shù)據(jù)放在80h開始的ram中,累加到60個(gè)數(shù)據(jù),改到0C0H開始的ram中再放60個(gè)數(shù)據(jù),這樣循環(huán)采集。定時(shí)器0中斷程序大約用時(shí)300us。 上位機(jī)使用請(qǐng)求加應(yīng)答方式vb timer每6ms讀一次數(shù)據(jù),有數(shù)據(jù)不規(guī)律的丟失,改變timer的時(shí)間無用,不知何故?謝謝
CH375SetTimeOut設(shè)置的讀超時(shí)要小于6ms.你這種傳輸方式時(shí)間太緊湊,而且上位機(jī)的6ms是不精確的,如果再運(yùn)行其他大的程序的話比如視頻播放軟件,時(shí)間肯定會(huì)不精確.如果上位機(jī)用定時(shí)器,定時(shí)器的時(shí)間間隔至少要在500ms以上,而且CH375SetTimeOut設(shè)置讀請(qǐng)求的超時(shí)要比定時(shí)器的時(shí)間間隔小,也就是CH375ReadData函數(shù)的等待時(shí)間要小于定時(shí)器的時(shí)間間隔,這種方式適合數(shù)據(jù)量很小的時(shí)候.你可以用查詢+DoEvents的方式試試.如果這樣還不行可以用緩沖上傳模式+查詢+DoEvents的方式
謝謝zyw.明天我試試看。
用緩沖上傳模式+查詢+DoEvents的方式數(shù)據(jù)不再丟失,但采集的同時(shí)處理數(shù)據(jù)又發(fā)現(xiàn)數(shù)據(jù)丟失。是否要用到多線程了。有沒有vb.net的例子。謝謝
其他的我還沒試過,我先測試單片機(jī)和CH375有沒連接好,怎么我的測試程序輸入的數(shù)據(jù)和輸出的數(shù)據(jù)是一樣的呢?輸入0x55輸出也是一樣的?那位好心人幫我解析一下,不勝感激。
你需要去看下在你做測試命令的時(shí)候,片選上面以及WR和RD上面是否有信號(hào),以及芯片的25,26腳電壓是多少,正常芯片復(fù)位以及晶振起振的話,電壓為25腳為低,26腳為高.
我也做,但不會(huì)編程序,請(qǐng)摟主把程序發(fā)一下,要全的。謝謝?。?/p>
CH372EVT.ZIP里有相關(guān)的上位機(jī)和下位機(jī)例子程序
各位大蝦, 我出現(xiàn)的錯(cuò)誤是ERROR:F1
你是在什么地方返回0xf1, 先做測試命令,看看能不能通過
很好,收藏!