用数码管显示高度计数据

数码管控制原理在这里插入图片描述位控制

用GPIO_Write函数位操作都是从每个大类(A.B.C.D)中从零号引脚开始从低位向高位操作进行选位时要注意

#define NUM_STATIC_GPIO  GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7  
#define NUM_STATIC_BIT GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7
//段选位
u8 table13[10]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//不用小数点0-8
u8 table2[10]={0x40,0x4f,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//使用小数点0-8
u8 weima[8]={0x20,0x40,0x80};//位选码
void SMG_Init(void)
{
         GPIO_InitTypeDef GPIO_InitStructure; 
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
         //段码设置
         GPIO_InitStructure.GPIO_Pin=NUM_STATIC_GPIO;
         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
         GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIOA初始化
         //位码设置
         GPIO_InitStructure.GPIO_Pin=NUM_STATIC_BIT;
         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
         GPIO_Init(GPIOB,&GPIO_InitStructure);//GPIOB初始化
}

void SMG_Sdf(float high)
{
   int i,p,j,k,hih,hij,y;
   float hig,hip;
   SMG_Init();
   hig=high/10;
   hih=(int)high;
   hip=high*10;
   hij=(int)hip;
   j=hij%100;
   k=j%10;//小数位
   p=hih%10;//个位
   i=(int)hig;//十位
   for(y=0;y<3;y++)
   {
   if(y==0)
   {
     GPIO_Write(GPIOB,weima[y]);
     GPIO_Write(GPIOA,table13[i]);
     delay_ms(10);
   }
   if(y==1)
   {
   GPIO_Write(GPIOB,weima[y]);
   GPIO_Write(GPIOA,table2[p]);
   delay_ms(10);
   }
   if(y==2)
   {
     GPIO_Write(GPIOB,weima[y]);
     GPIO_Write(GPIOA,table13[k]);
     delay_ms(15);
   }
   }
     GPIO_Write(GPIOB,0x00);
     GPIO_Write(GPIOA,0x00);
}

以上代码是有关配置,本来想写在自定义的smg.c文件里的,但在调用时出了错,索性就直接放在main.c里了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值