
stm32l010 spi 1r
main.cpp
- Committer:
- caa45040
- Date:
- 2021-05-18
- Revision:
- 0:0bc87195b118
File content as of revision 0:0bc87195b118:
#include "mbed.h" //* ***** ***** //* * * * //* ****** * * //* * * * //* * * * //******** ***** ***** #define swclk1 PA_5 //A4 #define test01 PA_6 #define swdio1 PA_7 //A6 #define en1 PA_4 //A3 //DigitalOut test1(test01); //DigitalOut swdclk(swclk1); //DigitalOut swdio(swdio1); DigitalOut en(en1); SPI spi( swdio1 , test01, swclk1); // mosi, miso, sclk char seg[32][8] = { { 1,1,1,1,1,1,1,1 }, //0 @ -> ' ' { 0,0,0,0,0,1,0,1 }, //1 A o { 1,1,0,0,0,0,0,1 }, //2 B combined use "6" { 0,1,0,1,0,0,1,1 }, //3 C { 1,0,1,0,0,0,0,1 }, //4 D { 0,1,0,0,0,0,1,1 }, //5 E o { 0,1,0,0,0,1,1,1 }, //6 F { 0,1,0,1,0,0,0,1 }, //7 G { 1,0,0,0,0,1,0,1 }, //8 H o { 1,0,1,1,1,1,0,1 }, //9 I combined use "1" { 1,0,1,1,0,0,0,1 }, //10 J { 0,1,0,0,0,1,0,1 }, //11 K { 1,1,0,1,0,0,1,1 }, //12 L o { 0,1,1,1,0,1,0,1 }, //13 M { 0,0,0,1,0,1,0,1 }, //14 N o { 0,0,0,1,0,0,0,1 }, //15 O o combined use "0" { 0,0,0,0,0,1,1,1 }, //16 P { 0,0,0,0,1,1,0,1 }, //17 Q combined use "9" { 1,1,1,0,0,1,1,1 }, //18 R { 0,1,0,0,1,0,0,1 }, //19 S combined use "5" { 1,1,0,0,0,0,1,1 }, //20 T { 1,0,0,1,0,0,0,1 }, //21 U { 1,1,1,1,0,0,0,1 }, //22 V { 1,0,0,1,1,0,1,1 }, //23 W o { 1,1,0,0,1,1,0,1 }, //24 X { 1,0,0,0,1,0,0,1 }, //25 Y { 0,0,1,0,0,0,1,1 }, //26 Z combined use "2" { 0,0,1,0,1,0,0,1 }, //27 [ --> "3" { 1,0,0,0,1,1,0,1 }, //28 \ --> "4" { 0,0,0,1,1,1,0,1 }, //29 ] --> "7" { 0,0,0,0,0,0,0,1 }, //26 ^ --> "8" { 1,1,1,1,1,0,1,1 } //31 _ }; int vc; int ch_chvc(int s) { s = s - 64; vc =0; vc = vc | ((!(seg[s][7])) << 7); vc = vc | ((!(seg[s][3])) << 6); vc = vc | ((!(seg[s][2])) << 5); vc = vc | ((!(seg[s][4])) << 4); vc = vc | ((!(seg[s][5])) << 3); vc = vc | ((!(seg[s][6])) << 2); vc = vc | ((!(seg[s][1])) << 1); vc = vc | ((!(seg[s][0])) << 0); return(vc); }//ch_chvc //d int v; //d int rs; //d void seg1() //d { //d swdio=((v>>7)&1); swdclk=1;swdclk=0; //7 //d swdio=((v>>6)&1); swdclk=1;swdclk=0; //6 //d swdio=((v>>5)&1); swdclk=1;swdclk=0; //5 //d swdio=((v>>4)&1); swdclk=1;swdclk=0; //4 //d swdio=((v>>3)&1); swdclk=1;swdclk=0; //3 //d swdio=((v>>2)&1); swdclk=1;swdclk=0; //2 //d swdio=((v>>1)&1); swdclk=1;swdclk=0; //1 //d swdio=((v>>0)&1); swdclk=1;swdclk=0; //0 //d swdio=rs; //d en=1; //d wait_ms(1); //d en=0; //d }//seg1 int main() { //d en=1; //debug //d wait_ms(1000); //debug //d //d swdio=1; //debug //d wait_ms(1000); //debug //d en=0; //d swdio=0; //d for(int i=0;i<16;i++){ //d swdclk=1; //d wait_ms(15); //d swdclk=0; //d wait_ms(15); //d }//for spi.format(8,0); spi.frequency(1000000); en=0; int v; //バリュー 表示のパターン //v=ch_chvc('Y'); //spi.write(v);en=1;en=0; //debug //wait_ms(1000); v=ch_chvc('@'); spi.write(v);en=1;en=0; //debug wait_ms(1000); //en=1; //debug //wait_ms(1000); //debug //d en=0; //d for(int i=0;i<16;i++){ //d en=1; //d wait_ms(15); //d en=0; //d wait_ms(15); //d }//for //d v=0x55;seg1(); //debug //d wait_ms(1000); //debug //d v=0xaa;seg1(); //debug //d wait_ms(1000); //debug int ii; //ループカウンター //int v; //バリュー 表示のパターン //無限ループ while(1) { //0分 v=ch_chvc('O');spi.write(v);en=1;en=0; for(ii = 0;ii < 60;ii++){ wait_ms(1000); }//for //1分 v=ch_chvc('I');spi.write(v);en=1;en=0; for(ii = 0;ii < 60;ii++){ wait_ms(1000); }//for //2分 v=ch_chvc('Z');spi.write(v);en=1;en=0; for(ii = 0;ii < 60;ii++){ wait_ms(1000); }//for //3分 v=ch_chvc('[');spi.write(v);en=1;en=0; while(1){} //無限ループ //d while(1){ //debug //d swdclk=1; //debug //d wait_ms(1000); //debug //d swdclk=0; //debug //d wait_ms(1000); //debug //d }//while //debug //d while(1){ //debug //d en=1; //debug //d wait_ms(1000); //debug //d en=0; //debug //d wait_ms(1000); //debug //d }//while //debug }//while //無限ループ }//main //容量削減 void error(const char* format, ...){}