|
本帖最后由 absflash 于 2016-3-11 19:58 編輯
已解決,隔壁壇壇友解決的,正確做法是調(diào)用時(shí)去掉*
改成if(cmpmemory(bufrxd1,buf,len)) 就好了
*buf 存放的是串口傳輸進(jìn)來的數(shù)據(jù),
*bufrxd1 存放上一次串口傳輸?shù)臄?shù)據(jù),用于比較是否與本次數(shù)據(jù)相同
bit cmpmemory(unsigned char *ptrl1,unsigned char *ptrl2,unsigned char len)
{while(len--)
{if(*ptrl1++!=*ptrl2++)
{return 1;} //bijiao比較兩指針數(shù)據(jù)不同返回1
}
return 0; //相同返回1
}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
void uartaction (unsigned char *buf ,unsigned char len)
{
unsigned char i=0;
for(i;i<len;i++)
{
if(cmpmemory(*bufrxd1,*buf,len)) //bi比較兩次數(shù)據(jù)是否相同,
{
*bufrxd1=*buf; //不相同放進(jìn)*bufrxd1備用
CLSLcd(); //清屏
for(i;i<len;i++)
{ PutChar(2,i*6,buf); //將新數(shù)據(jù)顯示在12864上
}
}
} 、、//兩次傳輸數(shù)據(jù)相同不做處理,主要是不清屏,清屏太頻繁導(dǎo)致屏幕閃爍
現(xiàn)在問題是一調(diào)用cmpmemory(*bufrxd1,*buf,len))就出錯(cuò),提示
123.C(143): error C214: illegal pointer conversion 非法指針轉(zhuǎn)換
我曾吧*bufrxd1換成數(shù)組,也是這個(gè)提示,想不通了,
這里要如何傳遞數(shù)據(jù)才可進(jìn)行比較,不一定要用指針,只要能比較不同就行
高人給看一下,要如何修改
源程序在另一臺(tái)破電腦上,破電腦上不了網(wǎng),需要的話一會(huì)可以傳上來
|
|