<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel rdf:about="https://obo.ko-me.com/RSS/100/">
    <title>覚え書き</title>
    <link>https://obo.ko-me.com/</link>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="https://obo.ko-me.com/RSS/" />
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
    <description>パソコン・マイコン関連の、あとで必要になりそうな情報を残しておくための、健忘録てきななにかです。</description>
    <dc:language>ja</dc:language>
    <dc:date>2023-02-03T19:28:37+09:00</dc:date>
    <items>
    <rdf:Seq>
      <rdf:li rdf:resource="https://obo.ko-me.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/devkitpro%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" />
      <rdf:li rdf:resource="https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A77735lcd%E8%A1%A8%E7%A4%BA%EF%BC%88%E4%B8%BB%E6%96%87%EF%BC%89" />
      <rdf:li rdf:resource="https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A77735lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em" />
      <rdf:li rdf:resource="https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A75110lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em" />
      <rdf:li rdf:resource="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A71602lcd%E8%A1%A8%E7%A4%BA%EF%BC%88%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%89" />
      <rdf:li rdf:resource="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A71602lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em" />
      <rdf:li rdf:resource="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A7%E3%83%9C%E3%82%BF%E3%83%B3%E5%85%A5%E5%8A%9B%EF%BC%88embitz" />
      <rdf:li rdf:resource="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6" />
      <rdf:li rdf:resource="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/sdl2-gcc-sample-progrum01" />
      <rdf:li rdf:resource="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/linux%E3%81%A7sdl2%E3%82%92%E5%A7%8B%E3%82%81%E3%81%BE%E3%81%97%E3%81%9F" />
    </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="https://obo.ko-me.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/devkitpro%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B">
    <link>https://obo.ko-me.com/%E6%9C%AA%E9%81%B8%E6%8A%9E/devkitpro%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B</link>
    <title>DevkitProをインストールする</title>
    <description>任天堂Switchや3SD、DS、GBA、wii、wiiu、gamecubeの実行ファイルをC言語で生成できる
「DevkitPro」のインストール方法

※以下の作業は、AlterLinux-32Bit-Xfce環境を前提としている


01.&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ファイルマネージ...</description>
    <content:encoded><![CDATA[任天堂Switchや3SD、DS、GBA、wii、wiiu、gamecubeの実行ファイルをC言語で生成できる<br />
「DevkitPro」のインストール方法<br />
<br />
※以下の作業は、AlterLinux-32Bit-Xfce環境を前提としている<br />
<br />
<br />
01.&nbsp;&nbsp;&nbsp; ファイルマネージャを「隠しファイルを表示」にする<br />
02.&nbsp;&nbsp;&nbsp; ターミナルに"sudo xed /etc/pacman.conf"と入力（パスワードを要求され、エディターが立ち上がる）<br />
03.&nbsp;&nbsp;&nbsp; "SigLevel&nbsp;&nbsp;&nbsp; = Required DatabaseOptional"という部分を<br />
&nbsp;&nbsp;&nbsp; "#SigLevel&nbsp;&nbsp;&nbsp; = Required DatabaseOptional"という部分を<br />
&nbsp;&nbsp;&nbsp; "SigLevel&nbsp;&nbsp;&nbsp; = TrustAll"に書き換える<br />
&nbsp;&nbsp;&nbsp; また、同ファイルの末尾に<br />
&nbsp;&nbsp;&nbsp; "[dkp-libs]"<br />
&nbsp;&nbsp;&nbsp; "Server&nbsp;&nbsp;&nbsp; = htpps://pkg.devkitpro.org/packages"<br />
&nbsp;&nbsp;&nbsp; "[dkp-linux]"<br />
&nbsp;&nbsp;&nbsp; "Server&nbsp;&nbsp;&nbsp; = htpps://pkg.devkitpro.org/packages/linux/$arch/"<br />
&nbsp;&nbsp;&nbsp; を追加。上書き保存して、一旦エディターを閉じる。<br />
04.&nbsp;&nbsp;&nbsp; ターミナルに"sudo xed /home/user/.profile"と入力（パスワードを要求され、エディターが立ち上がる）<br />
&nbsp;&nbsp;&nbsp; ※"user"以外のユーザー名を使用しているなら、"user"の部分はそのユーザー名を使用する。<br />
&nbsp;&nbsp;&nbsp; ファイルの末尾に<br />
&nbsp;&nbsp;&nbsp; "export DEVKITPRO=/opt/devkitpro"<br />
&nbsp;&nbsp;&nbsp; "export DEVKITARM=${DEVKITPRO}/devkitARM"<br />
&nbsp;&nbsp;&nbsp; "export DEVKITPPC=${DEVKITPRO}/devkitPPC"<br />
&nbsp;&nbsp;&nbsp; "export PATH=${DEVKITPRO}/tools/bin:$PATH"<br />
&nbsp;&nbsp;&nbsp; を追加。上書き保存して、エディターを閉じる。<br />
05.&nbsp;&nbsp;&nbsp; ターミナルに"sudo pacman-key --recv BC26F752D25B92CE272E0F44F7FD5492264BB9D0 --keyserver keyserver.ubuntu.com"と入力<br />
06.&nbsp;&nbsp;&nbsp; ターミナルに"sudo pacman-key --lsign BC26F752D25B92CE272E0F44F7FD5492264BB9D0"と入力<br />
07.&nbsp;&nbsp;&nbsp; ターミナルに"wget https://pkg.devkitpro.org/devkitpro-keyring.pkg.tar.xz"と入力<br />
08.&nbsp;&nbsp;&nbsp; ターミナルに"sudo pacman -U devkitpro-keyring.pkg.tar.xz"と入力<br />
09.&nbsp;&nbsp;&nbsp; ここで一度logoutして、再びloginする<br />
10.&nbsp;&nbsp;&nbsp; ターミナルに"sudo pacman -Sy"と入力<br />
11.&nbsp;&nbsp;&nbsp; ターミナルに"sudo pacman -S gba-dev"と入力<br />
&nbsp;&nbsp;&nbsp; ※これで、GBAの開発環境が構築された。<br />
&nbsp;&nbsp;&nbsp; ※NDS、ターミナルに"sudo pacman -S nds-dev"と入力<br />
&nbsp;&nbsp;&nbsp; ※3DS、ターミナルに"sudo pacman -S 3ds-dev"と入力<br />
&nbsp;&nbsp;&nbsp; ※Switch、ターミナルに"sudo pacman -S switch-dev"と入力<br />
&nbsp;&nbsp;&nbsp; ※GAMECUBE、ターミナルに"sudo pacman -S gamecube-dev"と入力<br />
&nbsp;&nbsp;&nbsp; ※wii、ターミナルに"sudo pacman -S wii-dev"と入力<br />
&nbsp;&nbsp;&nbsp; ※wiiu、ターミナルに"sudo pacman -S wiiu-dev"と入力<br />
&nbsp;&nbsp;&nbsp; ※上記を個別に行うことで、任意のゲームマシンの開発環境を追加できる<br />
<br />
12.&nbsp;&nbsp;&nbsp; ターミナルに"sudo pacman -S mgba-qt"と入力<br />
&nbsp;&nbsp;&nbsp; ※GBA用エミュレーターを導入している<br />
&nbsp;&nbsp;&nbsp; ※NDS用エディターはターミナルに"sudo pacman -S desmume"と入力<br />
<br />
13.&nbsp;&nbsp;&nbsp; ターミナルに"sudo xed /etc/pacman.conf"と入力<br />
14.&nbsp;&nbsp;&nbsp; "#SigLevel&nbsp;&nbsp;&nbsp; = Required DatabaseOptional"<br />
&nbsp;&nbsp;&nbsp; "SigLevel&nbsp;&nbsp;&nbsp; = TurustAll"という部分を<br />
14.&nbsp;&nbsp;&nbsp; "SigLevel&nbsp;&nbsp;&nbsp; = Required DatabaseOptional"<br />
&nbsp;&nbsp;&nbsp; "#SigLevel&nbsp;&nbsp;&nbsp; = TurustAll"に書き換えて上書き保存する。<br />
<br />
15.&nbsp;&nbsp;&nbsp; logoutして、再びloginする<br />
<br />
<br />
16.&nbsp;&nbsp;&nbsp; ファイルマネージャを使用して、"/HOME/user/"の下に、任意の作業用フォルダーを作成する<br />
&nbsp;&nbsp;&nbsp; ※（例：game_）<br />
17.&nbsp;&nbsp;&nbsp; ファイルマネージャを使用して、"/opt/devkitpro/examples/gba/"の下に存在するすべてのファイルをコピー、これを16.で作成したフォルダーにペーストする。<br />
<br />
18.&nbsp;&nbsp;&nbsp; ファイルマネージャの機能を使用して、&rdquo;ここでターミナルを開く&rdquo;を実行する。<br />
<br />
19.&nbsp;&nbsp;&nbsp; ターミナルに"make"と入力して実行する。<br />
&nbsp;&nbsp;&nbsp; ※これで、サンプルプログラムが一度にコンパイルされた。<br />
<br />
20.&nbsp;&nbsp;&nbsp; ファイルマネージャでさらにフォルダーを下っていくと、それぞれ.gbaが生成されているので、これを"mGBA"で実行する。<br />
&nbsp;&nbsp;&nbsp; ※正常に実行されたら、一連の作業が成功したということになる。おめでとう。]]></content:encoded>
    <dc:subject>未選択</dc:subject>
    <dc:date>2023-02-03T19:28:37+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A77735lcd%E8%A1%A8%E7%A4%BA%EF%BC%88%E4%B8%BB%E6%96%87%EF%BC%89">
    <link>https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A77735lcd%E8%A1%A8%E7%A4%BA%EF%BC%88%E4%B8%BB%E6%96%87%EF%BC%89</link>
    <title>STM32F030F4P6で7735LCD表示（主文）</title>
    <description>またしても、STM32F030F4P6でLCD表示を行う記事です。

今回は7735というチップで制御されたカラー液晶ディスプレーです。
 

表示能力は、128x128で、色数は18ビットモードと16ビットモードの２種類から選択出来るようです。
5110より明らかに高性能なのですが、１画面分のデー...</description>
    <content:encoded><![CDATA[またしても、STM32F030F4P6でLCD表示を行う記事です。<br />
<br />
今回は7735というチップで制御されたカラー液晶ディスプレーです。<br />
<img src="//obo.ko-me.com/File/STM32-LCD7735-20190915a.jpg" alt="" /> <br />
<br />
表示能力は、128x128で、色数は18ビットモードと16ビットモードの２種類から選択出来るようです。<br />
5110より明らかに高性能なのですが、１画面分のデータ量が増える分、速度的には不利になるので、全ての面でNokiaに勝るというわけではありません。<br />
とはいえ、84x48ドットモノクロのNokiaと128x128ドットフルカラーの7735では、画面の情報量が圧倒的に違いますし、機能も多いので、使い勝手は7735の方が上だと思います。<br />
ですが、この程度のシステムでも一瞬で画面が書き換わるNokia5110も十分に魅力的です。<br />
<br />
さて。<br />
この「忍者ブログ」には、１つの記事あたりの文字数に制限があるようで、それに引っかかってしまいました。<br />
プログラムコードの部分だけなら通ったので、今回は、主文とソースが別れました。<br />
<br />
今回のプログラムを作成するに当たっては、<br />
<br />
ブログサイト「何かの足跡」様の<a href="http://www.d-b.ne.jp/%7Ek-kita/DIV_prn_005.html">ST7735B 1.8" TFT SPI</a><br />
という記事や、<br />
ブログサイト「ネコ技研」様の<a href="https://necotech.org/archives/531" rel="bookmark">TFT液晶LCD+AVRマイコンで自作フォントを表示</a><br />
という記事が大変参考になりました。<br />
<br />
また、STM32F030F4P6そのものに関しては、<br />
ブログサイト「おじさん工房」様の<a href="http://ojisankoubou.web.fc2.com/stm-1/index.html">実験用マイコン基板　ＳＴＭ－１</a>という記事の意見が参考になりました。<br />
この場を借りて、お礼を述べさせて頂きます。<br />
ありがとうございました。<br />
<br />
さて。<br />
「おじさん工房」の主様は、「20pin-16KBじゃ足りなすぎる」ということで、１ランク上の「STM32F030K6T6（32pin-32KB）」に移行して開発を進めましたが、私はそれを知りつつ、20pin-16KBのSTM32F030F4P6を使い続けております。<br />
<br />
だって。<br />
<br />
安かったから、まとめ買いで100個も買っちゃったんだもの。<br />
（STM32F030K6T6も幾つか持ってますけどね）<br />
<br />
<br />
プログラム的には、Nokia5110のものをベースに、コマンド周りを中心に変更しています。<br />
SPI通信に関しては、いわゆる「ソフトウェア式」のため、7735に対しては速度がかなり遅いようです。<br />
これを、「ハードウェア式」に改めた場合、高速化されるのか、それとも、ほとんど変わらないのか。<br />
その辺のことは、これから見定めて対応したいと思います。<br />
（7735のフルカラー画像が一瞬で表示されるような速度が確保できたなら、夢が一気にひろがりまくります）]]></content:encoded>
    <dc:subject>STM32</dc:subject>
    <dc:date>2019-09-16T08:24:10+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A77735lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em">
    <link>https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A77735lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em</link>
    <title>STM32F030F4P6で7735LCD表示（EmBitz-サンプルプログラム）</title>
    <description>




