unsigned int temp=0; unsigned char tempt[]=""; unsigned char i,j; while(1) { temp=ReadTemperature(); sprintf((char *)tempt, "%.1f", temp); init_lcd(); write_cmd(0x80); // 设置光标位置为第一行第一列 for(i=0;i<13;i++) { write_data(tempt[i]); } } 我想要将我读到的temp的值转换成char类型然后存到tempt里面,请给我写出详细的代码
时间: 2023-12-05 22:03:27 浏览: 137
好的,请参考下面的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int ReadTemperature(); // 假设有一个函数可以读取温度值
int main() {
unsigned int temp = 0;
unsigned char tempt[15] = ""; // 定义一个足够大的数组来存储转换后的温度值
unsigned char i, j;
while (1) {
temp = ReadTemperature();
sprintf((char *)tempt, "%.1f", temp); // 将温度值转换成字符类型,并存储到tempt数组中
init_lcd();
write_cmd(0x80); // 设置光标位置为第一行第一列
for (i = 0; i < strlen((char *)tempt); i++) {
write_data(tempt[i]); // 逐个将tempt数组中的字符写入lcd屏幕中
}
}
return 0;
}
```
这段代码中,我们定义了一个足够大的tempt数组来存储转换后的温度值。在while循环中,我们首先调用ReadTemperature()函数读取温度值,然后使用sprintf()函数将其转换成字符类型,并存储到tempt数组中。接着,我们调用init_lcd()函数初始化lcd屏幕,将光标位置设置为第一行第一列,并使用for循环将tempt数组中的字符逐个写入lcd屏幕中。需要注意的是,这里使用了strlen()函数获取tempt数组的长度,避免了可能出现的溢出问题。
阅读全文