OLED_ShowString()显示出数字123
时间: 2024-03-23 13:36:30 浏览: 19
你可以通过以下两种方式将数字 123 显示在 OLED 屏幕上:
1. 将数字 123 转换成字符串,然后调用 OLED_ShowString() 函数显示该字符串。代码如下:
```c
char str[4];
sprintf(str, "%d", 123);
OLED_ShowString(8, 2, str, 16);
```
2. 调用 OLED_ShowNum() 函数直接显示数字 123。代码如下:
```c
OLED_ShowNum(8, 2, 123, 3, 16);
```
其中,第一个参数为数字的起始位置,第二个参数为数字的字体大小,第三个参数为要显示的数字,第四个参数为数字的位数,需要保证该参数大于等于实际数字的位数。
相关问题
#include "stm32f10x.h" // Device header #include "delay.h" #include "OLED.h" #include "hc.h" #include "Servo.h" #include "mlx90614.h" #include "dht11.h" uint32_t length; float leng; u8 temp,humi; int main(void) { uint32_t bufe[5]; OLED_Init(); Hcsr04Init(); OLED_ShowString(1,1,"length:"); OLED_ShowString(2,9,"cm"); OLED_ShowString(3,1,"wen:"); OLED_ShowString(4,1,"shi:"); DHT11_Init(); while(1) { leng =Hcsr04GetLength(); DHT11_Read_Data(&temp,&humi); bufe[0]=temp; bufe[1]=humi; bufe[2]=45; length = leng*100; OLED_ShowNum(2,4,length/1000,1);//bai OLED_ShowNum(2,5,length%1000/100,1);//shi OLED_ShowString(2,6,":"); OLED_ShowNum(2,7,length%100/10,1);// OLED_ShowNum(2,8,length%10/1,1); OLED_ShowNum(3,6,bufe[0],2); OLED_ShowString(4,9,"%"); OLED_ShowNum(4,6,bufe[1],2); OLED_ShowString(4,9,"%"); } }添加注释
好的,以下是添加注释后的代码:
```c
#include "stm32f10x.h" // 包含STM32F10x系列芯片的头文件
#include "delay.h" // 包含延时函数的头文件
#include "OLED.h" // 包含OLED屏幕驱动函数的头文件
#include "hc.h" // 包含超声波测距模块驱动函数的头文件
#include "Servo.h" // 包含舵机模块驱动函数的头文件
#include "mlx90614.h" // 包含红外温度传感器模块驱动函数的头文件
#include "dht11.h" // 包含DHT11温湿度传感器模块驱动函数的头文件
uint32_t length; // 存储距离的变量
float leng; // 存储距离的变量(浮点数)
u8 temp,humi; // 存储温度和湿度的变量
int main(void) {
uint32_t bufe[5]; // 存储温湿度数据的数组
OLED_Init(); // 初始化OLED屏幕
Hcsr04Init(); // 初始化超声波测距模块
OLED_ShowString(1,1,"length:"); // 在第1行第1列显示“length:”
OLED_ShowString(2,9,"cm"); // 在第2行第9列显示“cm”
OLED_ShowString(3,1,"wen:"); // 在第3行第1列显示“wen:”
OLED_ShowString(4,1,"shi:"); // 在第4行第1列显示“shi:”
DHT11_Init(); // 初始化DHT11模块
while(1) { // 进入主循环
leng = Hcsr04GetLength(); // 获取距离
DHT11_Read_Data(&temp,&humi); // 获取温湿度数据
bufe[0] = temp; // 保存温度数据
bufe[1] = humi; // 保存湿度数据
bufe[2] = 45; // 保存固定值
length = leng * 100; // 将距离转换为整型
OLED_ShowNum(2,4,length/1000,1);// 在第2行第4列显示百位数字
OLED_ShowNum(2,5,length%1000/100,1);// 在第2行第5列显示十位数字
OLED_ShowString(2,6,":"); // 在第2行第6列显示“:”
OLED_ShowNum(2,7,length%100/10,1);// 在第2行第7列显示个位数字
OLED_ShowNum(2,8,length%10/1,1);// 在第2行第8列显示个位数字
OLED_ShowNum(3,6,bufe[0],2); // 在第3行第6列显示温度数据
OLED_ShowString(4,9,"%"); // 在第4行第9列显示“%”
OLED_ShowNum(4,6,bufe[1],2); // 在第4行第6列显示湿度数据
OLED_ShowString(4,9,"%"); // 在第4行第9列显示“%”
}
}
```
OLED_ShowString(1, 1, "Speed:");这个函数在OLED屏幕上不能显示汉字吗
这个函数是用于在 OLED 屏幕上显示字符串的函数,可以显示 ASCII 字符集中的所有字符,包括英文字母、数字、特殊符号等等。但是,它并不支持直接显示汉字。
如果你想在 OLED 屏幕上显示汉字,需要使用专门的汉字库,或者自己编写汉字显示函数。一般来说,汉字库可以分为两种:点阵汉字库和矢量汉字库。
点阵汉字库是将每个汉字转化为一个点阵图形,可以直接在 OLED 屏幕上显示。但是,点阵汉字库的显示效果受到分辨率和字体大小的限制,显示出来的汉字可能会比较模糊。
矢量汉字库是将每个汉字转化为一组矢量图形,可以在任意分辨率的屏幕上显示,并且可以随意调整字体大小。但是,矢量汉字库的处理复杂度比较高,需要较强的处理能力和较大的存储空间。
如果你使用的是点阵汉字库,可以编写一个函数来将汉字转化为点阵图形,并调用 OLED_ShowString 函数将其显示在 OLED 屏幕上。如果你使用的是矢量汉字库,可以编写一个函数来将汉字转化为矢量图形,并调用 OLED_DrawLine 函数将其显示在 OLED 屏幕上。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)