請問在PC中使用ReadData()函數(shù)時,芯片會做出什么反應(yīng),哪個標(biāo)志位會置位?
數(shù)據(jù)傳輸完成芯片會產(chǎn)生中斷,傳輸完成標(biāo)志置位
首先在計算機未發(fā)生讀函數(shù)的時候,需要CH374將數(shù)據(jù)準(zhǔn)備好,等待計算機取走,當(dāng)計算機發(fā)送讀函數(shù)時,此時CH374將準(zhǔn)備好的數(shù)據(jù)發(fā)送至計算機。計算機取走數(shù)據(jù)后,CH374中斷寄存器里面講傳輸完成標(biāo)志置位。等待MCU下一次寫入數(shù)據(jù)。
哦!我做一個信號采集的模塊,計算機每1ms調(diào)用一次ReadData(),但下位機采集到數(shù)據(jù)是沒規(guī)律的,現(xiàn)在出現(xiàn)一個問題,如果下位機一直都采集到數(shù)據(jù),上位機就能成功的通過ReadData()函數(shù)讀到數(shù)據(jù),如果下位機某一段時間沒有采集到數(shù)據(jù),上位機就調(diào)用ReadData()時就會出錯,出錯后除非重新復(fù)位下位機,不然一直會讀不到數(shù)據(jù);請問這個問題怎么解決?
這個和你上位機軟件有關(guān)系。你可以咨詢下上位機工程師,下位機只需要將你要發(fā)生的數(shù)據(jù)寫入到CH374里面去即可。需要等待計算機傳輸完成之后才能寫下一包數(shù)據(jù)。