中级会员
 
- 积分
- 250
- 金钱
- 250
- 注册时间
- 2020-3-3
- 在线时间
- 85 小时
|
本帖最后由 mynameisqgj 于 2020-5-8 14:15 编辑
//这是驱动代码 IO口驱动的四位共阳的数码管
void SMG_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //数码管端口位 端口A
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //数码管端口段 端口B
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //数码管端口段 端口C
//数码管段的引脚 PC4 PC5
GPIO_InitStructure.GPIO_Pin=GPIO_PinSource4|GPIO_PinSource5;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
//数码管段的引脚 PB0 PB1 PB10 PB11 PB12 B13
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
//数码管位的引脚 PA4 PA5 PA6 PA7 PB13为数码管小数点的引脚
GPIO_InitStructure.GPIO_Pin=GPIO_PinSource4|GPIO_PinSource5|GPIO_PinSource6|GPIO_PinSource7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
}
void DisPlayNum(u32 n)
{
u32 i;
u32 s;
if(n<9999)
{
s=n;
i=0;
for(i=0;i<4;i++)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);
GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13); //数码管的段
GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7); //数码管的位
switch(i)
{
case 0: GPIO_SetBits(GPIOA,GPIO_Pin_4);
break;
case 1: GPIO_SetBits(GPIOA,GPIO_Pin_5);
break;
case 2: GPIO_SetBits(GPIOA,GPIO_Pin_6);
break;
case 3: GPIO_SetBits(GPIOA,GPIO_Pin_7);
break;
}
switch(s%10)
{
case 0: GPIO_SetBits(GPIOB,GPIO_Pin_12);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 1: GPIO_SetBits(GPIOC,GPIO_Pin_4);
GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 2: GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_11);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 3: GPIO_SetBits(GPIOB,GPIO_Pin_10|GPIO_Pin_11);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 4: GPIO_SetBits(GPIOC,GPIO_Pin_4);
GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_10);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 5: GPIO_SetBits(GPIOC,GPIO_Pin_5);
GPIO_SetBits(GPIOB,GPIO_Pin_10);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 6:
GPIO_SetBits(GPIOC,GPIO_Pin_5);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 7: GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 8: GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
case 9: GPIO_SetBits(GPIOB,GPIO_Pin_10);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
break;
}
s/=10;
delay_ms(5);
if(s==0)
break;
}
}
}//电路图

|
-
|