You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32 IDE中OLED显示屏如何显示℃符号?求非手动绘制方案

SSD1306 OLED 显示摄氏度(℃)符号的可行方案

方案1:扩展内置字体表添加℃点阵

你提供的源码中font8x8_basic数组是8x8的ASCII字符点阵表,默认仅包含基础ASCII字符。可直接在该数组中添加℃符号的点阵数据,步骤如下:

  1. 选定一个未被使用的ASCII码(比如0xDF,避开0x20-0x7F的基础字符范围)
  2. 在font8x8_basic数组末尾添加℃的8x8点阵数据,示例点阵:
    0x0E, 0x11, 0x11, 0x0E, 0x00, 0x11, 0x11, 0x00
    
    该点阵对应8x8的℃图案:上半部分为C的轮廓,下半部分用两个点模拟度符号。
  3. 显示时直接调用ssd1306_putc(0xDF),和输出普通字符操作一致。

方案2:用现有字符拼接模拟℃

如果不想修改字体表,可通过调整光标位置,用现有字符组合出℃效果:

  • 先调用ssd1306_putc('C')显示字母C
  • 调用ssd1306_set_cursor将光标向右偏移2像素、向上偏移4像素(可根据实际字体大小微调)
  • 调用ssd1306_putc('o')显示小写o,让它落在C的右上角,模拟℃外观
  • 完成后重置光标位置到正常区域,继续显示其他内容

方案3:适配Unicode字符(进阶)

若后续需要支持更多特殊字符,可扩展ssd1306_putc函数,添加Unicode到点阵的映射逻辑:

  • 为℃的Unicode码U+2103分配对应的点阵数据
  • 修改字符输出函数,当检测到该Unicode码时,直接输出对应点阵
    此方案需要修改驱动的字符处理逻辑,适合有一定开发基础的场景

内容的提问来源于stack exchange,提问作者min_een

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:57:49