首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在uint8显示屏上显示OLED值

如何在uint8显示屏上显示OLED值
EN

Stack Overflow用户
提问于 2019-06-25 19:23:08
回答 1查看 216关注 0票数 0

我可以编译代码,但没有显示任何内容

代码语言:javascript
复制
int main(void){
    lcd_init(LCD_DISP_ON);
    lcd_clrscr();
    lcd_set_contrast(0x00);
    lcd_gotoxy(0,3);
    lcd_puts((char*)&temperature);
    lcd_gotoxy(1,2);
    lcd_puts((char*)&humidity); 
    lcd_puts("Hello World");
}
EN

回答 1

Stack Overflow用户

发布于 2019-06-28 18:16:54

您需要首先将数值数据(例如uint8_t)转换为字符串,然后才能显示它。

例如,uint8_t123是一个字节,但要显示它,必须将其转换为三个字符/字节的字符串123,即三个char 0x31、0x32、0x33。

为此,您可以使用函数itoa() ("integer to ascii")将整数值复制到您提供的char数组中。注意,char数组必须足够大,可以容纳任何可能的数字字符串,也就是说,如果您的值是uint8_t(范围0...255),则数组的长度必须至少为三个字符。

要在C(-libraries)中将字符数组作为字符串处理,您需要一个额外的char来保存字符串终止符'\0'

示例:

代码语言:javascript
复制
char tempStr[3+1]; // One extra for terminator

// Clear tempStr and make sure there's always a string-terminating `\0` at the end
for ( uint8_t i = 0; i < sizeof(tempStr); i++ ) {
  tempStr[i] = '\0';
}

itoa(temperature, tempStr, 10);

// Now we have the string representation of temperature in tempStr, followed by at least one '\0' to make it a valid string.
// For example:
//      1 --> [ '1', '\0', '\0', '\0' ]
//    255 --> [ '2', '5', '5', '\0' ] 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56752956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档