STM32F767ZI test for Time,ADC,PWM,Intrrupt input,IO input,IO plus,and Virual SPI 4 line LCD display.

Committer:
zhjb62
Date:
Sun Jul 30 13:00:37 2017 +0000
Revision:
0:fa2d00fee0fc
1 tick,1 plus,4 adc input to check,3 pwm,2 Interrupt input,3 input,with 6903 LCD display,1 programe counter.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zhjb62 0:fa2d00fee0fc 1 //#include "mbed.h"
zhjb62 0:fa2d00fee0fc 2 DigitalOut dat(PD_4);
zhjb62 0:fa2d00fee0fc 3 DigitalOut clk(PD_5);
zhjb62 0:fa2d00fee0fc 4 DigitalOut res(PD_6);
zhjb62 0:fa2d00fee0fc 5 DigitalOut reg(PD_7);
zhjb62 0:fa2d00fee0fc 6
zhjb62 0:fa2d00fee0fc 7 //6903 102X64LCD
zhjb62 0:fa2d00fee0fc 8 const unsigned char asc2[][6]={//8x6 Dots 32-126[0-94]
zhjb62 0:fa2d00fee0fc 9 {0x00,0x3E,0x45,0x49,0x51,0x3E},//0
zhjb62 0:fa2d00fee0fc 10 {0x00,0x00,0x21,0x7F,0x01,0x00},//1
zhjb62 0:fa2d00fee0fc 11 {0x00,0x31,0x43,0x45,0x49,0x31},//2
zhjb62 0:fa2d00fee0fc 12 {0x00,0x22,0x49,0x49,0x49,0x36},//3
zhjb62 0:fa2d00fee0fc 13 {0x00,0x04,0x0C,0x14,0x7F,0x04},//4
zhjb62 0:fa2d00fee0fc 14 {0x00,0x72,0x51,0x51,0x51,0x4E},//5-5
zhjb62 0:fa2d00fee0fc 15 {0x00,0x3E,0x49,0x49,0x49,0x06},//6
zhjb62 0:fa2d00fee0fc 16 {0x00,0x40,0x43,0x4C,0x50,0x60},//7
zhjb62 0:fa2d00fee0fc 17 {0x00,0x36,0x49,0x49,0x49,0x36},//8
zhjb62 0:fa2d00fee0fc 18 {0x00,0x30,0x48,0x48,0x48,0x3F},//9
zhjb62 0:fa2d00fee0fc 19 {0x00,0x1F,0x24,0x64,0x24,0x1F},//A-10
zhjb62 0:fa2d00fee0fc 20 {0x00,0x41,0x7F,0x49,0x49,0x36},//B
zhjb62 0:fa2d00fee0fc 21 {0x00,0x3E,0x41,0x41,0x41,0x22},//C
zhjb62 0:fa2d00fee0fc 22 {0x00,0x41,0x7F,0x41,0x41,0x3E},//D
zhjb62 0:fa2d00fee0fc 23 {0x00,0x41,0x7F,0x49,0x49,0x63},//E
zhjb62 0:fa2d00fee0fc 24 {0x00,0x41,0x7F,0x49,0x5C,0x60},//F-15
zhjb62 0:fa2d00fee0fc 25 {0x00,0x3E,0x41,0x45,0x47,0x24},//G
zhjb62 0:fa2d00fee0fc 26 {0x41,0x7F,0x08,0x08,0x08,0x7F},//H
zhjb62 0:fa2d00fee0fc 27 {0x00,0x00,0x41,0x7F,0x41,0x00},//I
zhjb62 0:fa2d00fee0fc 28 {0x00,0x42,0x41,0x7F,0x40,0x40},//J
zhjb62 0:fa2d00fee0fc 29 {0x00,0x41,0x7F,0x59,0x24,0x43},//K-20
zhjb62 0:fa2d00fee0fc 30 {0x00,0x40,0x7F,0x41,0x01,0x03},//L
zhjb62 0:fa2d00fee0fc 31 {0x00,0x7F,0x20,0x1E,0x20,0x7F},//M
zhjb62 0:fa2d00fee0fc 32 {0x00,0x7F,0x30,0x18,0x06,0x7F},//N
zhjb62 0:fa2d00fee0fc 33 {0x00,0x3E,0x41,0x41,0x41,0x3E},//O
zhjb62 0:fa2d00fee0fc 34 {0x00,0x41,0x7F,0x49,0x48,0x30},//P-25
zhjb62 0:fa2d00fee0fc 35 {0x00,0x3E,0x41,0x47,0x42,0x3D},//Q
zhjb62 0:fa2d00fee0fc 36 {0x00,0x41,0x7F,0x49,0x4C,0x33},//R
zhjb62 0:fa2d00fee0fc 37 {0x00,0x32,0x49,0x49,0x49,0x26},//S
zhjb62 0:fa2d00fee0fc 38 {0x00,0x60,0x41,0x7F,0x41,0x60},//T
zhjb62 0:fa2d00fee0fc 39 {0x00,0x7E,0x01,0x01,0x01,0x7E},//U-30
zhjb62 0:fa2d00fee0fc 40 {0x00,0x7C,0x02,0x01,0x02,0x7C},//V
zhjb62 0:fa2d00fee0fc 41 {0x00,0x7C,0x03,0x3C,0x03,0x7C},//W
zhjb62 0:fa2d00fee0fc 42 {0x00,0x43,0x24,0x18,0x24,0x43},//X
zhjb62 0:fa2d00fee0fc 43 {0x00,0x60,0x18,0x07,0x18,0x60},//Y
zhjb62 0:fa2d00fee0fc 44 {0x00,0x63,0x45,0x49,0x51,0x63},//Z-35
zhjb62 0:fa2d00fee0fc 45 {0x00,0x00,0x00,0x01,0x00,0x00},//.
zhjb62 0:fa2d00fee0fc 46 {0x00,0x14,0x14,0x14,0x14,0x14},//=
zhjb62 0:fa2d00fee0fc 47 {0x00,0x08,0x08,0x3E,0x08,0x08},//+
zhjb62 0:fa2d00fee0fc 48 {0x00,0x08,0x08,0x08,0x08,0x08},//-
zhjb62 0:fa2d00fee0fc 49 {0x00,0x00,0x00,0x24,0x00,0x00},//:-40
zhjb62 0:fa2d00fee0fc 50 };
zhjb62 0:fa2d00fee0fc 51 //Write Plus
zhjb62 0:fa2d00fee0fc 52 void wri(void){clk=0;clk=1;}
zhjb62 0:fa2d00fee0fc 53 //使用SPI接口写数据到LCD,dt:写入的数据 command: 1-数据/0-命令
zhjb62 0:fa2d00fee0fc 54 void b2l(unsigned char dt,unsigned char command){
zhjb62 0:fa2d00fee0fc 55 unsigned char i;
zhjb62 0:fa2d00fee0fc 56 reg=command;
zhjb62 0:fa2d00fee0fc 57 for(i=0;i<8;i++){
zhjb62 0:fa2d00fee0fc 58 if(dt&0x80) dat=1;else dat=0;
zhjb62 0:fa2d00fee0fc 59 dt=dt<<1;
zhjb62 0:fa2d00fee0fc 60 wri();
zhjb62 0:fa2d00fee0fc 61 }
zhjb62 0:fa2d00fee0fc 62 }
zhjb62 0:fa2d00fee0fc 63 //名称: 设置坐标函数,参数:X:0-83 Y:0-5
zhjb62 0:fa2d00fee0fc 64 void setXY(unsigned char X,unsigned char Y){
zhjb62 0:fa2d00fee0fc 65 b2l(0x40+Y,0);//column
zhjb62 0:fa2d00fee0fc 66 b2l(0x80+X,0);//row
zhjb62 0:fa2d00fee0fc 67 }
zhjb62 0:fa2d00fee0fc 68 //名称: LCD清屏函数
zhjb62 0:fa2d00fee0fc 69 void lcdClear(void){
zhjb62 0:fa2d00fee0fc 70 unsigned char t,k;
zhjb62 0:fa2d00fee0fc 71 setXY(0,0);
zhjb62 0:fa2d00fee0fc 72 for(t=0;t<9;t++){for(k=0;k<102;k++){b2l(0x00,1);}}
zhjb62 0:fa2d00fee0fc 73 }
zhjb62 0:fa2d00fee0fc 74 //名称: 显示英文字符,参数:c:显示的字符在asc2表格中的位置
zhjb62 0:fa2d00fee0fc 75 void c2l(unsigned char x,unsigned char y,unsigned char c){
zhjb62 0:fa2d00fee0fc 76 unsigned char line;
zhjb62 0:fa2d00fee0fc 77 setXY(x*6,y);
zhjb62 0:fa2d00fee0fc 78 for(line=0;line<6;line++)b2l(asc2[c][line],1);
zhjb62 0:fa2d00fee0fc 79 }
zhjb62 0:fa2d00fee0fc 80 //名称: 6903LCD初始化函数
zhjb62 0:fa2d00fee0fc 81 void lcdInit(void){
zhjb62 0:fa2d00fee0fc 82 wait(0.1);
zhjb62 0:fa2d00fee0fc 83 res=0;
zhjb62 0:fa2d00fee0fc 84 wait(0.5);
zhjb62 0:fa2d00fee0fc 85 res=1;
zhjb62 0:fa2d00fee0fc 86 wait(0.5);
zhjb62 0:fa2d00fee0fc 87 b2l(0x25,0);//00100 PD=1dcOn|=0Dcoff V=0Up|=1Left H==1
zhjb62 0:fa2d00fee0fc 88 wait(0.05);
zhjb62 0:fa2d00fee0fc 89 b2l(0x15,0);//脉宽L000~111=1/6-1/7-1/8-1/9//14=1/7
zhjb62 0:fa2d00fee0fc 90 wait(0.05);
zhjb62 0:fa2d00fee0fc 91 b2l(0x94,0);//设置VOP值,约为8.96V
zhjb62 0:fa2d00fee0fc 92 wait(0.05);
zhjb62 0:fa2d00fee0fc 93 b2l(0x20,0);//PD=0,H=0,V=0
zhjb62 0:fa2d00fee0fc 94 b2l(0x0C,0);//LCD设置完成
zhjb62 0:fa2d00fee0fc 95 wait(0.5);
zhjb62 0:fa2d00fee0fc 96 }
zhjb62 0:fa2d00fee0fc 97 //Display ASCII Test
zhjb62 0:fa2d00fee0fc 98 void dispAsc(void){
zhjb62 0:fa2d00fee0fc 99 int i,j,k=0;
zhjb62 0:fa2d00fee0fc 100 for(i=0;i<8;i++){
zhjb62 0:fa2d00fee0fc 101 for(j=0;j<17;j++){
zhjb62 0:fa2d00fee0fc 102 c2l(j,i,k);
zhjb62 0:fa2d00fee0fc 103 if(k>39){k=0;}else{k++;}
zhjb62 0:fa2d00fee0fc 104 }
zhjb62 0:fa2d00fee0fc 105 }
zhjb62 0:fa2d00fee0fc 106 }
zhjb62 0:fa2d00fee0fc 107 //END Files//
zhjb62 0:fa2d00fee0fc 108