如何在STM32 IDE的OLED显示屏上显示“°C”?

问题描述 投票:0回答:1

我无法在显示器中显示摄氏度符号,除了手动画圆之外还有什么办法吗?

我尝试为某些符号提供“char ASCII 代码”,以检查我的 OLED 是否可以做到这一点。它可以显示蒂尔达等符号,但我没有找到显示度数符号的方法。除了手动还有其他办法吗?

这是我的SSD1306源码库。

https://gist.github.com/akx/bc563420a8950443e5490c5ba14eb876#file-ssd1306-c-L604-L608

image stm32 symbols display degrees
1个回答
0
投票

° 的问题在于它不是 ASCII 字符,而是扩展 ASCII 字符(其代码为 0xB0 - 数字 176 - 高于 127)。您的库可能仅实现标准 127 个 ASCII 字符。

在 SSD1306 上绘制自定义图案并不难,只需几分钟的实验即可弄清楚。如果绘制单个字节 0xFF,它将绘制一条像素水平直线。毕竟它是单色屏幕,所以 1 位就是 1 像素。打开或关闭。当然,对于像 ° 这样的东西,您可以只拥有一个函数,该函数将获取起始像素或光标位置并打印空格字符,然后调用自定义代码在其上绘制一个小圆圈。
这种方法很无聊,因为你不能只用它打印字符串。但如果是对于一些静态接口来说,那就绰绰有余了。我使用这种方法来绘制电池电量指示器 - 只需在屏幕的固定位置绘制几个自定义位图。

也许您可以“侵入”库并添加符号的自定义位图并将其与字符代码关联(如果它允许代码> 127),或者替换其中一个不太有用(对于您的应用程序)的可打印符号带°的基本ASCII。例如,$ 或 ~。因此,在您的代码中,您将编写类似

screen.print("Temperature is 25$C");
的内容,屏幕将显示
Temperature is 25°C

快速浏览一下您链接到的库就会发现,在应该打印文本的函数中存在一个“字体对象”(它们将指向字体对象的指针作为输入之一)。如果你想走这条路,你可能应该从那里开始寻找。

© www.soinside.com 2019 - 2024. All rights reserved.