使用PCtoLCD2003给u8g2文字取模

PCtoLCD2003设置

  • 使用取模软件:PCTOLCD 2002完美版
  • 取模方式为:阴码,逐行式,顺序
  • 字体:16×16 宋体
    在这里插入图片描述
    在这里插入图片描述

使用u8g2库的drawXBM()函数

示例:

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);   // All Boards without Reset of the Display

uint8_t nihao[] = 
{
    0x10,0x01,0x08,0x00,0x10,0x01,0x08,0x3F,0x10,0x01,0x08,0x20,0x88,0x7F,0x08,0x10,
    0x88,0x40,0x3F,0x08,0x4C,0x20,0x24,0x04,0x2C,0x04,0x24,0x04,0x0A,0x04,0xA4,0x7F,
    0x89,0x14,0x24,0x04,0x88,0x24,0x12,0x04,0x48,0x24,0x14,0x04,0x48,0x44,0x08,0x04,
    0x28,0x44,0x14,0x04,0x08,0x04,0x22,0x04,0x08,0x05,0x21,0x05,0x08,0x02,0x00,0x02,/*"C:\Users\Archer\Desktop\1.BMP",0*/
};
uint8_t day[][32] = 
{
    {0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60,
    0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00},/*"今",0*/
    {0x00,0x00,0x00,0x3F,0x3E,0x21,0x22,0x21,0x22,0x21,0x22,0x3F,0x3E,0x21,0x22,0x21,
    0x22,0x21,0x22,0x3F,0x3E,0x21,0x22,0x21,0x80,0x20,0x80,0x20,0x40,0x28,0x20,0x10},/*"明",1*/
    {0x00,0x08,0x00,0x1F,0xF8,0x00,0x08,0x00,0x08,0x00,0xF8,0x7F,0x08,0x00,0x08,0x00,
    0x08,0x00,0xE8,0x1F,0x28,0x10,0x24,0x10,0x24,0x10,0x22,0x10,0xE1,0x1F,0x20,0x10}/*"后",2*/
};

void setup(void) {
  u8g2.begin();
  u8g2.enableUTF8Print();		// enable UTF8 support for the Arduino print() function
}

void loop(void) {
  u8g2.setFont(u8g2_font_wqy12_t_chinese2);  
  u8g2.setFontDirection(0);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 15);
  u8g2.drawXBM(0,16,16,16,day[0]);
  u8g2.sendBuffer();
  
  delay(1000);
}

实验现象

显示一个“今”字
在这里插入图片描述

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
u8g2是一款用于驱动各种OLED和LCD显示屏的库,而esp-idf是Espressif Systems开发的官方开发框架,用于开发ESP32和ESP8266芯片的应用程序。在esp-idf中使用u8g2库可以方便地控制和显示各种图形和文本。 要在esp-idf中使用u8g2库,首先需要在项目中添加u8g2的依赖。可以通过在项目的CMakeLists.txt文件中添加以下代码来实现: ``` idf_component_register(SRCS "main.c" INCLUDE_DIRS "" REQUIRES u8g2) ``` 然后,在代码中引入u8g2库的头文件,并使用相应的函数来初始化和控制显示屏。以下是一个简单的示例代码: ```c #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "u8g2.h" void app_main(void) { u8g2_t u8g2; // 初始化u8g2u8g2_Setup_ssd1306_i2c_128x64_noname_f(&u8g2, U8G2_R0, /* reset=*/U8X8_PIN_NONE); // 初始化I2C总线 i2c_config_t i2c_config = { .mode = I2C_MODE_MASTER, .sda_io_num = I2C_SDA_GPIO, .sda_pullup_en = GPIO_PULLUP_ENABLE, .scl_io_num = I2C_SCL_GPIO, .scl_pullup_en = GPIO_PULLUP_ENABLE, .master.clk_speed = I2C_MASTER_FREQ_HZ, }; i2c_param_config(I2C_NUM_0, &i2c_config); i2c_driver_install(I2C_NUM_0, I2C_MODE_MASTER, 0, 0, 0); // 初始化显示屏 u8g2_InitDisplay(&u8g2); u8g2_SetPowerSave(&u8g2, 0); // 显示文本 u8g2_ClearBuffer(&u8g2); u8g2_SetFont(&u8g2, u8g2_font_ncenB14_tr); u8g2_DrawStr(&u8g2, 0, 20, "Hello, World!"); u8g2_SendBuffer(&u8g2); while (1) { vTaskDelay(1000 / portTICK_PERIOD_MS); } } ``` 这是一个简单的示例,通过I2C总线连接一个128x64的OLED显示屏,并在屏幕上显示"Hello, World!"。你可以根据自己的需求修改和扩展代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值