STM32驱动4*5点阵 无点阵驱动芯片
多说无益,本次试验比较陋
LED部分程序
#include "led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_ResetBits(GPIOC,GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12); //PD.2 Êä³ö¸ß
}
void xian(u8 p)
{
switch(p)
{
case 0:LED0=1;LED1=1;LED2=1;LED3=1;LED6=1;LED5=1;LED8=1;LED9=1;LED10=1;LED11=1;break;
case 1:LED1=1;LED4=1;LED7=1;LED10=1;LED13=1;break;
case 2:LED0=1;LED1=1;LED2=1;LED4=1;LED6=1;LED9=1;LED10=1;LED11=1;LED14=1;break;
case 3:LED0=1;LED1=1;LED2=1;LED3=1;LED6=1;LED9=1;LED10=1;LED11=1;LED12=1;LED13=1;LED14=1;break;
case 4:LED2=1;LED3=1;LED6=1;LED8=1;LED9=1;LED11=1;LED12=1;LED13=1;LED14=1;break;
case 5:LED0=1;LED1=1;LED3=1;LED7=1;LED8=1;LED9=1;LED10=1;LED11=1;LED14=1;break;
case 6:LED0=1;LED1=1;LED2=1;LED3=1;LED5=1;LED8=1;LED9=1;LED10=1;LED11=1;LED12=1;LED13=1;LED14=1;break;
case 7:LED2=1;LED3=1;LED6=1;LED9=1;LED10=1;LED11=1;break;
case 8:LED0=1;LED1=1;LED2=1;LED3=1;LED5=1;LED6=1;LED8=1;LED9=1;LED10=1;LED11=1;LED12=1;LED13=1;LED14=1;break;
case 9:LED0=1;LED1=1;LED2=1;LED3=1;LED6=1;LED9=1;LED10=1;LED11=1;LED12=1;LED13=1;LED14=1;break;
case 'a':LED10=1;LED6=1;LED8=1;LED5=1;LED3=1;LED0=1;LED2=1;LED12=1;LED13=1;LED14=1;break;
case 'b':LED0=1;LED1=1;LED3=1;LED5=1;LED12=1;LED8=1;LED11=1;LED13=1;break;
case 'c':LED1=1;LED2=1;LED5=1;LED8=1;LED9=1;LED11=1;break;
case 'd':LED0=1;LED1=1;LED3=1;LED5=1;LED6=1;LED8=1;LED10=1;LED11=1;break;
case 'e':LED0=1;LED1=1;LED2=1;LED5=1;LED8=1;LED9=1;LED10=1;LED11=1;LED12=1;LED13=1;LED14=1;break;
case 'h':LED0=1;LED2=1;LED3=1;LED5=1;LED6=1;LED8=1;LED8=1;LED9=1;LED11=1;LED12=1;LED13=1;LED14=1;break;
case 'i':LED0=1;LED1=1;LED2=1;LED4=1;LED7=1;LED9=1;LED10=1;LED11=1;LED13=1;break;
case 'j':LED1=1;LED3=1;LED5=1;LED6=1;LED9=1;break;
case 'k':LED0=1;LED2=1;LED3=1;LED4=1;LED6=1;LED7=1;LED9=1;LED10=1;break;
case 'l':LED0=1;LED1=1;LED2=1;LED5=1;LED8=1;LED11=1;LED12=1;break;
case 'm':LED0=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED8=1;break;
case 'n':LED0=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED8=1;break;
case 'o':LED0=1;LED1=1;LED2=1;LED3=1;LED6=1;LED5=1;LED8=1;LED9=1;LED10=1;LED11=1;LED12=1;LED14=1;break;
case 'v':LED1=1;LED3=1;LED5=1;LED6=1;LED8=1;LED9=1;LED11=1;break;
case 'u':LED0=1;LED1=1;LED2=1;LED3=1;LED5=1;LED6=1;LED8=1;LED9=1;LED11=1;break;
case 'y':LED1=1;LED4=1;LED13=1;LED6=1;LED8=1;LED9=1;LED11=1;break;
}
}
主程序部分`
#include "led.h"
#include "delay.h"
#include "sys.h"
void display(u8 x)
{
xian(x);
delay_ms(40000); //ÑÓʱ3000ms
delay_ms(40000); //ÑÓʱ3000ms
delay_ms(40000); //ÑÓʱ3000ms
LED_Init();
}
int main(void)
{
u8 x=0;
delay_init();
LED_Init();
while(1)
{
// x++;
// if(x>9)x=0;
display(x);
display('i');
display('l');
display('o');
display('v');
display('e');
display('y');
display('o');
display('u');
}
}
`