原本是要弄OLED,结果点了一个星期一直不亮,最后更改为数码管。
用的是二位数码管,型号是4021.
数码管与开发板连接:
GPIO框架:
GPIO模式:
GPIO相关配置:
代码:
宏定义GPIO
#define GPIO_LED1 GPIOA
#define GPIO_LED3 GPIOB
#define GPIO_LEDC GPIOC
#define GPIO_LEDD GPIOD
#define KEY3 GPIO_PIN_6 //pd6
#define PIN_LED1 GPIO_PIN_8
#define PIN_LED3 GPIO_PIN_5
#define PIN_LEDA GPIO_PIN_2 //pd2
#define PIN_LEDB GPIO_PIN_1 //pd1
#define PIN_LEDC GPIO_PIN_11 //pc11
#define PIN_LEDD GPIO_PIN_8 //pc8
#define PIN_LEDE GPIO_PIN_3 //pc6
#define PIN_LEDF GPIO_PIN_9 //pc9
#define PIN_LEDG GPIO_PIN_0 //pd0
#define PIN_COM1 GPIO_PIN_7 //pc7
#define PIN_COM2 GPIO_PIN_4 //pD4
GPIO初始化:
GPIO_InitType gpioinit;
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA|RCC_APB2_PERIPH_GPIOB|RCC_APB2_PERIPH_GPIOC|RCC_APB2_PERIPH_GPIOD|RCC_APB2_PERIPH_AFIO,ENABLE);
GPIO_ConfigPinRemap(GPIO_RMP_SW_JTAG_NO_NJTRST,ENABLE);
gpioinit.Pin=GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_9|GPIO_PIN_13|GPIO_PIN_15;
gpioinit.GPIO_Mode=GPIO_Mode_Out_PP;
gpioinit.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOB,&gpioinit);
gpioinit.Pin=GPIO_PIN_8;
gpioinit.GPIO_Mode=GPIO_Mode_Out_PP;
gpioinit.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOB,&gpioinit);
gpioinit.Pin=GPIO_PIN_6;
gpioinit.GPIO_Mode=GPIO_Mode_IN_FLOATING;
gpioinit.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOA,&gpioinit);
gpioinit.Pin=GPIO_PIN_6 |GPIO_PIN_7 | GPIO_PIN_8 |GPIO_PIN_9 | GPIO_PIN_11;
gpioinit.GPIO_Mode=GPIO_Mode_Out_PP;
gpioinit.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOC,&gpioinit);
gpioinit.Pin=GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4;
gpioinit.GPIO_Mode=GPIO_Mode_Out_PP;
gpioinit.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOD,&gpioinit);
``
点亮数码管,从0-9显示
Delaya(0x28FFFF);
Delaya(0x28FFFF);
Delaya(0x28FFFF);
switch(ge)
{
case 0:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDA); //ÏÂ×ó|
LedOn(GPIO_LEDC, PIN_LEDC); //×óÉÏ|
LedOn(GPIO_LEDC, PIN_LEDD); //ÓÒÉÏ|
LedOn(GPIO_LEDD, PIN_LEDE); //ÉÏ-
LedOn(GPIO_LEDC, PIN_LEDF); //ÓÒÏÂ|
LedOn(GPIO_LEDD, PIN_LEDG); //ÏÂ-
LedOff(GPIO_LEDD, PIN_LEDB); //Öмä-
break;
case 1:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDC, PIN_LEDD); //ÓÒÉÏ|
LedOn(GPIO_LEDC, PIN_LEDF); //ÓÒÏÂ|
LedOff(GPIO_LEDD, PIN_LEDA); //ÏÂ×ó|
LedOff(GPIO_LEDD, PIN_LEDB); //Öмä-
LedOff(GPIO_LEDC, PIN_LEDC); //×óÉÏ|
LedOn(GPIO_LEDC, PIN_LEDD); //ÓÒÉÏ|
LedOff(GPIO_LEDD, PIN_LEDE); //ÉÏ-
LedOn(GPIO_LEDC, PIN_LEDF); //ÓÒÏÂ|
LedOff(GPIO_LEDD, PIN_LEDG); //ÏÂ-
break;
case 2:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDA);
LedOn(GPIO_LEDD, PIN_LEDB);
LedOn(GPIO_LEDC, PIN_LEDD);
LedOn(GPIO_LEDD, PIN_LEDE);
LedOn(GPIO_LEDD, PIN_LEDG);
LedOff(GPIO_LEDC, PIN_LEDC);
LedOff(GPIO_LEDC, PIN_LEDF);
break;
case 3:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDB);
LedOn(GPIO_LEDC, PIN_LEDD);
LedOn(GPIO_LEDD, PIN_LEDE);
LedOn(GPIO_LEDC, PIN_LEDF);
LedOn(GPIO_LEDD, PIN_LEDG);
LedOff(GPIO_LEDD, PIN_LEDA);
LedOff(GPIO_LEDC, PIN_LEDC);
break;
case 4:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDB);
LedOn(GPIO_LEDC, PIN_LEDC);
LedOn(GPIO_LEDC, PIN_LEDD);
LedOn(GPIO_LEDC, PIN_LEDF);
LedOff(GPIO_LEDD, PIN_LEDA);
LedOff(GPIO_LEDD, PIN_LEDG);
LedOff(GPIO_LEDD, PIN_LEDE);
break;
case 5:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDB);
LedOn(GPIO_LEDC, PIN_LEDC);
LedOn(GPIO_LEDD, PIN_LEDE);
LedOn(GPIO_LEDC, PIN_LEDF);
LedOn(GPIO_LEDD, PIN_LEDG);
LedOff(GPIO_LEDD, PIN_LEDA);
LedOff(GPIO_LEDC, PIN_LEDD);
break;
case 6:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDA);
LedOn(GPIO_LEDD, PIN_LEDB);
LedOn(GPIO_LEDC, PIN_LEDC);
LedOn(GPIO_LEDD, PIN_LEDE);
LedOn(GPIO_LEDC, PIN_LEDF);
LedOn(GPIO_LEDD, PIN_LEDG);
LedOff(GPIO_LEDC, PIN_LEDD);
break;
case 7:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDC, PIN_LEDD);
LedOn(GPIO_LEDD, PIN_LEDE);
LedOn(GPIO_LEDC, PIN_LEDF);
LedOff(GPIO_LEDD, PIN_LEDB);
LedOff(GPIO_LEDC, PIN_LEDC);
LedOff(GPIO_LEDD, PIN_LEDG);
LedOff(GPIO_LEDD, PIN_LEDA);
break;
case 8:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDA);
LedOn(GPIO_LEDD, PIN_LEDB);
LedOn(GPIO_LEDC, PIN_LEDC);
LedOn(GPIO_LEDC, PIN_LEDD);
LedOn(GPIO_LEDD, PIN_LEDE);
LedOn(GPIO_LEDC, PIN_LEDF);
LedOn(GPIO_LEDD, PIN_LEDG);
break;
case 9:
LedOff(GPIO_LEDC, PIN_COM1);
LedOff(GPIO_LEDD, PIN_COM2);
LedOn(GPIO_LEDD, PIN_LEDB);
LedOn(GPIO_LEDC, PIN_LEDC);
LedOn(GPIO_LEDC, PIN_LEDD);
LedOn(GPIO_LEDD, PIN_LEDE);
LedOn(GPIO_LEDC, PIN_LEDF);
LedOn(GPIO_LEDD, PIN_LEDG);
LedOff(GPIO_LEDD, PIN_LEDA);
break;
}