Arduino STM32で漢字表示
以前、Arduino用でやってみた「Arduino - TV出力(TVoutLibrary使用)で漢字表示」を
Arduino STM32でやってみました。
マイコンボードは、STM32F103C8T6搭載のBlack Pillボードを利用しています。
(Blue Pillボードでも動きます)
自作フォントライブラリを利用しています。
Arduino用漢字フォントライブラリ SPIフラッシュメモリ版
https://github.com/Tamakichi/Arduino_exfonts
動いている様子
結線
スケッチ
// // TTVOutでマルチフォント表示 by たま吉さん 2017/11/18 // #include <SPI.h> #include <W25Q64.h> #include <exfonts.h> #include <TTVout.h> TTVout TV; exfonts ft; // フォント管理オブジェクト // 指定位置に1文字表示 void mputc(uint16_t x, uint16_t y, uint16_t code) { byte buf[MAXFONTLEN]; ft.getFontData(buf,code); // フォントデータの取得 TV.bitmap(x,y, buf ,0,ft.getWidth(), ft.getHeight()); } // 指定位置に文字列表示 void mprint(uint16_t x, uint16_t y, char* str) { uint16_t wstr[1024]; int16_t len; len = exfonts::Utf8ToUtf16(wstr, str); // UTF8からUTF16に変換する for (uint16_t i=0; i <len; i++) { mputc(x, y, wstr[i]); if (x + ft.getWidth()*2 < TV.hres()) { x += ft.getWidth(); } else { x = 0; if (y+ft.getHeight()*2 < TV.vres()) { y+=ft.getHeight(); } else { break; } } } } void setup () { static const char* text= "吾輩わがはいは猫である。名前はまだ無い。" "どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。" "吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪どうあくな種族であったそうだ。" "というのは時々我々を捕つかまえて煮にて食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。" "ただ彼の掌てのひらに載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。" "掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始みはじめであろう。"; TV.begin(SC_448x216,2); // 第2引数でSPI 1,2を指定(デフォルト 1)) TV.adjust(2); // 垂直同期信号補正(デフォルト 0) ft.init(PA4); // フォント管理の初期化 //7種類のフォントサイズで文字列表示 while(1) for (uint8_t i =0 ; i <7; i++) { TV.fill(0); ft.setFontSize(i); mprint(0,0,(char*)text); delay(1000*3); } } void loop () { }
Arduinoと比べると、SRAMが20kバイトあるため画面解像度448x216ドットを確保出来ました。 表示も速いです。
« 豊四季 Tiny BASIC for Arduino STM32のファームウェア書込み手順 | トップページ | micro:bitをArduino環境で使う (1)タイマー割り込みでLチカ »
「arduino」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
「表示器制御関連」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用 美咲フォントライブラリを更新しました(2024.03.21)
- Raspberry Pi Pico(MicroPython)でLEDドットマトリックスを使ってみる(2024.03.14)
- Raspberry Pi Pico MicroPython用のマルチフォントライブラリ(2023.02.09)
- MicroPython(Raspberry Pi pico)で8x8ドットNeoPixcel文字表示(2023.02.08)
「ARM」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- PocketGoで遊んでみる(1)(2020.03.24)
- Arduino用 MML文演奏ライブラリの作成 その1(2019.04.01)
- BluePillボードで4桁7セグLEDの制御(2019.03.21)
「STM32」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- 「Arduino STM32 リファレンス 日本語版」が2万アクセス突破!(2021.03.26)
- SPI接続フラッシュメモリモジュールを入手しました(2020.05.13)
- Arduino STM32でキャラクタ液晶ディスプレイを使う(2019.06.01)
« 豊四季 Tiny BASIC for Arduino STM32のファームウェア書込み手順 | トップページ | micro:bitをArduino環境で使う (1)タイマー割り込みでLチカ »
コメント