中级会员
 
- 积分
- 250
- 金钱
- 250
- 注册时间
- 2020-3-3
- 在线时间
- 85 小时
|
//
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
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
//数码管段的引脚 PC4 PC5
GPIO_InitStructure.GPIO_Pin=GPIO_PinSource4|GPIO_PinSource5;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
//GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);
//数码管段的引脚 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_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
//GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13);
//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); //数码管的段
//数码管位的引脚 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_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
//GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
//GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7); //位选拉低
//GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
}
//
void DisPlayNum(u32 n)
{
u32 s,i=0;
s=n;
if(s<9999)
{
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_Pin_12);
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;
//default: break;
}
s/=10;
delay_ms(3000);
if(s==0)
break;
//delay_ms(3000);
}
}
}
//这是电路图 位选对应的A4-A7

现在数码管出现的状况是无论位选是高低电平都亮,并且无法选中某一位!(共阳)
|
-
|