STM32F103C8と秋月シリアル7セグで3分タイマー SPI


x Mbed2のリビジョンは、172
x Mbedでのボード設定は、NUCLEO-F103RB
x 赤色7セグメントLEDシリアルドライバモジュール 完成品
x OSL10564-74HC595-R M-12642
x プログラムは、STM32F767と同じ
x ハードは、BluePill F103C8

説明
文字を文字パターンに変換する
64は、@の開始位置です。
7セグメントの文字パターンに変換
変換範囲は、32文字で5ビット分

メイン関数
main()
いろいろ初期化
1から3までを1分毎に7セグに表示して
無限ループで停止する

D13-PA_5 -> A5
D12-PA_6 -> A6
D11-PA_7 -> A7
D10-PB_6 -> B6


#include "mbed.h"

//*          *****  *****  
//*         *       *    * 
//*         ******  *    *
//*         *       *    *
//*         *       *    *
//********   *****  *****

#define swclk1  PA_5    //A4
#define test01  PA_6
#define swdio1  PA_7    //A6
#define en1     PA_4    //A3

SPI spi( D11 , D12 , D13); // mosi, miso, sclk //767
DigitalOut en( D10 ); //767

//SPI spi( swdio1 , test01, swclk1); // mosi, miso, sclk //010
//DigitalOut en(en1); //010

char seg[32] = {
   0x00 , //0 @ -> ' '
   0x77 , //1 A  o
   0x7c , //2 B      combined use "6"
   0x39 , //3 C
   0x5e , //4 D
   0x79 , //5 E  o
   0x71 , //6 F
   0x3d , //7 G

   0x76 , //8 H  o
   0x06 , //9 I     combined use "1"
   0x1e , //10 J
   0x75 , //11 K 
   0x38 , //12 L  o
   0x15 , //13 M
   0x37 , //14 N  o
   0x3f , //15 O  o combined use "0"

   0x73  , //16 P
   0x67  , //17 Q combined use "9"
   0x50  , //18 R
   0x6d  , //19 S combined use "5"
   0x78  , //20 T
   0x3e  , //21 U
   0x1c  , //22 V
   0x2a  , //23 W  o
   0x64  , //24 X

   0x6e  , //25 Y
   0x5b  , //26 Z combined use "2"
   0x4f  , //27 [  --> "3"
   0x66  , //28 \  --> "4"
   0x27  , //29 ]  --> "7"
   0x7f  , //26 ^  --> "8"
   0x08    //31 _
};


#define s60()   for(ii=0;ii<60;ii++)wait_ms(1000);

int main() {

    spi.format(8,0);
    spi.frequency(1000000);

    en=0;

    int ii; //ループカウンター

    //0分
    spi.write(seg['O'-64]);en=1;en=0;
    s60();

    //1分
    spi.write(seg['I'-64]);en=1;en=0;
    s60();

    //2分
    spi.write(seg['Z'-64]);en=1;en=0;
    s60();

    //3分
    spi.write(seg['['-64]);en=1;en=0;

    while(1){} //無限ループ

}//main

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