你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32单个数码显示

[复制链接]
STMCU小助手 发布时间:2022-10-27 15:16
stm32单个数码显示
大家在使用是注意引脚接线,之前把引脚对错了搞了好久才把想要的效果显示出来
V%[)BOL[ZHI1]2ZR5O]SX{A.png

一.数码管分类

数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。
按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮

1.共阴数码管
对于共阴极数码管来说,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极数码管的阳极连接在一起,公共阳极接+5V,当某个发光二极管的阴极接低电平时,该发光二极管被点亮,相应的段被显示

2.共阳数码管
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮

数码管引脚图

20210628102817443.png
*j引脚接线 | PA0 - A | PA1 - B | PA2 - C | PA3 - D | PA4 - E | PA5 - F |PA6 - G |PA7 - DP |

二.代码部分

  1. #ifndef _SMG2_H_
  2. #define _SMG2_H_
  3. #include "stm32f10x.h"

  4. //unsigned char code smgduan1[] ={ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8,0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e};//共阳数码管
  5. //unsigned char code smgduan2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴数码管
  6. void SMG_GPIO_Config(void);
  7. void SMG_Display(void);
  8. #endif
复制代码

  1. //这里我是已共阴数码管为例


  2. #include "smg2.h"
  3. #include "stm32f10x.h"
  4. #include "delay.h"

  5. u8 const  smg_data[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴数码管
  6. void SMG_GPIO_Config(void)
  7. {
  8.         GPIO_InitTypeDef GPIO_InitStructure;
  9.         RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);

  10.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;        
  11.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
  12.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  13.         GPIO_Init(GPIOA, &GPIO_InitStructure);

  14.         GPIO_SetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);         // turn off all led
  15. }


  16. void SMG_Display(void)
  17. {
  18.         u8 i;
  19.         for(i=0;i<16;i++)
  20.     {
  21.                         GPIO_Write(GPIOA,smg_data<i>);
  22.       delay_ms(1000);                    
  23.     }
  24. }</i>
复制代码
  1. #include<stdio.h>
  2. #include "stm32f10x.h"
  3. #include"delay.h"
  4. #include "smg2.h"
  5. int  main(void)
  6. {
  7.         SMG_GPIO_Config();
  8.         while(1)
  9.         {        
  10.                 SMG_Display();        
  11.         }        
  12. }
复制代码

————————————————
版权声明:@slow-walker


收藏 评论0 发布时间:2022-10-27 15:16

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版