/*
**********************************************************************
**
**&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;...</description>
    <content:encoded><![CDATA[<img src="//obo.ko-me.com/File/STM32-LCD7735-20190915a.jpg" alt="" /><br />
<br />
<iframe width="400" height="225" src="http://www.youtube.com/embed/dpU0BE-s4Mg" frameborder="0" allowfullscreen=""></iframe><br />
<br />
<br />
<span style="color: #800000;">/*</span><br />
<span style="color: #800000;">**********************************************************************</span><br />
<span style="color: #800000;">**</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Main.c</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPI-7735（128x128 LCD）</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EmBitz</span><br />
<span style="color: #800000;">**</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 旧-現在</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A5-A2-Output&nbsp;&nbsp;&nbsp; RESRT/RS&nbsp;&nbsp; (Reset)</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A6-A6-Output&nbsp;&nbsp;&nbsp; CS/CE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Master In Slave Out:Low=GND)</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A7-A5-Output&nbsp;&nbsp;&nbsp; A0/DC</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5110=PCD8544&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Data/Command:Data=High_Command=Low)</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ST7735&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Data/Command:Data=High_Command=Low)</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A2-A7-Output&nbsp;&nbsp;&nbsp; SDA/DIN&nbsp;&nbsp;&nbsp; (Serial Input/SDA:送信Data)</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A3-A4-Output&nbsp;&nbsp;&nbsp; SCK/CLK&nbsp;&nbsp;&nbsp; (Serial Clock)</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A4-A3-Output&nbsp;&nbsp;&nbsp; LED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Back Light)</span><br />
<span style="color: #800000;">**</span><br />
<span style="color: #800000;">**********************************************************************/</span><br />
<span style="color: #800000;">/*</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; Last committed:&nbsp;&nbsp;&nbsp;&nbsp; $Revision:&nbsp;&nbsp; 31$</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; Last changed by:&nbsp;&nbsp;&nbsp; $Author:&nbsp;&nbsp;&nbsp;&nbsp; Masaomi.Takahashi.$</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; Last changed date:&nbsp; $Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2019-09-15</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Id:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 02</span><br />
<span style="color: #800000;">**********************************************************************/</span><br />
<span style="color: #800000;">#include "stm32f0xx.h"</span><br />
<br />
<span style="color: #800000;">unsigned char w_00[][14]={</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; { 23, 21, 22, 30,108, 21, 30,109, 22, 26,110,&nbsp; 0,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [00]&nbsp;&nbsp;&nbsp; 2019年09月15日</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; {124,&nbsp; 2,128,&nbsp; 0, 24, 21,&nbsp; 2,127,&nbsp; 0, 21, 23,&nbsp; 0,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [01]&nbsp;&nbsp;&nbsp; VER 30EZ02</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; {115,&nbsp; 4,&nbsp; 3,&nbsp; 4,&nbsp; 0,&nbsp; 3, 12,127,&nbsp; 7,&nbsp; 2,107,&nbsp; 0,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [02]&nbsp;&nbsp;&nbsp; MOLO LIZWE!</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; {134,117,135,&nbsp; 8,&nbsp; 2,122,&nbsp; 0,136,135,117,&nbsp; 0,&nbsp; 0,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [03]</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; {118,119,&nbsp; 0, 19, 20,&nbsp; 0,&nbsp; 0,&nbsp; 0,&nbsp; 0,&nbsp; 0,&nbsp; 0,&nbsp; 0,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [04]</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; {&nbsp; 9, 12,&nbsp; 5,&nbsp; 4,&nbsp; 0,115,&nbsp; 4,116, 11,&nbsp; 4,107,&nbsp; 0,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [05]&nbsp;&nbsp;&nbsp; CIAO MONDO!</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; { 13, 14, 15, 16, 53,&nbsp; 0, 19, 20,&nbsp; 0,&nbsp; 0,&nbsp; 0,&nbsp; 0,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [06]&nbsp;&nbsp;&nbsp; こんにちは　世界</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; {&nbsp; 1,&nbsp; 2,&nbsp; 3,&nbsp; 3,&nbsp; 4,&nbsp; 0,&nbsp; 7,&nbsp; 4,128,&nbsp; 3, 11,107,&nbsp; 0,0xFF},&nbsp;&nbsp;&nbsp; //&nbsp; [07]&nbsp;&nbsp;&nbsp; HELLO WORLD!</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; {121,122,115, 24, 23,&nbsp; 6, 21, 24, 21,&nbsp; 6, 25,117, 27,0xFF}&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp; [08]&nbsp;&nbsp;&nbsp; STM32F030F4P6</span><br />
<br />
<span style="color: #800000;">};</span><br />
<br />
<span style="color: #800000;">unsigned char font[] =&nbsp; {</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&nbsp;&nbsp; //&nbsp; Space&nbsp;&nbsp; 0</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0xFE,&nbsp;&nbsp; //&nbsp; H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x92, 0x92, 0x92, 0x92, 0x82,&nbsp;&nbsp; //&nbsp; E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x80,&nbsp;&nbsp; //&nbsp; L&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x38, 0x44, 0x82, 0x82, 0x44, 0x38,&nbsp;&nbsp; //&nbsp; O&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xC0, 0x30, 0x2C, 0x22, 0x2C, 0x30, 0xC0,&nbsp;&nbsp; //&nbsp; A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x12, 0x12, 0x12, 0x12, 0x02,&nbsp;&nbsp; //&nbsp; F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x3E, 0xC0, 0x30, 0x0C, 0x30, 0xC0, 0x3E,&nbsp;&nbsp; //&nbsp; W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x92, 0x92, 0x92, 0x92, 0x66,&nbsp;&nbsp; //&nbsp; B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x44,&nbsp;&nbsp; //&nbsp; C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x38, 0x44, 0x82, 0x92, 0x92, 0x74,&nbsp;&nbsp; //&nbsp; G&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x82, 0x82, 0x82, 0x44, 0x38,&nbsp;&nbsp; //&nbsp; D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x00, 0x82, 0xFE, 0x82, 0x00, 0x00,&nbsp;&nbsp; //&nbsp; I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0xA4, 0x84, 0x84, 0x84, 0x80,&nbsp;&nbsp; //&nbsp; こ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x80, 0x60, 0x18, 0x66, 0x80, 0x80, 0x40,&nbsp;&nbsp; //&nbsp; ん&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x00, 0x40, 0xA4, 0x84, 0x84, 0x80,&nbsp;&nbsp; //&nbsp; に&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x04, 0x24, 0x9C, 0x96, 0x94, 0x64,&nbsp;&nbsp; //&nbsp; ち&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x48, 0x28, 0xFE, 0x08, 0x84, 0x84, 0x78,&nbsp;&nbsp; //&nbsp; わ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0x80, 0x80, 0x80, 0x80, 0x7E,&nbsp;&nbsp; //&nbsp; J&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x04, 0xFF, 0x84, 0xBF, 0xA4, 0xBF, 0x84,&nbsp;&nbsp; //&nbsp; 世&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x5F, 0xF5, 0x3F, 0x1F, 0xF5, 0x5F,&nbsp;&nbsp; //&nbsp; 界&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x7C, 0x82, 0x82, 0x82, 0x82, 0x7C,&nbsp;&nbsp; //&nbsp; ０&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 21</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x00, 0x84, 0xFE, 0x80, 0x00, 0x00,&nbsp;&nbsp; //&nbsp; １&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xC4, 0xA2, 0xA2, 0x92, 0x92, 0x8C,&nbsp;&nbsp; //&nbsp; ２&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 23</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x44, 0x82, 0x92, 0x92, 0x92, 0x6C,&nbsp;&nbsp; //&nbsp; ３&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x60, 0x50, 0x48, 0x44, 0xFE, 0x40,&nbsp;&nbsp; //&nbsp; ４&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x5E, 0x8A, 0x8A, 0x8A, 0x8A, 0x72,&nbsp;&nbsp; //&nbsp; ５&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x7C, 0x92, 0x92, 0x92, 0x92, 0x74,&nbsp;&nbsp; //&nbsp; ６&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 27</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x02, 0x02, 0xC2, 0x32, 0x0A, 0x06,&nbsp;&nbsp; //&nbsp; ７&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x6C, 0x92, 0x92, 0x92, 0x92, 0x6C,&nbsp;&nbsp; //&nbsp; ８&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 29</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x4C, 0x92, 0x92, 0x92, 0x92, 0x7C,&nbsp;&nbsp; //&nbsp; ９&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x40, 0xA4, 0xFE, 0x54, 0x34, 0x94, 0x60,&nbsp;&nbsp; //&nbsp; あ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x3C, 0x40, 0x80, 0x40, 0x04, 0x08, 0x30,&nbsp;&nbsp; //&nbsp; い&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x10, 0x8A, 0x8A, 0x8A, 0x4A, 0x30,&nbsp;&nbsp; //&nbsp; う&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x80, 0x4A, 0x2A, 0x7A, 0x80, 0x80,&nbsp;&nbsp; //&nbsp; え&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x44, 0xA4, 0xFE, 0x14, 0x90, 0x94, 0x68,&nbsp;&nbsp; //&nbsp; お&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 35</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x88, 0x68, 0x9E, 0x88, 0x70, 0x08, 0x30,&nbsp;&nbsp; //&nbsp; か&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 36</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x54, 0xB4, 0x94, 0x9C, 0xB4, 0x10,&nbsp;&nbsp; //&nbsp; き　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 37</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x10, 0x28, 0x28, 0x44, 0x82, 0x00,&nbsp;&nbsp; //&nbsp; く&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 38</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x7E, 0x00, 0x08, 0x88, 0x7E, 0x08, 0x08,&nbsp;&nbsp; //&nbsp; け&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 39</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x48, 0xA8, 0x88, 0x8E, 0xB8, 0x08,&nbsp;&nbsp; //&nbsp; さ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x00, 0x7E, 0x80, 0x80, 0x80, 0x40,&nbsp;&nbsp; //&nbsp; し 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 41</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x04, 0x04, 0x14, 0xAC, 0x7E, 0x04, 0x04,&nbsp;&nbsp; //&nbsp; す 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 42</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x08, 0x08, 0x7E, 0x88, 0xA8, 0xBE, 0x88,&nbsp;&nbsp; //&nbsp; せ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 43</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x10, 0x12, 0x7A, 0x96, 0x92, 0x10,&nbsp;&nbsp; //&nbsp; そ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 44</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x84, 0x74, 0x0E, 0x44, 0xA8, 0x88, 0x88,&nbsp;&nbsp; //&nbsp; た 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 45</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x08, 0x08, 0x04, 0x44, 0x44, 0x44, 0x38,&nbsp;&nbsp; //&nbsp; つ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 46</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x04, 0x04, 0x34, 0x4A, 0x86, 0x82,&nbsp;&nbsp; //&nbsp; て 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 47</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0xAE, 0x90, 0x90, 0x88, 0x88,&nbsp;&nbsp; //&nbsp; と 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 48</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x24, 0x14, 0x4E, 0xA4, 0xA0, 0x74, 0x48,&nbsp;&nbsp; //&nbsp; な 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 49</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x60, 0x9C, 0x70, 0xA0, 0x1E, 0xC8, 0xF0,&nbsp;&nbsp; //&nbsp; ぬ． 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 50</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x48, 0x28, 0xFE, 0x08, 0x44, 0xA4, 0x78,&nbsp;&nbsp; //&nbsp; ね 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x30, 0x48, 0x24, 0x9C, 0x84, 0x48, 0x03,&nbsp;&nbsp; //&nbsp; の 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 52</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x00, 0x48, 0xA8, 0xA8, 0x7E, 0x88,&nbsp;&nbsp; //&nbsp; は 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 53</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x04, 0x74, 0x8E, 0x80, 0x82, 0x7C, 0x08,&nbsp;&nbsp; //&nbsp; ひ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 54</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x80, 0x60, 0x80, 0x9A, 0x64, 0x20, 0xC0,&nbsp;&nbsp; //&nbsp; ふ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 55</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x20,&nbsp;&nbsp; //&nbsp; へ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 56</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x00, 0xD4, 0xD4, 0xFC, 0x54, 0x94,&nbsp;&nbsp; //&nbsp; ほ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 57</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xD4, 0xD4, 0xD4, 0xFE, 0x54, 0x94,&nbsp;&nbsp; //&nbsp; ま 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 58</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x60, 0x52, 0x32, 0x96, 0x90, 0x78, 0x20,&nbsp;&nbsp; //&nbsp; み 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 59</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x24, 0x54, 0xFE, 0x84, 0x80, 0x84, 0x48,&nbsp;&nbsp; //&nbsp; む 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x60, 0x9C, 0x70, 0xA8, 0x1E, 0x88, 0x70,&nbsp;&nbsp; //&nbsp; め 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 61</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x14, 0x7C, 0x96, 0x94, 0x94, 0x60,&nbsp;&nbsp; //&nbsp; も 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 62</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x08, 0x0E, 0x38, 0xC4, 0x06, 0x14, 0x08,&nbsp;&nbsp; //&nbsp; や 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 63</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x3C, 0x08, 0xA4, 0x7E, 0x24, 0x24, 0x18,&nbsp;&nbsp; //&nbsp; ゆ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 64</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0xA0, 0xA0, 0x7E, 0x48, 0x88,&nbsp;&nbsp; //&nbsp; よ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 65</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x20, 0x14, 0x5C, 0xB6, 0xE4, 0x94, 0x90,&nbsp;&nbsp; //&nbsp; を 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 66</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x10, 0x1C, 0x70, 0x8C, 0x28, 0x10,&nbsp;&nbsp; //&nbsp; ゃ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 67</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x38, 0x90, 0x7C, 0x48, 0x30, 0x00,&nbsp;&nbsp; //&nbsp; ゅ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 68</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0xA0, 0xA0, 0x7C, 0x90, 0x00,&nbsp;&nbsp; //&nbsp; ょ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 69</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x20, 0x20, 0x90, 0x90, 0x60, 0x00,&nbsp;&nbsp; //&nbsp; っ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 70</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0xA8, 0xFC, 0x68, 0x28, 0xC0,&nbsp;&nbsp; //&nbsp; ぁ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 71</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x78, 0x80, 0x40, 0x08, 0x30, 0x00,&nbsp;&nbsp; //&nbsp; ぃ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 72</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x20, 0x94, 0x94, 0x54, 0x20, 0x00,&nbsp;&nbsp; //&nbsp; ぅ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 73</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x90, 0x54, 0x74, 0x94, 0x80, 0x00,&nbsp;&nbsp; //&nbsp; ぇ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 74</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x48, 0xFC, 0x28, 0xA0, 0x48, 0x00,&nbsp;&nbsp; //&nbsp; ぉ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 75</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,&nbsp;&nbsp; //&nbsp; ー 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 76</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x88, 0x68, 0x9E, 0x88, 0x72, 0x08, 0x32,&nbsp;&nbsp; //&nbsp; が 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 77</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x54, 0xB4, 0x96, 0x9C, 0xB6, 0x10,&nbsp;&nbsp; //&nbsp; ぎ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 78</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x10, 0x28, 0x28, 0x44, 0x8A, 0x08,&nbsp;&nbsp; //&nbsp; ぐ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 79</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x7E, 0x00, 0x08, 0x88, 0x7E, 0x08, 0x0A,&nbsp;&nbsp; //&nbsp; げ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0xA4, 0x84, 0x86, 0x84, 0x82,&nbsp;&nbsp; //&nbsp; ご 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 81</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x58, 0xA8, 0x88, 0x8E, 0xB8, 0x0A,&nbsp;&nbsp; //&nbsp; ざ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 82</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x00, 0x7E, 0x80, 0x82, 0x80, 0x42,&nbsp;&nbsp; //&nbsp; じ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 83</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x04, 0x04, 0x14, 0xAC, 0x7E, 0x04, 0x06,&nbsp;&nbsp; //&nbsp; ず 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 84</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x08, 0x08, 0x7E, 0x88, 0xA8, 0xBE, 0x8A,&nbsp;&nbsp; //&nbsp; ぜ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 85</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x10, 0x12, 0x7A, 0x96, 0x92, 0x14,&nbsp;&nbsp; //&nbsp; ぞ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x84, 0x74, 0x0E, 0x44, 0xAA, 0x88, 0x8A,&nbsp;&nbsp; //&nbsp; だ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 87</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x04, 0x24, 0x9C, 0x96, 0x94, 0x66,&nbsp;&nbsp; //&nbsp; ぢ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 88</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x08, 0x08, 0x04, 0x44, 0x46, 0x44, 0x3A,&nbsp;&nbsp; //&nbsp; づ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 89</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x04, 0x04, 0x34, 0x4A, 0x86, 0x8A,&nbsp;&nbsp; //&nbsp; で 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 90</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x40, 0xAE, 0x90, 0x92, 0x88, 0x8A,&nbsp;&nbsp; //&nbsp; ど 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 91</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x00, 0x48, 0xA8, 0xA8, 0x7E, 0x8A,&nbsp;&nbsp; //&nbsp; ば 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 92</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x04, 0x74, 0x8E, 0x80, 0x82, 0x7C, 0x0C,&nbsp;&nbsp; //&nbsp; び 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 93</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x80, 0x60, 0x80, 0x9A, 0x64, 0x22, 0xC2,&nbsp;&nbsp; //&nbsp; ぶ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 94</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x10, 0x08, 0x04, 0x08, 0x12, 0x20, 0x22,&nbsp;&nbsp; //&nbsp; べ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 95</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x00, 0xD4, 0xD4, 0xFE, 0x54, 0x96,&nbsp;&nbsp; //&nbsp; ぼ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 96</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x00, 0x48, 0xA8, 0xAC, 0x7A, 0x8C,&nbsp;&nbsp; //&nbsp; ぱ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 97</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x04, 0x74, 0x8E, 0x80, 0x86, 0x7A, 0x0C,&nbsp;&nbsp; //&nbsp; ぴ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 98</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x80, 0x60, 0x80, 0x9A, 0x64, 0x2A, 0xC4,&nbsp;&nbsp; //&nbsp; ぷ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 99</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x10, 0x08, 0x04, 0x08, 0x14, 0x2A, 0x24,&nbsp;&nbsp; //&nbsp; ぺ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x00, 0xD4, 0xD4, 0xFE, 0x54, 0x96,&nbsp;&nbsp; //&nbsp; ぽ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 101</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,&nbsp;&nbsp; //&nbsp; 、 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 102</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x40, 0xA0, 0x40, 0x00, 0x00, 0x00, 0x00,&nbsp;&nbsp; //&nbsp; 。 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 103</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x02,&nbsp;&nbsp; //&nbsp; 「 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 104</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x80, 0x80, 0x80, 0xFC, 0x00, 0x00, 0x00,&nbsp;&nbsp; //&nbsp; 」 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 105</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x04, 0x02, 0xA2, 0x12, 0x12, 0x0C,&nbsp;&nbsp; //&nbsp; ？ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 106</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00,&nbsp;&nbsp; //&nbsp; ！ 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 107</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x48, 0x76, 0x54, 0xFC, 0x54, 0x54, 0x44,&nbsp;&nbsp; //&nbsp; 年 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 108</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x80, 0x40, 0x3E, 0x2A, 0x2A, 0xAA, 0xFE,&nbsp;&nbsp; //&nbsp; 月 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 109</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x92, 0x92, 0x92, 0x92, 0xFE,&nbsp;&nbsp; //&nbsp; 日 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 110</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x7C, 0x54, 0x7C, 0xC4, 0x5E, 0xF4, 0x50,&nbsp;&nbsp; //&nbsp; 時 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 111</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x90, 0x88, 0x56, 0x30, 0x96, 0xF8, 0x10,&nbsp;&nbsp; //&nbsp; 分 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 112</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x6A, 0xFE, 0x10, 0x8C, 0xBE, 0x44, 0x28,&nbsp;&nbsp; //&nbsp; 秒 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 113</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x20, 0x10, 0x28, 0x44, 0x82,&nbsp;&nbsp; //&nbsp; K 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 114</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xFE, 0x04, 0x18, 0x60, 0x18, 0x04, 0xFE,&nbsp;&nbsp; //&nbsp; M 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 115</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x04, 0x08, 0x10, 0x20, 0xFE,&nbsp;&nbsp; //&nbsp; N 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 116</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x12, 0x12, 0x12, 0x12, 0x06,&nbsp;&nbsp; //&nbsp; P 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 117</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x08, 0xFC, 0x4A, 0x2C, 0xFE, 0x04, 0x6C,&nbsp;&nbsp; //&nbsp; ニィ（ハオ） 　 118</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x88, 0xB8, 0x6E, 0x58, 0x92, 0xFA, 0x16,&nbsp;&nbsp; //&nbsp; 好 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 119</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x38, 0x44, 0x82, 0xA2, 0x44, 0xB8,&nbsp;&nbsp; //&nbsp; Q 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 120</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x4C, 0x92, 0x92, 0x92, 0x92, 0x64,&nbsp;&nbsp; //&nbsp; S 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 121</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x02, 0x02, 0x02, 0xFE, 0x02, 0x02, 0x02,&nbsp;&nbsp; //&nbsp; T 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 122</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x7E, 0x80, 0x80, 0x80, 0x80, 0x7E,&nbsp;&nbsp; //&nbsp; U 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 123</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x06, 0x18, 0x60, 0x80, 0x60, 0x18, 0x06,&nbsp;&nbsp; //&nbsp; V 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 124</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82,&nbsp;&nbsp; //&nbsp; X 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 125</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x02, 0x04, 0x08, 0xF0, 0x08, 0x04, 0x02,&nbsp;&nbsp; //&nbsp; Y 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 126</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x82, 0xC2, 0xA2, 0x92, 0x8A, 0x86,&nbsp;&nbsp; //&nbsp; Z 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x12, 0x12, 0x32, 0x52, 0x8C,&nbsp;&nbsp; //&nbsp; R 　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 128</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x30, 0x2A, 0x92, 0x92, 0x94, 0x50, 0x20,&nbsp;&nbsp; //&nbsp; ら&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 129</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0x1E, 0x84, 0x82, 0x42, 0x3C, 0x00,&nbsp;&nbsp; //&nbsp; り&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 130</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x20, 0x52, 0xAA, 0xAE, 0xCA, 0x8A, 0x70,&nbsp;&nbsp; //&nbsp; る&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x44, 0x34, 0xFE, 0x08, 0x04, 0xFC, 0x80,&nbsp;&nbsp; //&nbsp; れ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 132</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x20, 0x12, 0x9A, 0x96, 0x96, 0x92, 0x60,&nbsp;&nbsp; //&nbsp; ろ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 133</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x02, 0x02, 0x02, 0x02, 0xFE,&nbsp;&nbsp; //&nbsp; П РИВЕТ　МИР&nbsp;&nbsp; 134</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0x00, 0xFE, 0x40, 0x20, 0x20, 0x08, 0xFE,&nbsp;&nbsp; //&nbsp; И&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 135</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; 0xF0, 0x0E, 0x30, 0xC0, 0x30, 0x0E, 0xF0,&nbsp;&nbsp; //&nbsp; М&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 136</span><br />
<br />
<br />
<span style="color: #800000;">};</span><br />
<br />
<span style="color: #800000;">int main(void)</span><br />
<span style="color: #800000;">{</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; RCC&nbsp;&nbsp; -&gt;AHBENR |= (1&lt;&lt;17);&nbsp; //　GPIO-Aの初期化(最初は0クロックで無可動状態)</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;4);&nbsp;&nbsp; //　ピン A - 2 を出力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;4);&nbsp;&nbsp; //　ピン A - 2 を プルアップ指定</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;6);&nbsp;&nbsp; //　ピン A - 3 を出力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;6);&nbsp;&nbsp; //　ピン A - 3 を プルアップ指定</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;8);&nbsp;&nbsp; //　ピン A - 4 を出力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;8);&nbsp;&nbsp; //　ピン A - 4 を プルアップ指定</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;10);&nbsp; //　ピン A - 5 を出力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;10);&nbsp; //　ピン A - 5 を プルアップ指定</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;12);&nbsp; //　ピン A - 6 を出力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;12);&nbsp; //　ピン A - 6 を プルアップ指定</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;14);&nbsp; //　ピン A - 7 を出力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;14);&nbsp; //　ピン A - 7 を プルアップ指定</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin2をOffにする</span><br />
<span style="color: #800000;">//&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOffにする　バックライト無し</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOnにする　バックライト有り</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;5);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin5をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin6をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin7をOffにする</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; delay_ms(100);</span><br />
<span style="color: #800000;">&nbsp; lcd_init();</span><br />
<br />
<span style="color: #800000;">while(1){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_position(110,118,119,127);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; delay_ms(1500);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_clear_2();</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_clear_0();</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_clear_2();</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_clear_1();</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_clear_0();</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[6],4);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[7],5);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[5],6);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[4],7);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[3],8);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[2],9);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[1],11);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[0],12);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_w2(w_00[8],13);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; delay_ms(5000);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_position(100,108,119,127);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">//---------- 文字出力２ ----------</span><br />
<span style="color: #800000;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *sc：文字列の先頭ポインタ</span><br />
<span style="color: #800000;">void lcd_put_w2(char w[],int y) {</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; int j=0;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; char *sc;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; while(w[j]&lt;254){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; sc=font+(w[j])*7;</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_position(128-(y*8),128-(y*8-7),(10+j*8),(3+j*8));//　Nokia5110のデータを流用するため、こんな奇っ怪な式になった</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x36);&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; メモリ制御方法指定（描写方法）&nbsp;&nbsp; 　Nokia5110との互換性をある程度維持するため、このような命令が必要になった</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x70);&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　Nokia5110との互換性をある程度維持するため、このような命令が必要になった</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2C);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; int i=7;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //データー読み出し量</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_ch(*(sc++));</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; j++;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x36);&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; メモリ制御方法指定（描写方法）</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xC8);&nbsp; //</span><br />
<br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">//---------- データ出力 ----------</span><br />
<span style="color: #800000;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch：出力するデータ</span><br />
<span style="color: #800000;">void lcd_ch(char ch)</span><br />
<span style="color: #800000;">{</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_4bit(ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //上位4bit出力</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_4bit(ch&lt;&lt;4);&nbsp;&nbsp;&nbsp; //下位4bit出力</span><br />
<br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">//---------- データ4bit処理 ----------</span><br />
<span style="color: #800000;">void lcd_4bit(char code)</span><br />
<span style="color: #800000;">{</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x80){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">}</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x40){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">}</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x20){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">}</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x10){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">}</span><br />
<span style="color: #800000;">}</span><br />
<br />
<br />
<span style="color: #800000;">//---------- 表示位置設定 ----------</span><br />
<span style="color: #800000;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xx：x座標&nbsp; yy：y座標</span><br />
<span style="color: #800000;">void lcd_position(short x1,short x2,short y1,short y2)</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2A);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(x1 &gt;&gt;8);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(x1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(x2 &gt;&gt;8);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(x2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2B);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(y1 &gt;&gt;8);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(y1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(y2 &gt;&gt;8);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(y2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</span><br />
<br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">//---------- データ4bit出力 ----------</span><br />
<span style="color: #800000;">void lcd_put_4bit(char code)</span><br />
<span style="color: #800000;">{</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x80)</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;7);&nbsp; //GPIOA-Pin7をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7); //GPIOA-Pin7をOffにする</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x40)</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;7);&nbsp; //GPIOA-Pin7をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7); //GPIOA-Pin7をOffにする</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x20)</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;7);&nbsp; //GPIOA-Pin7をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7); //GPIOA-Pin7をOffにする</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOffにする</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x10)</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;7);&nbsp; //GPIOA-Pin7をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7); //GPIOA-Pin7をOffにする</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOnにする</span><br />
<br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">//---------- データ出力 ----------</span><br />
<span style="color: #800000;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch：出力するデータ</span><br />
<span style="color: #800000;">void lcd_put_ch(char ch)</span><br />
<span style="color: #800000;">{</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6); //GPIOA-Pin6(CE)をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;5);&nbsp; //GPIOA-Pin5（DC）をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //上位4bit出力</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(ch&lt;&lt;4);&nbsp;&nbsp;&nbsp; //下位4bit出力</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;6);&nbsp; //GPIOA-Pin6(CE)をOnにする</span><br />
<br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">//---------- コマンド送信 ----------</span><br />
<span style="color: #800000;">void lcd_put_cmd(char cmd)</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6); //GPIOA-Pin6(CE)をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;5); //GPIOA-Pin5（DC）をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(cmd);&nbsp;&nbsp; //上位4bit出力</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(cmd&lt;&lt;4);//下位4bit出力</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;6);&nbsp; //GPIOA-Pin6(CE)をOnにする</span><br />
<br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">//---------- 塗りつぶし（消去） ----------</span><br />
<span style="color: #800000;">void lcd_clear_0()</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_position(0x02,0x81,0x03,0x82);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2C);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; int i=128*128*2;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #800000;">}&nbsp;&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #800000;">void lcd_clear_1()</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_position(0x02,0x81,0x03,0x82);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2C);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; int i=128*128*2;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(i*2);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #800000;">}&nbsp;&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #800000;">void lcd_clear_2()</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2C);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; int i=32*128;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x88);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xE2);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2F);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xCC);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x70);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x15);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x55);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x55);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #800000;">}&nbsp;&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #800000;">//---------- LCD初期化 ----------</span><br />
<span style="color: #800000;">void lcd_init()</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2); //GPIOA-Pin2（RS）をOffにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; delay_ms(20);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;2);&nbsp; //GPIOA-Pin2（RS）をOnにする</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; delay_ms(20);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x11);&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; スリープ解除</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; delay_ms(30);</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0xB2);&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; パワーセット</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x01);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2C);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2D);&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0xB4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //液晶反転設定</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x07);&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0xC3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //電源設定-（8色）</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x8A);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2A);&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0xC5);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //VMCTR1 VCOM control 1</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x0E);&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x36);&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; メモリ制御方法指定（描写方法）</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xC8);&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0xE0);&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; ガンマシーケンス</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x02);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x1C);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x07);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x12);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x37);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x32);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x29);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2D);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x29);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x25);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2B);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x39);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x01);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x03);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x10);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0xE1);</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x03);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x1D);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x07);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x06);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2E);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2C);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x29);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2D);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2E);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x2E);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x37);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x3F);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x02);&nbsp; //</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x10);&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2A);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //列アドレス設定</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //上</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x02);&nbsp; //下&nbsp; 開始アドレス0002h</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //上</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x81);&nbsp; //下&nbsp; 開始アドレス0081h=129</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2B);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // リセット行アドレスセット</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //上</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x01);&nbsp; //下&nbsp; 開始アドレス0003h</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);&nbsp; //上</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x82);&nbsp; //下&nbsp; 開始アドレス0082h=130</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x3A);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // RGB転送タイプ/0x05＝16ビットモード</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x05);&nbsp; //</span><br />
<br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x29);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ディスプレイ・表示開始</span><br />
<span style="color: #800000;">}</span><br />
<br />
<span style="color: #800000;">void delay_ms(uint32_t i)</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; i=i*100;</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #800000;">}&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #800000;">void delay_us(uint32_t i)</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #800000;">}&nbsp;&nbsp; }</span><br />
<br />
&nbsp;<img src="//obo.ko-me.com/File/022f8568.jpeg" alt="" /> <br />
<img src="//obo.ko-me.com/File/793a87ce." alt="" />]]></content:encoded>
    <dc:subject>STM32</dc:subject>
    <dc:date>2019-09-16T00:51:13+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A75110lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em">
    <link>https://obo.ko-me.com/stm32/stm32f030f4p6%E3%81%A75110lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em</link>
    <title>STM32F030F4P6で5110LCD表示（EmBitz-サンプルプログラム）</title>
    <description>

