430-->DSP
現(xiàn)象:示波器中430發(fā)送數(shù)據(jù)不完整,發(fā)送了6個(gè)字節(jié)數(shù)據(jù),示波器中只有3個(gè)。
排查:每次發(fā)送之前都需要 while(!(IFG2&UTXIFG1));
現(xiàn)象:430發(fā)送6個(gè)字節(jié)的數(shù)據(jù),DSP卻只接收到3個(gè)數(shù)據(jù)
排查:用來接收數(shù)據(jù)長(zhǎng)度的變量 unsigned int RE_LENGTH=0定義在了接收函數(shù)中,每次都重新賦值
現(xiàn)象:checksum有的可以 有的不可以
排查:可以的時(shí)候是checksum比較小的時(shí)候,如果比較大的時(shí)候,比如0x0312,在430單片機(jī)中由于是16位的,自動(dòng)把高位舍棄,存入checksum的就是0x12。
而到了DSP中就不是這樣了,28335的char型為16位,因此存的就是0x0312,所以傳來的0x0012與0x0312校驗(yàn)就通不過了。
解決辦法:對(duì)checksum的高位賦值,使用:__byte(&checksum,1)=0x0;
`