STM32F103驱动四位共阳极数码管程序
下面展示一些 内联代码片
。
// An highlighted block
#include "Led.h"
#include "Delay.h"
#include "stm32f10x_gpio.h"
static void InitSys(void)
{
}
/***************************************************************************************/
static void InitBSP(void)
{
GpioConfigurationLed();
}
/***************************************************************************************/
void GPIO_Num_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
void DisPlayNum(int n)
{
if (n < 9999)
{ int i;
int s;
s = n;
i=0;
for (i=0;i<4;i++)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_All);
GPIO_SetBits(GPIOA,GPIO_Pin_2);
switch (i)
{
case 0:
GPIO_SetBits(GPIOA,GPIO_Pin_5);
break;
case 1:
GPIO_SetBits(GPIOA,GPIO_Pin_7);
break;
case 2:
GPIO_SetBits(GPIOA,GPIO_Pin_8);
break;
case 3:
GPIO_SetBits(GPIOA,GPIO_Pin_11);
break;
}
switch (s % 10)
{
case 0:
GPIO_SetBits(GPIOA,GPIO_Pin_4);
break;
case 1:
GPIO_SetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_1|GPIO_Pin_0|GPIO_Pin_9|GPIO_Pin_4);
break;
case 2:
GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_9);
break;
case 3:
GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_9);
break;
case 4:
GPIO_SetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_1|GPIO_Pin_0);
break;
case 5:
GPIO_SetBits(GPIOA,GPIO_Pin_6|GPIO_Pin_0);
break;
case 6:
GPIO_SetBits(GPIOA,GPIO_Pin_6);
break;
case 7:
GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_0|GPIO_Pin_9|GPIO_Pin_4);
break;
case 8:
break;
case 9:
GPIO_SetBits(GPIOA,GPIO_Pin_0);
break;
}
s = s / 10;
DelayLED(0x500);
//delay_ms(5);
if (s==0)
break;
}
}
}
int count;
int TimeCheck;
int main(void)
{
InitSys();
InitBSP();
GPIO_Num_Init();
count =0;
TimeCheck = 0;
while(1)
{
DisPlayNum(count);
TimeCheck++;
DelayLED(0x5);
//delay_ms(500);
if (TimeCheck > 100)
{
TimeCheck=0;
count++;
}
}
}