Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2020/10/11 15:35:52

MixJuice GET URL : kidspod.club/mj/1018

3分タイマー 表示用に STM32L010F4P6 使用

秋月で9月に95円で登場した、マイコン STM32L010F4P6 で
3分タイマーを作りました。

!!2020/10/24
!!stm32l010f4p6は、USARTシリアル書き込み出来ました。
!!(st-link nBOOT0を立ててください。)古いネタ
!!ユーチューブ キーワード STM32L010F4P6
!!新品 USART書き込み成功

苦労した点は、

まず、
1.シリアル通信での書き込みが現時点では、書き込み出来なかった。
2.nucleo-f767のst-linkから始めは、認識しなかった。
st-linkのファームをアップデートしたら認識した。
3.st-linkのリセット動作がおかしかった。ハードウァアリセットから
ソフトウェアリセットに変更したらうまくいった。
4.mbedでコンパイルすると容量が16kを超えてエラーになった。
少し古いmbedのバージョンにしたらぎりぎり16kになった。
リビジョン137までもどした。
mbedは、nuolec-l011を選択した
違いは、コンパレータと温度センサーがついている。
シリーズはSTM32L010、STM32L010F4は、sop20で16k。
コードメンテナンスでmbedで公開、mbedリビジョン165で動いた。

端子は、上から
1 SWDCLK
2 SWDIO
3 X2
4 X1
5 3.3V
6 GND

表示は、7セグメントで0,1,2,3のみ

x2=0,x1=0(0);x2=0,x1=1(1);x2=1,x1=0(2);x2=1,x1=1(3)

回路は、
boot0は、プルダウン10kでGND
nretは、プルアップ10kでVDD
VDDとGNDの間に0.1uf
7セグメントは、PA1,PA2,PA3,PA4,PA5,PA6,PA7,PB1,電圧を落とす為にダイオードを入れた。
x1,x2に10kでプルアップ

SOURCE CODE

mbed側

#include "mbed.h"


DigitalOut myled1(PA_1);
DigitalOut myled2(PA_2);
DigitalOut myled3(PA_3);
DigitalOut myled4(PA_4);
DigitalOut myled5(PA_5);
DigitalOut myled6(PA_6);
DigitalOut myled7(PA_7);

DigitalOut myled8(PB_1);

DigitalIn myin10(PA_10);
DigitalIn myin9(PA_9);

void seg0(){
myled1 = 0;myled2 = 0;myled3 = 0;myled4 = 1;myled5 = 0;myled6 = 0;myled7 = 0;myled8 = 1;
}
void seg1(){
myled1 = 1;myled2 = 0;myled3 = 1;myled4 = 1;myled5 = 1;myled6 = 1;myled7 = 0;myled8 = 1;
}
void seg2(){
myled1 = 0;myled2 = 0;myled3 = 1;myled4 = 0;myled5 = 0;myled6 = 0;myled7 = 1;myled8 = 1;
}
void seg3(){
myled1 = 0;myled2 = 0;myled3 = 1;myled4 = 0;myled5 = 1;myled6 = 0;myled7 = 0;myled8 = 1;
}



int main() {
    int a = 0;
    int b = 1;
    
    while(1) {
        
        while( (a = myin9 * 2 + myin10) == b ) {}
        
        
        if ( a == 0 ) {      
        seg0();
        
        } else if ( a == 1 ) {
        seg1();
 
        } else if ( a == 2 ) {
        seg2();
 
        } else if ( a == 3 ) {
        seg3();
        }
         
        b=a;
    }
}
//SOLD_AT_MERCARI
//ICHIGOJAM
//
//10 '3 MIN TIMER
//20 OUT 10,0:OUT 11,0:'0
//30 WAIT 60*60-0:' 1M
//40 OUT 10,1:OUT 11,0:'1
//50 WAIT 60*60-0:' 1M
//60 OUT 10,0:OUT 11,1:'2
//70 WAIT 60*60-0:' 1M
//80 OUT 10,1:OUT 11,1:'3
//90 BEEP


ichgojam側のソースコード

10 '3 MIN TIMER
20 OUT 10,0:OUT 11,0:'0
30 WAIT 60*60-0:' 1M
40 OUT 10,1:OUT 11,0:'1
50 WAIT 60*60-0:' 1M
60 OUT 10,0:OUT 11,1:'2
70 WAIT 60*60-0:' 1M
80 OUT 10,1:OUT 11,1:'3
90 BEEP

COMMENT