开发板28335,lcd12864,带字库,怎么显示变量

2019-03-26 15:38发布

请求高手指点:
我的显示子程序是无符号字符型的,变量是无符号整形,强制转换后,报错:参数类型矛盾,,,,求解怎么用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);//这一句无论怎么写都报错,类型问题 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
lymgirl
1楼-- · 2019-03-27 18:28
这样运行以后显示的就是0123456789,怎么改都不行,
先用了gcvt()这个函数,但CCS的stdlib.h中没有定义这个函数,自己声明了一下,还是说这个函数没有声明,不知道是不是我定义的有问题。
最后用sprint(s,"%.f",R),实现显示了
忘了即使回帖, :
ltbytyn
2楼-- · 2019-03-28 00:00
没有仔细看你的函数,刚发现上面确实写错了。应该是下面这个样子。
WriteData12864(ASCIITable[temp/100] );           //显示百位
WriteData12864(ASCIITable[(temp/10)%10] );    //显示十位
WriteData12864(ASCIITable[temp%10] );           //显示个位
使用sprint(s,"%.f",R),还是很不错啊
lymgirl
3楼-- · 2019-03-28 01:13
 精彩回答 2  元偷偷看……
骑猪去兜风
4楼-- · 2019-03-28 05:53
求解,我也遇到同样困难,我想用LCD1602显示秒表,怎么才能把变量在字库里面取字显示出来

一周热门 更多>