STM32L010で来年(2022)のカレンダーをシリアルに表示する。1(例題の為の例題)


目的
例題の為の例題
最終的には、高速化、軽量化、自動化で80桁年のプログラムを作る
C言語に関しては、最高高位のレベル4(何のだ)だったがやらないと忘れるな
軽く、文字列のポインター配列と「ぬるポー」ついて来れるかな(教授より)


簡単な解説
手打ち(力技)で30分ぐらいかけてデータを入力して
wileループで「ぬるぽ」まで読み込み表示する。

ポイント
マイコン的にはwhile(1){};で止めるのがマナーの良い
終了処理の仕方
理由は、GPIO、RAMを保持できる。
mainで抜けると動作が保証されない、
コントロール化に置く為

![o_con163.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/7f0c9cc5-3e4c-95e6-b133-81ff67ba8afc.jpeg)



まず簡単なイメージ



```c++



const char *str[] = 
{
" 1            \r\n",
"             1\r\n",
" 2 3 4 5 6 7 8\r\n",
" 9101112131415\r\n",
"16171819202122\r\n",
"23242526272829\r\n",
"3031          \r\n",
"              \r\n",
" 2            \r\n",
"     1 2 3 4 5\r\n",
" 6 7 8 9101112\r\n",
"13141516171819\r\n",
"20212223242526\r\n",
"2728          \r\n",
"              \r\n",
" 3            \r\n",
"     1 2 3 4 5\r\n",
" 6 7 8 9101112\r\n",
"13141516171819\r\n",
"20212223242526\r\n",
"2728293031    \r\n",
"              \r\n",
" 4            \r\n",
"           1 2\r\n",
" 3 4 5 6 7 8 9\r\n",
"10111213141516\r\n",
"17181920212223\r\n",
"24252627282930\r\n",
"              \r\n",
" 5            \r\n",
" 1 2 3 4 5 6 7\r\n",
" 8 91011121314\r\n",
"15161718192021\r\n",
"22232425262728\r\n",
"293031        \r\n",
"              \r\n",
" 6            \r\n",
"       1 2 3 4\r\n",
"5 6 7 8 9 1011\r\n",
"12131415161718\r\n",
"19202122232425\r\n",
"262728293031  \r\n",
"              \r\n",
" 7            \r\n",
"           1 2\r\n",
" 3 4 5 6 7 8 9\r\n",
"10111213141516\r\n",
"17181920212223\r\n",
"24252627282930\r\n",
"31            \r\n",
"              \r\n",
" 8            \r\n",
"   1 2 3 4 5 6\r\n",
" 7 8 910111213\r\n",
"14151617181920\r\n",
"21222324252627\r\n",
"28293031      \r\n",
"              \r\n",
" 9            \r\n",
"   1 2 3 4 5 6\r\n",
" 7 8 910111213\r\n",
"14151617181920\r\n",
"21222324252627\r\n",
"282930        \r\n",
"              \r\n",
"10            \r\n",
"             1\r\n",
" 2 3 4 5 6 7 8\r\n",
" 9101112131415\r\n",
"16171819202122\r\n",
"23242526272829\r\n",
"3031          \r\n",
"              \r\n",
"11            \r\n",
"   1 2 3 4 5 6\r\n",
" 7 8 910111213\r\n",
"14151617181920\r\n",
"21222324252627\r\n",
"28293031      \r\n",
"              \r\n",
"12            \r\n",
"         1 2 3\r\n",
" 4 5 6 7 8 910\r\n",
"11121314151617\r\n",
"18192021222324\r\n",
"25262728293031\r\n",
0};



```



```c++


#include "mbed.h"

RawSerial pc(PA_2, PA_3); //010

const char *str[] = 
{
" 1            \r\n",
"             1\r\n",
" 2 3 4 5 6 7 8\r\n",
" 9101112131415\r\n",
"16171819202122\r\n",
"23242526272829\r\n",
"3031          \r\n",
"              \r\n",
" 2            \r\n",
"     1 2 3 4 5\r\n",
" 6 7 8 9101112\r\n",
"13141516171819\r\n",
"20212223242526\r\n",
"2728          \r\n",
"              \r\n",
" 3            \r\n",
"     1 2 3 4 5\r\n",
" 6 7 8 9101112\r\n",
"13141516171819\r\n",
"20212223242526\r\n",
"2728293031    \r\n",
"              \r\n",
" 4            \r\n",
"           1 2\r\n",
" 3 4 5 6 7 8 9\r\n",
"10111213141516\r\n",
"17181920212223\r\n",
"24252627282930\r\n",
"              \r\n",
" 5            \r\n",
" 1 2 3 4 5 6 7\r\n",
" 8 91011121314\r\n",
"15161718192021\r\n",
"22232425262728\r\n",
"293031        \r\n",
"              \r\n",
" 6            \r\n",
"       1 2 3 4\r\n",
"5 6 7 8 9 1011\r\n",
"12131415161718\r\n",
"19202122232425\r\n",
"262728293031  \r\n",
"              \r\n",
" 7            \r\n",
"           1 2\r\n",
" 3 4 5 6 7 8 9\r\n",
"10111213141516\r\n",
"17181920212223\r\n",
"24252627282930\r\n",
"31            \r\n",
"              \r\n",
" 8            \r\n",
"   1 2 3 4 5 6\r\n",
" 7 8 910111213\r\n",
"14151617181920\r\n",
"21222324252627\r\n",
"28293031      \r\n",
"              \r\n",
" 9            \r\n",
"   1 2 3 4 5 6\r\n",
" 7 8 910111213\r\n",
"14151617181920\r\n",
"21222324252627\r\n",
"282930        \r\n",
"              \r\n",
"10            \r\n",
"             1\r\n",
" 2 3 4 5 6 7 8\r\n",
" 9101112131415\r\n",
"16171819202122\r\n",
"23242526272829\r\n",
"3031          \r\n",
"              \r\n",
"11            \r\n",
"   1 2 3 4 5 6\r\n",
" 7 8 910111213\r\n",
"14151617181920\r\n",
"21222324252627\r\n",
"28293031      \r\n",
"              \r\n",
"12            \r\n",
"         1 2 3\r\n",
" 4 5 6 7 8 910\r\n",
"11121314151617\r\n",
"18192021222324\r\n",
"25262728293031\r\n",
0};


int main()
{

    int ii=0; //ループカウンター
    while(str[ii]!=0) {

        //文字列出力
        pc.printf( "%s",  str[ii]  );
        ii++;

    } //while

    //無限ループ マイコン的停止処理
    while(1) {};

} //main

//容量削減
void error(const char* format, ...) {}




```