またしても、STM32F030F4P6でLCD表示を行う記事です。
今回はNokia5110というグラフィック液晶ディスプレーです。
1602よりも若干高めで、そもそも、供給源が解体された携帯電話からの回収部品であるために、市場からは1602よりも早く駆逐されてしまうと思いますが、決められたキャ...</description>
    <content:encoded><![CDATA[<iframe width="400" height="225" src="http://www.youtube.com/embed/va4Mt-8CLIM" frameborder="0" allowfullscreen=""></iframe><br />
<br />
またしても、STM32F030F4P6でLCD表示を行う記事です。<br />
今回はNokia5110というグラフィック液晶ディスプレーです。<br />
1602よりも若干高めで、そもそも、供給源が解体された携帯電話からの回収部品であるために、市場からは1602よりも早く駆逐されてしまうと思いますが、決められたキャラクター文字しか表示できない1602よりも、表現力は上で、使い勝手は圧倒的に勝るはずです。<br />
<br />
とはいえ、まだ「表示できた」というだけのレベルで、文字や記号を表示するには至っていません。<br />
<br />
今回は、「ちゃんと制御できた」ということを検証するためのデモプログラムという事になりますが、ここまでくればあとはどうにでもなるんじゃないかな？　と思います。<br />
とにかく、「ここまで来る道のり」が厳しかったです。<br />
<br />
<br />
<span style="color: #993300;">/*</span><br />
<span style="color: #993300;">**********************************************************************</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Main.c</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPI-5110</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EmBitz</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A1-Input&nbsp;&nbsp;&nbsp; （現在は未使用）</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A5-Output&nbsp;&nbsp;&nbsp; RS&nbsp; (Reset)</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A6-Output&nbsp;&nbsp;&nbsp; CE&nbsp; (Master In Slave Out:Low=GND)</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A7-Output&nbsp;&nbsp;&nbsp; DC&nbsp; (Data/Command:Data=High_Command=Low)</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A2-Output&nbsp;&nbsp;&nbsp; DIN (Serial Input:送信Data)</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A3-Output&nbsp;&nbsp;&nbsp; CLK (Serial Clock)</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A4-Output&nbsp;&nbsp;&nbsp; LED (DL)</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**&nbsp; 空のprojectを作成し、設定をhexファイルが取得できるように変更して、</span><br />
<span style="color: #993300;">**&nbsp; main.cにこの文章をcopy&amp;pasteして、コンパイルすれば完成です</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**********************************************************************/</span><br />
<span style="color: #993300;">/*</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; Last committed:&nbsp;&nbsp;&nbsp;&nbsp; $Revision:&nbsp;&nbsp; 27X$</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; Last changed by:&nbsp;&nbsp;&nbsp; $Author:&nbsp;&nbsp;&nbsp;&nbsp; Masaomi.Takahashi.$</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; Last changed date:&nbsp; $Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2019-09-01</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Id:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0025</span><br />
<span style="color: #993300;">**********************************************************************/</span><br />
<span style="color: #993300;">#include "stm32f0xx.h"</span><br />
<br />
<span style="color: #993300;">int tt,tx;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //画面更新のタイミング。Belay間隔。tx=実効値。tt=初期値。</span><br />
<span style="color: #993300;">int k;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //描写する幅を少しずつ減らしてゆく為の変数。</span><br />
<span style="color: #993300;">int main(void)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; RCC&nbsp;&nbsp; -&gt;AHBENR |= (1&lt;&lt;17);&nbsp; //　GPIO-Aの初期化(最初は0クロックで無可動状態)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; IDR&nbsp;&nbsp; |= (1&lt;&lt;2);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; //　ピン A - 1 を入力モードに</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;2);&nbsp;&nbsp; //　ピン A - 1 を プルアップ指定</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;4);&nbsp;&nbsp; //　ピン A - 2 を出力モードに lcd-MOSI&nbsp;&nbsp;&nbsp; 送信データ。</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;4);&nbsp;&nbsp; //　ピン A - 2 を プルアップ指定</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;6);&nbsp;&nbsp; //　ピン A - 3 を出力モードに lcd-CLK&nbsp;&nbsp;&nbsp;&nbsp; クロック</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;6);&nbsp;&nbsp; //　ピン A - 3 を プルアップ指定</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;8);&nbsp;&nbsp; //　ピン A - 4 を出力モードに lcd-LED&nbsp;&nbsp;&nbsp;&nbsp; 赤=Low/青=Highで点灯</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;8);&nbsp;&nbsp; //　ピン A - 4 を プルアップ指定</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;10);&nbsp; //　ピン A - 5 を出力モードに lcd-RS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; リセット</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;10);&nbsp; //　ピン A - 5 を プルアップ指定</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;12);&nbsp; //　ピン A - 6 を出力モードに lcd-CE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 入力データ (Low=GND)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;12);&nbsp; //　ピン A - 6 を プルアップ指定</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;14);&nbsp; //　ピン A - 7 を出力モードに lcd-DC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; データ/コマンド</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;14);&nbsp; //　ピン A - 7 を プルアップ指定</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin2をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin4をOffにする LEDなので、Onでも可</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;5);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin5をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin6をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin7をOffにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_us(1);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_init();</span><br />
<br />
<span style="color: #993300;">while(1){</span><br />
<span style="color: #993300;">tt=850;</span><br />
<br />
<span style="color: #993300;">while(tt&gt;=0){</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if (tt&gt;=550)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; tx=tt-550;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; tx=0;</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; int i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x7F);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x3F);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x1F);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x0F);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x07);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x03);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x01);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; k=7;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(k&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; int j=0;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; j++;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if (j&gt;=k){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j=0;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; else{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0xFF);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if (j&gt;=7){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; j=0;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(tx);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; k--;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; tt=tt-25;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; }&nbsp;&nbsp; }</span><br />
<br />
<br />
<span style="color: #993300;">//---------- 文字列出力 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *str：文字列の先頭ポインタ</span><br />
<span style="color: #993300;">void lcd_put_str(char *str)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(*str != 0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch( *str );</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str++;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- LCD初期化 ----------</span><br />
<span style="color: #993300;">void lcd_init()</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;5); //GPIOA-Pin5（RS）をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;5);&nbsp; //GPIOA-Pin5（RS）をOnにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(2);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6); //GPIOA-Pin6（CE）をOffにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x21);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Extended Commands.</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0xAF);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Contrast Vop=6.4V</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x04);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Set Temp coefficent.</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x13);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //LCD bias mode 1:48.</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x20);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Standard Commands.</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x0C);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Normal mode</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Screen Clear.</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- 表示位置設定 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xx：x座標&nbsp; yy：y座標</span><br />
<span style="color: #993300;">void lcd_position(int xx, int yy)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x80 | xx | (0x40 * yy));</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- データ4bit出力 ----------</span><br />
<span style="color: #993300;">void lcd_put_4bit(char code)</span><br />
<span style="color: #993300;">{</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x80)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;2);&nbsp; //GPIOA-Pin2をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2); //GPIOA-Pin2をOffにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x40)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;2);&nbsp; //GPIOA-Pin2をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2); //GPIOA-Pin2をOffにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x20)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;2);&nbsp; //GPIOA-Pin2をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2); //GPIOA-Pin2をOffにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOffにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x10)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;2);&nbsp; //GPIOA-Pin2をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2); //GPIOA-Pin2をOffにする</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //GPIOA-Pin3をOnにする</span><br />
<br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- 1文字出力 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch：出力するデータ</span><br />
<span style="color: #993300;">void lcd_put_ch(char ch)</span><br />
<span style="color: #993300;">{</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6); //GPIOA-Pin6(CE)をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;7);&nbsp; //GPIOA-Pin7（DC）をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //上位4bit出力</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(ch&lt;&lt;4);&nbsp;&nbsp;&nbsp; //下位4bit出力</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;6);&nbsp; //GPIOA-Pin6(CE)をOnにする</span><br />
<br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- コマンド送信 ----------</span><br />
<span style="color: #993300;">void lcd_put_cmd(char cmd)</span><br />
<span style="color: #993300;">{</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6); //GPIOA-Pin6(CE)をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7); //GPIOA-Pin7（DC）をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(cmd);&nbsp;&nbsp; //上位4bit出力</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(cmd&lt;&lt;4);//下位4bit出力</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;6);&nbsp; //GPIOA-Pin6(CE)をOnにする</span><br />
<br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- 塗りつぶし（消去） ----------</span><br />
<span style="color: #993300;">void lcd_clear()</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,0);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; int i=84*6;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch(0x00);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">}&nbsp;&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #993300;">void delay_ms(uint32_t i)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=i*100;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">}&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #993300;">void delay_us(uint32_t i)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">}&nbsp;&nbsp; }</span><br />
<br />
<br />
以上。<br />
恥ずかしくて顔が真っ赤になるような稚拙なプログラムかもしれませんが、所詮は専門的な教育を受けていない素人が、独学で好き勝手やっていることですので、ご理解ください。<br />
（とりあえず、「無駄」とか「美しさ」とかは横に置いておいて、「動けばいい」、というスタンスです）<br />
<br />
<img src="//obo.ko-me.com/File/ad9c4b6c.jpeg" alt="" /> <br />
<br />
現在、回路はこんな感じでまとまっています。<br />
消費電力は液晶付きでも10mA未満（簡易計測出来る限界未満）なので、この状況下では不満はないです。<br />
<br />
<br />
<img src="//obo.ko-me.com/File/fc919029.jpeg" alt="" /> <br />
<br />
配線はこんな感じ。<br />
基板に落としこむ際に、Youtubeにアップロードした時とPinが随分変更されたのですが、「どうでもいい」話ですね。<br />
<br />
この回路だと、USB端子を差しこめば動いてくれるので、ブレッドボードに沢山配線をぶっ刺していた頃と比べて、劇的に検証が楽になっています。<br />
<br />
最後に。<br />
<br />
この液晶（5110）に対して、STM32は一方的にデータを送信するだけの関係なので、LCDを回路から取り外しても、プログラムの挙動は変わりません。<br />
<br />
ですので、ピンに余裕があるのでしたら、LCDはあくまでもシステムを管理する際の補助として使用し、普段はLDCを外して使用する、なんてことが可能です。<br />
<br />
<img src="//obo.ko-me.com/File/ae00359b.jpeg" alt="" /><br />
<br />
プログラムが正常に作動しているかどうかをチェックするだけなら、LCDの代わりにLEDを刺しておいても、ある程度把握できるはずです。]]></content:encoded>
    <dc:subject>STM32</dc:subject>
    <dc:date>2019-09-01T11:55:29+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A71602lcd%E8%A1%A8%E7%A4%BA%EF%BC%88%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%89">
    <link>https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A71602lcd%E8%A1%A8%E7%A4%BA%EF%BC%88%E3%81%9D%E3%81%AE%EF%BC%92%EF%BC%89</link>
    <title>STM32F030F4P6で1602LCD表示（その２）</title>
    <description>先日のLCD1602の件なのですが、コードが大量に張り巡らされていて、ちょっとした衝撃で直ぐに動作不良を起こすという大問題がありました。
