请求高手指点:
我的显示子程序是无符号字符型的,变量是无符号整形,强制转换后,报错:参数类型矛盾,,,,求解怎么用lcd显示变量,,,,万分感谢
void WriteCmd12864(Uint16 cmd)
{
// Uint16 i=5;
RS=LOW;
RW=LOW;
EN=HIGH;
LCD_DATA=cmd;
// while(i--);
EN=LOW;
}
void WriteData12864(Uint16 dat)
{ // Uint16 i=5;
RS=HIGH;
RW=LOW;
EN=HIGH;
LCD_DATA=dat;
// while(i--);
EN=LOW;
}
void DisplayCgrom(uchar *hz)//显示子程序
{
while(*hz != ' ')
{
WriteData12864(*hz);
hz++;
delay(2);
}
部分主程序:
fif=num*fs/N;
R=c*fif/(4*Ban)/fm;
R=R*10;
shi=R/10;
temp=uchar(shi);//加了强制类型转换后,调用显示程序依然报错???、
ge=R%10;
..........
WriteCmd12864(0x80);//往第一行写
delay(5);
DisplayCgrom(temp);//这一句无论怎么写都报错,类型问题
此帖出自
小平头技术问答
DisplayCgrom(temp)!!! 你的意思是DisplayCgrom(&temp)吧!
//定义的形参是地址
temp=uchar(shi);
DisplayCgrom(temp);//传递的实参是数据。
所以错误是必然。
DisplayCgrom(&ASCIITable[temp/100] ); //显示百位
DisplayCgrom(&ASCIITable[(temp/10)%10] ); //显示十位
DisplayCgrom(&ASCIITable[temp%10] ); //显示个位
一周热门 更多>