STM32F103驱动四位共阳极数码管程序

STM32F103驱动四位共阳极数码管程序
STM32原理图

下面展示一些 内联代码片

// 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++;
     }
   }
 }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值