そこで、「基板化」を試みました。


（配線効率を考慮した結果、ピンに割り振っていた役割が変更された箇所が幾つかあります）


 どちらが上でどちらが下かはともか...</description>
    <content:encoded><![CDATA[先日のLCD1602の件なのですが、コードが大量に張り巡らされていて、ちょっとした衝撃で直ぐに動作不良を起こすという大問題がありました。<br />
そこで、「基板化」を試みました。<br />
<br />
<br />
（配線効率を考慮した結果、ピンに割り振っていた役割が変更された箇所が幾つかあります）<br />
<br />
<br />
<img src="//obo.ko-me.com/File/STM32-LCD1602-As.JPG" alt="" /> どちらが上でどちらが下かはともかく、一方はこんな感じ。電源はマイクロUSB端子からもらうことにしました。<br />
<br />
<img src="//obo.ko-me.com/File/STM32-LCD1602B-s.JPG" alt="" /> もう一方の側から見ると、こう。<br />
一応、文字表示は行われているので、最低限の目標は達成したという事にしておきましょう。<br />
<br />
左側の抵抗が幾つもくっついているのは、<span style="font-size: x-large;">「良い子は絶対に真似をしてはいけません」</span>的な処理です。可変抵抗を組み込んでおいたのですが、それだと正常に作動しなかったので、こういう風に対処したのですが、ショートしてここに5V電流が流れこむと、加熱して最悪出火します。<br />
うっかりやらかしてしまった私は、触って指の先に水ぶくれが出来ました。<br />
<br />
まぁ、<span style="font-size: x-large;">「プロトタイプ以前」の<span style="color: #ff00ff;">「<strong>テストタイプ</strong>」</span></span>という事で、ご了承ください。<br />
<br />
（とはいえ、実際に稼働することも事実なので、こんなものでも、実験機材としては十分に活躍の場面があるような気がします）<br />
<br />
ちなみに、USB端子に差し込んで計測する簡易電流計で測定た所、これ一式の消費電流は10ミリアンペア程度のようです。<br />
（以前、DigiSparkでこれと同じようなシステムを構築した時は2〜30mAだった気がする。あぁ、でも、あっちは、I2C変換するアダプタを噛ましていたので、消費電力が多くて当然なのか&hellip;&hellip;。ダイソーの500円のモバイルバッテリーが900mAなので、それを使ったら90時間ぐらい動き続ける計算。ただ、消費電力が少ないので、ひと工夫しないと、自動的にOffになる）<br />
<br />
<br />
それにしても、STM32F030、解ってくるとかなり楽しいです。<br />
なにせ、ものすごく安価だし。<br />
初心者が初心者っぽいことを楽しでいる分には、もてあますぐらい高性能だし。]]></content:encoded>
    <dc:subject>パソコン・マイコン</dc:subject>
    <dc:date>2019-08-12T09:42:00+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A71602lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em">
    <link>https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A71602lcd%E8%A1%A8%E7%A4%BA%EF%BC%88em</link>
    <title>STM32F030F4P6で1602LCD表示（EmBitz-サンプルプログラム）</title>
    <description>


