本帖最后由 qiqirachel 于 2014-1-2 17:38 编辑
求指导
我想用类似于printf(" temp: %d",temp);这样的函数来往OLED屏幕上面赋值,这样的话就可以动态改变temp的值了
但是遇到问题是字符串函数知道怎么用,但是不会编写类似与printf这样的
/*******************显示8×16字符串****************/
void LCD_P8x16Str(unsigned char x,unsigned char y,uint8_t ch[])
{
unsigned char c=0,i=0,j=0;
while (ch[j]!='\0')
{
c =ch[j]-32;
if(x>120){x=0;y++;}
LCD_Set_Pos(x,y);
for(i=0;i<8;i++)
LCD_WrDat(F8X16[c*16+i]);
LCD_Set_Pos(x,y+1);
for(i=0;i<8;i++)
LCD_WrDat(F8X16[c*16+i+8]);
x+=8;
j++;
}
}
如何把它变成可以用类似printf(" temp: %d",temp);这样的方式调用呢
求指导,这个是图
添加一下内容:我的意思是用类似printf这样的函数往OLED上面写数据,OLED用的是3线SPI口
解决办法
定义了一个全局变量buffer
uint8_t buffer[64];
//设定温度
sprintf(buffer,"TEMP_set: %d",HTset);
LCD_P8x16Str(10,0,buffer);
//实际温度
sprintf(buffer,"REAL_temp: %d",HTheating);
LCD_P8x16Str(10,2,buffer);
//毫伏调试用
HTmv = (int)HTmv;
sprintf(buffer,"REAL_mv: %d",HTmv);
LCD_P8x16Str(10,4,buffer);
//运行次数
sprintf(buffer,"Time: %d",A);
LCD_P8x16Str(10,6,buffer);