一位共阳极数码管的应用

案例1

数码管应用,数字信号的输出,我们用LL标准库函数编写,成组定义相对简单;

首先,我们在主函数里定义全局变量共阳极数码管数组,以及变量“i”,以待调用。

uint8_t seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint8_t i;

其次,如果我们要做一个0~9,每5毫秒那么直接在循环函数里写程序

 while (1)
  {
    /* USER CODE END WHILE */
	  
    /* USER CODE BEGIN 3 */
	  for(i=0;i<10;i++)
	  {
		LL_GPIO_WriteOutputPort(GPIOB, seg[i]);
		HAL_Delay(500)  ;
	  }	  
  }

案例2

两个按键控制数码管数字加减

我们调用PB组0~7口配置为

uint8_t seg1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint8_t key1,key2,i;

按键key1使数码管加1,按键key2使数码管减一:

  while (1)
  {
    /* USER CODE END WHILE */
	  key1=HAL_GPIO_ReadPin(A1_GPIO_Port, A1_Pin);
	  if(key1==0){
		  	  	  while(key1==0){key1=HAL_GPIO_ReadPin(A1_GPIO_Port, A1_Pin);}
		  	  	  i++;if(i==10){i=0;}
	  	  	  	  }
	  LL_GPIO_WriteOutputPort(GPIOB, seg1[i]);
	  key2=HAL_GPIO_ReadPin(A2_GPIO_Port, A2_Pin);
	  	  if(key2==0){
	  		  	  	  while(key2==0){key2=HAL_GPIO_ReadPin(A2_GPIO_Port, A2_Pin);}
	  		  	  	  i--;if(i==255){i=9;}
	  	  	  	  	  }
	  	  LL_GPIO_WriteOutputPort(GPIOB, seg1[i]);
    /* USER CODE BEGIN 3 */

  }

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值