STM32F030F4P6でLCD表示を行いました。
LCDは1602規格のもので、市場に安価に大量に出回っているので、供給についての不安は無用だと思います。

/*
**&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;...</description>
    <content:encoded><![CDATA[<br />
<iframe width="400" height="225" src="http://www.youtube.com/embed/pxkTXIeO5zQ" frameborder="0" allowfullscreen=""></iframe><br />
<br />
STM32F030F4P6でLCD表示を行いました。<br />
LCDは1602規格のもので、市場に安価に大量に出回っているので、供給についての不安は無用だと思います。<br />
<br />
<span style="color: #993300;">/*</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Main.c</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LCD1602</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EmBitz</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A1-Input</span><span style="color: #993300;">&nbsp;&nbsp; </span><span style="color: #993300;"><span style="color: #993300;">&nbsp;&nbsp; ボタン</span></span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A2-Output&nbsp;&nbsp;&nbsp; RS</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A3-Output&nbsp;&nbsp;&nbsp; E</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A4-Output&nbsp;&nbsp;&nbsp; D4</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A5-Output&nbsp;&nbsp;&nbsp; D5</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A6-Output&nbsp;&nbsp;&nbsp; D6</span><br />
<span style="color: #993300;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A7-Output&nbsp;&nbsp;&nbsp; D7</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**&nbsp; 空のprojectを作成し、設定をhexファイルが取得できるように変更して、</span><br />
<span style="color: #993300;">**&nbsp; main.cにこの文章をcopy&amp;pasteして、コンパイルすれば完成です</span><br />
<span style="color: #993300;">**</span><br />
<span style="color: #993300;">**********************************************************************/</span><br />
<span style="color: #993300;">/*</span><br />
<span style="color: #993300;">&nbsp;&nbsp; Last committed:&nbsp;&nbsp;&nbsp;&nbsp; $Revision:&nbsp;&nbsp; 16 $</span><br />
<span style="color: #993300;">&nbsp;&nbsp; Last changed by:&nbsp;&nbsp;&nbsp; $Author:&nbsp;&nbsp;&nbsp;&nbsp; Masaomi.Takahashi.$</span><br />
<span style="color: #993300;">&nbsp;&nbsp; Last changed date:&nbsp; $Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2019-08-09</span><br />
<span style="color: #993300;">&nbsp;&nbsp; ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Id:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0002$</span><br />
<span style="color: #993300;">**********************************************************************/</span><br />
<span style="color: #993300;">#include "stm32f0xx.h"</span><br />
<br />
<span style="color: #993300;">int main(void)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; RCC&nbsp;&nbsp; -&gt;AHBENR |= (1&lt;&lt;17);&nbsp; //　GPIO-Aの初期化(最初は0クロックで無可動状態)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; IDR&nbsp;&nbsp; |= (1&lt;&lt;2);&nbsp; &nbsp;&nbsp;&nbsp; //　ピン A - 1 を入力モードに</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;2);&nbsp;&nbsp; //　ピン A - 1 を プルアップ指定</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;4);&nbsp;&nbsp; //　ピン A - 2 を出力モードに lcd-Rs</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;6);&nbsp;&nbsp; //　ピン A - 3 を出力モードに lcd-E</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;8);&nbsp;&nbsp; //　ピン A - 4 を出力モードに lcd-D4</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;10);&nbsp; //　ピン A - 5 を出力モードに lcd-D5</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;12);&nbsp; //　ピン A - 6 を出力モードに lcd-D6</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;14);&nbsp; //　ピン A - 7 を出力モードに lcd-D7</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_init();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // lcd初期設定</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("STM32F030F4P6");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("Make By EmBitz");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("Vol.1.03");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(2500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ﾜﾚﾜﾚﾊｼﾝﾘｬｸｼｬﾀﾞ ﾄ");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ｲｯﾃﾐﾙ TEST");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7000);</span><br />
<br />
<span style="color: #993300;">while(1){</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(!(GPIOA-&gt;IDR &amp; GPIO_IDR_1)){</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ﾜﾚﾜﾚﾃｷﾆﾊ ｺﾉﾜｸｾｲｦ");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ｼﾊｲｶﾆｵｸ ﾖﾃｲﾃﾞｱﾙ");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ﾀﾀﾞｼ ｲｶﾉ");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ｱﾝｺﾞｳ ｦ");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ｶｲﾄﾞｸﾃﾞｷﾀﾗ ");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ｶﾝﾍﾞﾝｼﾃﾔﾙ");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("1899190119251968");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("1975197919922011");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("20192027");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ﾋﾝﾄ ﾊ&nbsp; - ﾜｸｾｲ -");</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ﾄﾞｳｶ･･･");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // "ﾄﾞｳｶ･･･"表示</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ｾｶｲｶﾞﾍｲﾜﾃﾞｽﾖｳﾆ"); </span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(7000);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; } else {</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(500);</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 全消去</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("Hello World!!");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // "Hello World!!"表示</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_position(0,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // カーソル位置 桁0,行1</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_str("ｺﾝﾆﾁﾊ ｾｶｲ!!");</span><br />
<br />
<span style="color: #993300;">}&nbsp;&nbsp; }&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #993300;">//---------- 文字列出力 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *str：文字列の先頭ポインタ</span><br />
<span style="color: #993300;">void lcd_put_str(char *str)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; while(*str != 0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_put_ch( *str );</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str++;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; }</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- LCD初期化 ----------</span><br />
<span style="color: #993300;">void lcd_init()</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(30);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(0x30, 1);&nbsp; //8bit mode set</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(5);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(0x30, 1);&nbsp; //8bit mode set</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(1);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(0x30, 1);&nbsp; //8bit mode set</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(1);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(0x20, 1);&nbsp; //4bit mode set</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(1);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x2E);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //DL=0 4bit mode</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x08);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //display off C=D=B=0</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x0D);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //display on C=D=1 B=0</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x06);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //entry I/D=1 S=0</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x02);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //cursor home</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- 表示位置設定 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tx：x座標&nbsp; ty：y座標</span><br />
<span style="color: #993300;">void lcd_position(char tx, char ty)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2); //GPIOA-Pin4をOffにする(コマンドデータ)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_cmd(0x80 | tx | (0x40 * ty));</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;2);&nbsp; //GPIOA-Pin2をOnにする(表示データ)</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- データ4bit出力 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; code：DB4～DB7 に与えるデータ</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag：0=表示モード 1=コマンドモード</span><br />
<span style="color: #993300;">void lcd_put_4bit(char code, int flag)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x80)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;7);&nbsp; //GPIOA-Pin7をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;7); //GPIOA-Pin7をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x40)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;6);&nbsp; //GPIOA-Pin6をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;6); //GPIOA-Pin6をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x20)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;5);&nbsp; //GPIOA-Pin5をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;5); //GPIOA-Pin5をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if(code &amp; 0x10)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;4);&nbsp; //GPIOA-Pin4をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4); //GPIOA-Pin4をOffにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; if (flag == 0)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;2);&nbsp; //GPIOA-Pin2をOnにする(表示データ)</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; else</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;2); //GPIOA-Pin2をOffにする(コマンドデータ)</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_us(1);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;3);&nbsp; //GPIOA-Pin3をOnにする</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_us(2);</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;3); //GPIOA-Pin3をOffにする</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- 1文字出力 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch：出力するデータ</span><br />
<span style="color: #993300;">void lcd_put_ch(char ch)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(ch, 0);&nbsp;&nbsp;&nbsp; //上位4bit出力</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(ch&lt;&lt;4, 0); //下位4bit出力</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_us(50);</span><br />
<span style="color: #993300;">}</span><br />
<br />
<br />
<span style="color: #993300;">//---------- コマンド出力 ----------</span><br />
<span style="color: #993300;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmd：コマンド</span><br />
<span style="color: #993300;">void lcd_put_cmd(char cmd)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(cmd, 1);&nbsp;&nbsp; //上位4bit出力</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; lcd_put_4bit(cmd&lt;&lt;4, 1);//下位4bit出力</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; delay_ms(2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //2msec待ち</span><br />
<span style="color: #993300;">}</span><br />
<br />
<span style="color: #993300;">//---------- 全消去 ----------</span><br />
<span style="color: #993300;">void lcd_clear()</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp; lcd_put_cmd(0x01);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //初期化コマンド出力</span><br />
<span style="color: #993300;">&nbsp; delay_ms(15);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //15msec待ち</span><br />
<span style="color: #993300;">}</span><br />
<br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void delay_ms(uint32_t i)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp; i=i*100;</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">}&nbsp;&nbsp; }</span><br />
<br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void delay_us(uint32_t i)</span><br />
<span style="color: #993300;">{</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(i&gt;0){</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; asm("NOP");</span><br />
<span style="color: #993300;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i--;</span><br />
<span style="color: #993300;">}&nbsp;&nbsp; }</span><br />
<br />
<br />
以上をEmBitzで新規に作成したProjectのmain.cにまるごとコピペして、コンパイルすれば（ライブラリ等を新たに設定しなくても）動きます。<br />
注意点は、LCDのEとRS端子の間にあるRW端子をGNDに繋げてやらないとダメ、という点です。<br />
これが判らなくて、私は延々とドツボにはまり続けました。<br />
<br />
なお、プログラムの主要部分は、<br />
<a href="http://ohkin.mydns.jp/archives/273" title=""><br />
ohkinというブログの、<br />
</a>
<h1 class="entry-title">STM32と Arduino IDE で<br />
液晶ディスプレイに文字表示（その１）<br />
～ライブラリ未使用～</h1>
<a href="http://ohkin.mydns.jp/archives/273" title="">という記事を参考（丸パクリ）にさせていただきました。</a><br />
<br />
<br />
なお、delayに関しては、完全に「適当」です。一切計測とかしてません。カンです。動いたから、そのままにしているだけです。他のプログラムにこれを流用して、そのままタイミングをとるとか無茶なことをされても、一切責任は負いません。<br />
<br />
あと、割り込みとかしてないので、delay中にボタンを押しても反応しません。ので、次の処理へ移行させるためには、延々とボタンを押し続ける必要があります。<br />
<br />
ちなみに、このプログラムによって使用される容量は4.5KBぐらい。<br />
STM32F030F4P6のメモリは16KBだから、メインの処理を他に作って、こちら（ディスプレイ表示）を隠しモードとして潜ませておく、なんて事も可能ではないかと思います。<br />
<br />
STM32F030F4P6はものすごく安くて高性能なので、もっと使いこなせるようになりたいです。]]></content:encoded>
    <dc:subject>パソコン・マイコン</dc:subject>
    <dc:date>2019-08-10T08:18:20+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A7%E3%83%9C%E3%82%BF%E3%83%B3%E5%85%A5%E5%8A%9B%EF%BC%88embitz">
    <link>https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6%E3%81%A7%E3%83%9C%E3%82%BF%E3%83%B3%E5%85%A5%E5%8A%9B%EF%BC%88embitz</link>
    <title>STM32F030F4P6でボタン入力（EmBitz-サンプルプログラム）</title>
    <description>EmBitzは思ったよりも資料が少ない感じで、もしかしたらおすすめでは無いかもしれません。

ですが、後々私自身が必要になりそうな気がするので、判ったことを、忘れないように書き留めておきます。


 

STM32F030F4P6の乗ったミニ基版で、わりとメジャーな存在のボードと、タクトスイッチで作...</description>
    <content:encoded><![CDATA[EmBitzは思ったよりも資料が少ない感じで、もしかしたらおすすめでは無いかもしれません。<br />
<br />
ですが、後々私自身が必要になりそうな気がするので、判ったことを、忘れないように書き留めておきます。<br />
<br />
<br />
<img src="//obo.ko-me.com/File/b156afd9.jpeg" alt="" /> <br />
<br />
STM32F030F4P6の乗ったミニ基版で、わりとメジャーな存在のボードと、タクトスイッチで作った押しボタン回路を接続しています。接続先はGPIOAの01番Pinです。<br />
<br />
<img src="//obo.ko-me.com/File/7b0fd493.jpeg" alt="" /><br />
このボタンを押したら、ボード上のLEDが点灯するというプログラムを書きました。<br />
<br />
<br />
<span style="color: #800000;">/*</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIO-IDR-Main.c</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ボタンを押すとＬＥＤが光るプログラム</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EmBitz</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A1-Input</span><br />
<span style="color: #800000;">**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A4-LED</span><br />
<span style="color: #800000;">**</span><br />
<span style="color: #800000;">**********************************************************************/</span><br />
<span style="color: #800000;">/*</span><br />
<span style="color: #800000;">&nbsp;&nbsp; Last committed:&nbsp;&nbsp;&nbsp;&nbsp; $Revision:&nbsp;&nbsp; 03 $</span><br />
<span style="color: #800000;">&nbsp;&nbsp; Last changed by:&nbsp;&nbsp;&nbsp; $Author:&nbsp;&nbsp;&nbsp;&nbsp; Masaomi.Takahashi.$</span><br />
<span style="color: #800000;">&nbsp;&nbsp; Last changed date:&nbsp; $Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2019-07-02</span><br />
<span style="color: #800000;">&nbsp;&nbsp; ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Id:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0002$</span><br />
<span style="color: #800000;">**********************************************************************/</span><br />
<span style="color: #800000;">#include "stm32f0xx.h"</span><br />
<span style="color: #800000;">int main(void)</span><br />
<span style="color: #800000;">{</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; RCC -&gt;AHBENR |= (1&lt;&lt;17);&nbsp;&nbsp;&nbsp; //GPIO-Aの初期化(最初は0クロックで無可動状態)</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;8);&nbsp;&nbsp; //　ピン A - 4 を出力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; IDR&nbsp;&nbsp; |= (1&lt;&lt;2);&nbsp;&nbsp; //　ピン A - 1 を入力モードに</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; GPIOA -&gt; PUPDR |= (1&lt;&lt;2);&nbsp;&nbsp; // ピン A - 1 を プルアップ指定</span><br />
<span style="color: #800000;">while(1){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; if(!(GPIOA-&gt;IDR &amp; GPIO_IDR_1)){</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;4);&nbsp; //GPIOA-Pin4をOnにする&nbsp; - - - - - - - - 9.4.6（ポート出力）</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; } else {</span><br />
<span style="color: #800000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4); //GPIOA-Pin4をOffにする - - - - - - - - 9.4.6（ポート出力）</span><br />
<span style="color: #800000;">}&nbsp;&nbsp; }&nbsp;&nbsp; }</span><br />
<br />
<br />
<br />
これだけです。<br />
<br />
<br />
<iframe width="400" height="225" src="http://www.youtube.com/embed/QNqCLnpDln0" frameborder="0" allowfullscreen=""></iframe><br />
一応、動画にアップロードしました。<br />
<br />
<br />
下はオマケ（蛇足）です。<br />
<img src="//obo.ko-me.com/File/83e790fa.jpeg" alt="" /><br />
自作した、ほぼ同等の回路。市販のミニ基板とほぼ同面積です。プログラムの書き込み、吸い出し、消去も出来ますし、LEDもミニ基板と同様のGPIOA-4番Pinに接続してあります。その上で、スイッチを追加出来るようになってます。<br />
<br />
<img src="//obo.ko-me.com/File/ad106bf9.jpeg" alt="" /><br />
その前進の形。この時点では、スイッチ部分の回路がまだ未確定でした。<br />
プログラムに関してもよく判らない、ハードウェアについてもよく解らない。<br />
そんな状況下での開発だったので、開発はものすごく難航しました。当初は「点きっぱなしだったLEDが消えたぞ。やった、成功だ！！」と思ったら、単に回路がショートしているだけだったりとか。<br />
<br />
まぁ、そんな感じです。]]></content:encoded>
    <dc:subject>パソコン・マイコン</dc:subject>
    <dc:date>2019-07-04T10:12:10+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6">
    <link>https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/stm32f030f4p6</link>
    <title>STM32F030F4P6でLチカ（EmBitz-サンプルプログラム）</title>
    <description>STM32F030F4P6というマイコンで、なんとか自力でLチカプログラムを制作することが出来ました。
（もちろん、幾つもの資料を参考にしています）

まず、IDEはEmBitz（Ver1.11）を採用しました。

このIDEは、ユーザー登録などしなくても使用できます。
XP以降のWindowsマシ...</description>
    <content:encoded><![CDATA[STM32F030F4P6というマイコンで、なんとか自力でLチカプログラムを制作することが出来ました。<br />
（もちろん、幾つもの資料を参考にしています）<br />
<br />
まず、IDEはEmBitz（Ver1.11）を採用しました。<br />
<br />
このIDEは、ユーザー登録などしなくても使用できます。<br />
XP以降のWindowsマシンに対応しているようなので、古いXPマシンを用意するとか、仮想マシン上でプログラミング環境を作ってしまうのが良いと思います。<br />
※LinuxのWineだと、上手く動きませんでした。<br />
<br />
新規作成すると、プロジェクトの中にSTM32シリーズがちゃんと用意されているので、そこからF0xxを選択します。<br />
<br />
main.cを選択すると、最低限の情報が記載されたプログラムが表示されます。<br />
（これをビルドすると、「何もしないプログラム」を得ることが出来ます）<br />
<img src="//obo.ko-me.com/File/EmBitz.jpg" alt="" /> <br />
<br />
これを、以下のプログラムで置き換えてしまうと、LEDが点滅するプログラムが得られます。<br />
ですが、初期状態ではHEXファイルは作成されません。<br />
Hexファイルを入手するためには、Project &gt;&gt; Projectties &gt;&gt; Build targets と選択して、そこにあるGenerate Hex Fileの項目にチェックを入れてください。<br />
ここにチェックを入れた状態でBuildを行うと、Hexファイルが作成されるので、あとはこのHexファイルをマイコンに書き込んでやれば、制作したプログラムが実行されるはずです。<br />
STM32に関して、私はほぼ完全な初心者なのでHALとかの事はよく判りませんが、EmBitzだけでも、とりあえずプログラミングは可能なのだと思いました。<br />
<br />
<br />
※LEDは10番目のGPIOA-4Pinの位置に接続されているものとします。<br />
<br />
/*<br />
**<br />
**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Main.c<br />
**<br />
**<br />
**********************************************************************/<br />
/*<br />
&nbsp;&nbsp; Last committed:&nbsp;&nbsp;&nbsp;&nbsp; $Revision: 01 $<br />
&nbsp;&nbsp; Last changed by:&nbsp;&nbsp;&nbsp; $Masaomi Takahashi: $<br />
&nbsp;&nbsp; Last changed date:&nbsp; $Date:&nbsp; 20190623$<br />
&nbsp;&nbsp; ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Id:&nbsp; STM32F030F4P6-LED$<br />
<br />
**********************************************************************/<br />
#include "stddef.h"<br />
#include "stm32f0xx.h"<br />
#include "stm32f0xx_conf.h"<br />
uint32_t count;<br />
int main(void)<br />
{<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; volatile unsigned int x=0;<br />
&nbsp;&nbsp;&nbsp; RCC -&gt;AHBENR |= (1&lt;&lt;17);&nbsp;&nbsp; //Enable CLK for Port A<br />
//&nbsp;&nbsp;&nbsp; RCC -&gt;AHBENR |= (1&lt;&lt;18);&nbsp;&nbsp; //Enable CLK for Port B<br />
//&nbsp;&nbsp;&nbsp; RCC -&gt;AHBENR |= (1&lt;&lt;19);&nbsp;&nbsp; //Enable CLK for Port C<br />
&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;8); //Enable Port A Pin4 as a digital output<br />
//&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;12); //Enable Port A Pin6 as a digital output<br />
//&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;14); //Enable Port A Pin7 as a digital output<br />
//&nbsp;&nbsp;&nbsp; GPIOA -&gt; MODER |= (1&lt;&lt;16); //Enable Port A Pin8 as a digital output<br />
<br />
while(1){<br />
// LED4 (blue) is controlled by Port C Pin8 output<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR |= (1&lt;&lt;4); //Turn GPIOA Pin 4 On<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (x=0; x&lt;1000000; x++);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GPIOA -&gt;ODR &amp;= ~(1&lt;&lt;4); //Turn GPIOA Pin 4 Off<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (x=0; x&lt;1000000; x++);<br />
}<br />
}]]></content:encoded>
    <dc:subject>パソコン・マイコン</dc:subject>
    <dc:date>2019-06-23T09:58:39+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/sdl2-gcc-sample-progrum01">
    <link>https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/sdl2-gcc-sample-progrum01</link>
    <title>SDL2+gcc-Sample-progrum01（サンプルプログラム）</title>
    <description>前の記事に載せた、サンプルプログラムです。
SDL2/gcc/Linuxという組み合わせで作成しています。
 動作を確認することが目的なので、女の子の初期位置が微妙とか、色々ありますが、気にしないでください。
また、画面左上の数字はFPSのつもりですが、精度がどれほどのものかは、まったく当てになりま...</description>
    <content:encoded><![CDATA[<strong>前の記事に載せた、サンプルプログラムです。</strong><br />
<strong>SDL2/gcc/Linuxという組み合わせで作成しています。</strong><br />
<code><strong> 動作を確認することが目的なので、女の子の初期位置が微妙とか、色々ありますが、気にしないでください。</strong><br />
<strong>また、画面左上の数字はFPSのつもりですが、精度がどれほどのものかは、まったく当てになりません。</strong><br />
<br />
<span style="color: #003300;"><strong>実行中の画面は、前記事を参考にしてください。<br />
</strong></span>（本当に、期待するようなものじゃないです）<br />
<br />
<br />
<stdio.h><sdl.h>//<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 2019.01.28<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PNG-timer-02a.CPP<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; png画像を扱い、透過処理を行うサンプルプログラム<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; カーソルキーで左右に動き、ESCキーでプログラム終了<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 画像の一部分だけを切り出してコピーできる（画面左上のカウンターに使用している）<br />
//<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 製作者の環境はgcc/ubuntu18.04(KonaLinux4.0)<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; コンパイルコマンドは以下の通り<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gcc -g -o png-01 png-01.cpp `sdl2-config --cflags --libs` -lSDL2_image<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; geany用コマンド<br />
//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gcc -g -o "%e" "%f" `sdl2-config --cflags --libs` -lSDL2_image<br />
//<br />
<br />
#include &lt;stdio.h&gt;<br />
<br />
int loopy=1; //無限ループ処理で、whileを回し続けるためのもの<br />
int va=0;<br />
int vga=0; //画面のサイズ0ならウィンドーモード、1ならフル画面<br />
int iw,ih; //テクスチャ画像の処理の為に用意する変数<br />
int cx=200; //カーソルキーで左右にテクスチャを動かす実験用<br />
int cxx=00; //カーソルキーで左右にテクスチャを動かす実験用<br />
<br />
SDL_atomic_t frames;<br />
<br />
/* 設定された間隔で平均フレームレートの計算と表示を行う */<br />
Uint32 fps_timer_callback(Uint32 interval, void *data)<br />
{<br />
const float f = SDL_AtomicGet(&amp;frames);<br />
const float iv = (float)interval / 1000.0f;<br />
// printf("%.2f\tfps\n", f / iv);<br />
<br />
va=(f/iv)/60;<br />
<br />
/* フレームカウンタをリセットする */<br />
SDL_AtomicSet(&amp;frames, 0);<br />
<br />
return interval;<br />
}<br />
<br />
int main(int, char ** const){<br />
SDL_Init(SDL_INIT_VIDEO); //Windows作成処理開始<br />
SDL_Window* window = SDL_CreateWindow("SDL-Test", //Windows作成処理・タイトル<br />
SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED, //Windows作成処理<br />
320,240,vga); //Windows作成処理・サイズ＆モード<br />
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0); //Windows作成処理終了<br />
<br />
SDL_Surface *screen = SDL_GetWindowSurface(window);<br />
<br />
<br />
int flags = IMG_INIT_PNG; //SDL_Image初期化開始<br />
int initted = IMG_Init(flags); //エラー対応<br />
if((initted &amp; flags) != flags) { //エラー対応<br />
printf("IMG_Init: Failed to init required jpg and png support!\n");<br />
printf("IMG_Init: %s\n", IMG_GetError()); //エラー対応<br />
}; //SDL_Image初期化終了<br />
SDL_Surface *image = IMG_Load("image/myw4sss.png"); //png画像読み込み(フロント)<br />
SDL_Surface *backg = IMG_Load("image/spring.png"); //png画像読み込み(背景)<br />
if(!image &amp; !backg){ //エラー対応<br />
printf("IMG_Load: %s\n", IMG_GetError()); //エラー対応<br />
}; //png画像読み込み終了 <br />
<br />
SDL_Texture *backg_texture; //png画像の変数化（背景）<br />
backg_texture = SDL_CreateTextureFromSurface(renderer, backg); //png画像の変数化（背景）<br />
SDL_FreeSurface(backg); //RGBサーフェイス開放<br />
SDL_Texture *image_texture; //png画像の変数化（フロント）<br />
SDL_SetColorKey( image, SDL_TRUE, //透過色の設定<br />
SDL_MapRGB(image-&gt;format, 255, 0, 255));//透過色の設定<br />
image_texture = SDL_CreateTextureFromSurface(renderer, image); //png画像の変数化（フロント）<br />
SDL_FreeSurface(image); //RGBサーフェイス開放<br />
SDL_Event ev; //エラー確認<br />
if (SDL_PollEvent(&amp;ev)) { //エラーへの対応。対象はev<br />
if (ev.type == SDL_QUIT) { //戻り値の如何によって処理は終了となる<br />
loopy=0; //戻り値の如何によって処理は終了となる<br />
}; //戻り値の如何によって処理は終了となる<br />
}; //戻り値の如何によって処理は終了となる<br />
<br />
SDL_QueryTexture(backg_texture, NULL, NULL, &amp;iw, &amp;ih); //画像テクスチャのサイズを取得<br />
SDL_Rect backg_rect = (SDL_Rect){0,0,iw,ih}; //取得したサイズから、構造体を定義<br />
SDL_QueryTexture(image_texture, NULL, NULL, &amp;iw, &amp;ih); //画像テクスチャのサイズを取得<br />
// SDL_Rect image_rect = (SDL_Rect){0,0,iw/2,ih/2}; //取得したサイズから、構造体を定義<br />
<br />
SDL_Rect SrcR; /*呪い少女A&amp;B*/ //テクスチャから一部を切り出すための前処理<br />
SrcR.x = 8; /*左端X座標 */ //テクスチャから一部を切り出すための前処理<br />
SrcR.y = 0; /*左端Y座標 */ //テクスチャから一部を切り出すための前処理<br />
SrcR.w = 56; /*取出し横量 */ //テクスチャから一部を切り出すための前処理<br />
SrcR.h = 88; /*取出し縦量 */ //テクスチャから一部を切り出すための前処理<br />
SDL_Rect DestR1; /*呪い少女 A */ //テクスチャから一部を切り出すための前処理<br />
// DestR1.x = cx; /*表示X座標 */ //移動に関係するため、ループ中に設定<br />
DestR1.y = 100; /*表示Y座標 */ //テクスチャから一部を切り出すための前処理<br />
DestR1.w = (56); /*取出し横量 */ //テクスチャから一部を切り出すための前処理<br />
DestR1.h = (88); /*取出し縦量 */ //テクスチャから一部を切り出すための前処理<br />
SDL_Rect DestR2; /*呪い少女 B */ //テクスチャから一部を切り出すための前処理<br />
// DestR2.x = cx; /*表示X座標 */ //移動に関係するため、ループ中に設定<br />
DestR2.y = 100; /*表示Y座標 */ //テクスチャから一部を切り出すための前処理<br />
DestR2.w = (56); /*取出し横量 */ //テクスチャから一部を切り出すための前処理<br />
DestR2.h = (88); /*取出し縦量 */ //テクスチャから一部を切り出すための前処理<br />
<br />
SDL_Rect NunbD3; /*数字３桁目 */ //テクスチャから数字部分を切り出す為の前処理<br />
NunbD3.x = 30; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD3.y = 30; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD3.w = 16; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD3.h = 24; //テクスチャから数字部分を切り出す為の前処理<br />
<br />
SDL_Rect NunbD2; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD2.x = 46; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD2.y = 30; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD2.w = 16; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD2.h = 24; //テクスチャから数字部分を切り出す為の前処理<br />
<br />
SDL_Rect NunbD1; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD1.x = 62; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD1.y = 30; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD1.w = 16; //テクスチャから数字部分を切り出す為の前処理<br />
NunbD1.h = 24; //テクスチャから数字部分を切り出す為の前処理<br />
<br />
SDL_AddTimer((1000/60), fps_timer_callback, NULL); //サブルーチン呼び出し設定（1/60秒に1回）<br />
<br />
<br />
//////////////////////////////////////////////////////////////////////<br />
// 以下、メインアルゴリズム<br />
//////////////////////////////////////////////////////////////////////<br />
int vvga; //変数の設定（カウンター補佐用）<br />
while(loopy){ //メインルーチン開始（無限ループ）<br />
vvga=va/100;<br />
SDL_Rect NunbU3; //テクスチャから一部を切り出すための前処理<br />
NunbU3.x = 0+(vvga*8); //テクスチャから一部を切り出すための前処理<br />
NunbU3.y = 180; //テクスチャから一部を切り出すための前処理<br />
NunbU3.w = 8; //「8」はコピー元の数字で、2倍表示している<br />
NunbU3.h = 12; //「12」はコピー元の数字で、2倍表示している<br />
vvga=(va-(vvga*100))/10;<br />
SDL_Rect NunbU2; //テクスチャから一部を切り出すための前処理<br />
NunbU2.x = 0+(vvga*8); //テクスチャから一部を切り出すための前処理<br />
NunbU2.y = 180; //テクスチャから一部を切り出すための前処理<br />
NunbU2.w = 8; //「8」はコピー元の数字で、2倍表示している<br />
NunbU2.h = 12; //「12」はコピー元の数字で、2倍表示している<br />
vvga=0+va%10;<br />
SDL_Rect NunbU1; //テクスチャから一部を切り出すための前処理<br />
NunbU1.x = 0+(vvga*8); //テクスチャから一部を切り出すための前処理<br />
NunbU1.y = 180; //テクスチャから一部を切り出すための前処理<br />
NunbU1.w = 8; //「8」はコピー元の数字で、2倍表示している<br />
NunbU1.h = 12; //「12」はコピー元の数字で、2倍表示している<br />
<br />
DestR1.x = cx; //テクスチャから一部を切り出すための前処理<br />
DestR2.x = 220-cx; //テクスチャから一部を切り出すための前処理<br />
<br />
SDL_SetRenderDrawColor(renderer, 200, 200, 200, 255); //色指定（灰色）<br />
SDL_RenderClear(renderer); //指定色による塗りつぶし（画面初期化）<br />
SDL_RenderCopy(renderer,backg_texture, //描写のための処理（背景）<br />
NULL, NULL); //描写のための処理（背景）<br />
<br />
// SDL_Rect draw_rect = (SDL_Rect){640-cx,200,iw/2,ih/2}; //取得したサイズから、構造体を定義<br />
SDL_RenderCopy(renderer,image_texture, //描写のための処理（フロント）<br />
&amp;SrcR,&amp;DestR1); //描写のための処理（フロント）<br />
SDL_RenderCopy(renderer,image_texture, //描写のための処理（フロント）<br />
&amp;SrcR,&amp;DestR2); //描写のための処理（フロント）<br />
SDL_RenderCopy(renderer,image_texture, //描写のための処理（数字）<br />
&amp;NunbU3,&amp;NunbD3); //描写のための処理（数字）<br />
SDL_RenderCopy(renderer,image_texture, //描写のための処理（数字）<br />
&amp;NunbU2,&amp;NunbD2); //描写のための処理（数字）<br />
SDL_RenderCopy(renderer,image_texture, //描写のための処理（数字）<br />
&amp;NunbU1,&amp;NunbD1); //描写のための処理（数字）<br />
SDL_Delay(0); //待機<br />
SDL_RenderPresent(renderer); //描写を反映させる<br />
SDL_AtomicAdd(&amp;frames, 1); //FPS用のカウンターに加算する<br />
<br />
SDL_Event e; //キーボード入力のための待機<br />
while(SDL_PollEvent(&amp;e)){ //イベントがなければ内部が実行される<br />
if (e.type==SDL_KEYDOWN){ //キーボード入力があるかどうか調べている<br />
switch (e.key.keysym.sym){ //キーをチェックしている<br />
case SDLK_ESCAPE: //ESCキーだった場合<br />
loopy=0; //looyt=0は、メインループからの脱出＝終了<br />
break;<br />
case SDLK_RIGHT: //右カーソルキーだった場合<br />
cx=cx+2;<br />
break;<br />
case SDLK_LEFT: //左カーソルキーだった場合<br />
cx=cx-2;<br />
break;<br />
}}};<br />
if (cx&gt;=640){cx=cx-2;<br />
};<br />
if (cx&lt;=0) {cx=cx+2;<br />
};<br />
<br />
};<br />
<br />
//////////////////////////////////////////////////////////////////////<br />
// 以下、プログラム終了処理<br />
//////////////////////////////////////////////////////////////////////<br />
<br />
IMG_Quit(); //プログラム終了処理<br />
SDL_FreeSurface(image); //プログラム終了処理<br />
SDL_DestroyTexture(image_texture); //プログラム終了処理<br />
SDL_DestroyRenderer(renderer); //プログラム終了処理<br />
SDL_DestroyWindow(window); //プログラム終了処理<br />
SDL_Quit(); //SDL終了処理<br />
return 0;<br />
};<br />
<br />
使用した画像ファイル。<br />
</sdl.h></stdio.h></code><img src="//obo.ko-me.com/File/myw4sss.png" alt="" /><br />
<span style="color: #000000;"><strong>/<code>image/myw4sss.png</code></strong></span><br />
<img src="//obo.ko-me.com/File/spring.png" alt="" /><br />
<span style="color: #000000;"><strong>/ <code>image/spring.png</code></strong></span><br />
<br />
<span style="color: #000000;">２つの画像ファイルは、「image」というフォルダ内に収めてください。</span><br />
<span style="color: #000000;">ってか、背景画像は、640x480になってますね。</span><br />
<span style="color: #000000;">最初はこのサイズで作っていたので。</span>]]></content:encoded>
    <dc:subject>パソコン・マイコン</dc:subject>
    <dc:date>2019-01-28T20:15:23+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
  <item rdf:about="https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/linux%E3%81%A7sdl2%E3%82%92%E5%A7%8B%E3%82%81%E3%81%BE%E3%81%97%E3%81%9F">
    <link>https://obo.ko-me.com/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3/linux%E3%81%A7sdl2%E3%82%92%E5%A7%8B%E3%82%81%E3%81%BE%E3%81%97%E3%81%9F</link>
    <title>LinuxでSDL2を始めました</title>
    <description>以前から、SDLというものに関心がありました。
プログラミングで、画像処理をしてくれる支援ツールのようなものです。
これさえあれば、WindowsでもMacでも、Linuxでも、移植し放題！！

みたいな、夢が詰まっていましたから。

 
それで、試行錯誤を重ねた結果、なんとか動かせるようになったの...</description>
    <content:encoded><![CDATA[以前から、SDLというものに関心がありました。<br />
プログラミングで、画像処理をしてくれる支援ツールのようなものです。<br />
これさえあれば、WindowsでもMacでも、Linuxでも、移植し放題！！<br />
<br />
みたいな、夢が詰まっていましたから。<br />
<br />
<img src="//obo.ko-me.com/File/SDL.png" alt="" /> <br />
それで、試行錯誤を重ねた結果、なんとか動かせるようになったのです。<br />
<br />
使用したOSはubuntu系列のもので、これに関しては、SDL2の導入はものすごく簡単でした。<br />
まぁ、解るまでがものすごく困難を極めたわけですけどね。<br />
<br />
sudo apt-get install libsdl2-dev<br />
sudo apt-get install libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev<br />
<br />
ターミナルから、たったこの２行を打ち込む（というか、コピペ）するだけ。<br />
たったそれだけで、SDL2のインストールは完了です。<br />
<br />
そして、現在、私の場合はLinuxではメジャーなGeanyというエディターっぽいやつでプログラムを書いているのですが、これ用のコンパイルコマンドは、<br />
<br />
gcc -g -o "%e" "%f" `sdl2-config --cflags --libs` -lSDL2_image<br />
<br />
こんな感じでOKです。<br />
<br />
ターミナルから入力する場合<br />
<br />
gcc -g -o 欲しいプログラム名 実行したいプログラム名 `sdl2-config --cflags --libs` -lSDL2_image<br />
<br />
みたいになります。<br />
<br />
それから、-lSDL2_imageだけで足りない場合は、末尾の部分に-lSDL2_ttfとか-lSDL2_netとかを、プログラムに合わせて追加してやってください。<br />
<br />
それと、DSLは単体では使用されず、CとかJAVAとかGoとかと組み合わせるものであるという性質上、自分が求めている環境のサンプルプログラムを探すのが、かなり厳しいです。<br />
<br />
私の場合、こちらのブログ「<a href="https://k38.hatenadiary.jp/">ゲームを作りたい！</a>」が、ソースリストをあらかた開示してくれていてとても参考になりました。<br />
<br />
まぁ、一番悲しいのは、欲しい情報が「SDL2」なのに、「無印SDL」の情報が出てきちゃうことでしょうかね。<br />
こうなると、製作サイドには「名前を変える」ってことを、積極的に考えてほしいですね。]]></content:encoded>
    <dc:subject>パソコン・マイコン</dc:subject>
    <dc:date>2019-01-28T19:56:30+09:00</dc:date>
    <dc:creator>No Name Ninja</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>No Name Ninja</dc:rights>
  </item>
</rdf:RDF>
