本教程是关于如何使用keil arm mdk 5和stm32 HAL库将7段led显示器与stm32微控制器接口,以进行代码编译。Stm32cubemx用于初始化stm32f103c8t6微控制器外设/变量引脚,工作频率,振荡器选择等。然后将Stm32cubemx初始化设置导入keil mdk arm 5项目。Stm32cubemx自动生成代码的ide,我们想工作在和在这个项目中,我将使用keil手臂mdk 5 ide。如果你是新的,不知道关于stm32cubemx和keil uvision手臂ide。我建议你了解更多关于Stm32cubemx和keil uvision mdk arm ide一起使用的stm32 HAL库用于stm32微控制器代码生成。只需点击下面的按钮来学习教程
接下来是主要的项目。在本教程中,我将使用stm32f103微控制器接口一个七段显示器。我将在一个7段显示器上打印从0到9的数字和从A到F的字符。七段显示器由led按矩阵形式排列组成。在专用模式中开关led的开关打印出所需的数字或字符在7段显示。七段显示器有共阳极和共阴极两种类型。普通阳极七段显示器的阳极引脚都连在一个点上。在公共阴极中,所有的阴极管脚都连接到一个点上。要了解更多关于类型、大小和特殊7段显示之间的差异,请参见下面的教程。点击下面的按钮来学习教程。
在这个项目中,我将使用普通阳极7段显示。Stm32微控制器不容易使用。他们不是在DIP包装。所以用它们在面包板上做diy是不可能的。我们需要设计一个特殊的pcb与stm32微控制器工作,这仍然是一个耗时的工作。幸运的是,他们的数量是预先组装的stm32入门板在市场上可用。它们不仅便宜,而且易于操作。我还将使用一个预先组装的stm32板,上面有一个stm32f103c8t6微控制器。
项目线路图
我在这个项目中使用的电路板在下面的电路图中。虽然在板上不是所有的GPIO引脚stm32f103微控制器是暴露的,但它仍然有相当多的GPIO引脚工作。stm32f103的Port-A有16个GPIO管脚,单板上露出的只有12个。幸运的是,端口-a引脚从0到6是在板上,他们是足够的我们的项目需要。我连接
- 端口-a引脚#0连接到7段显示的引脚-a
- 端口- a引脚#1连接到7段显示器的引脚b
- 端口- a引脚2连接到7段显示器的引脚c
- 端口- a引脚#3连接到7段显示器的引脚d
- 端口- a引脚#4连接到7段显示引脚
- 端口- a引脚#5连接到7段显示器的引脚f
- 端口- a引脚#6连接到7段引脚显示
由于我使用的是普通阳极7段显示器,所以stm32的3.3伏输出引脚连接到7段显示器的com引脚。我使用stlink v2调试器在微控制器中上传了代码。
接下来是项目代码。代码是用keil uvision mdk arm ide编写的。项目中使用了Stm32 HAL库。Stm32cubemx代码配置器用于配置stm32微控制器振荡器、gpios和定时器。只有while 1循环中的部分在这里是重要的。我只在这个循环中编写了代码。其余代码由stm32cubemx ide生成。
采用Stm32的ODR寄存器对Stm32微控制器的端口进行写入。它是一个16位寄存器。为了访问这个寄存器,下面是HAL库代码的语法。因为我在项目中使用stm32的端口- a,所以语法变得
GPIOA - > ODR = 0 x003f;/ /显示0
上面的代码写了一个16位的字到stm32微控制器的Port-A。16位字是0x003F。是一个16位的十六进制数。如果我们将其转换为等价的二进制文件,该命令将转换为0000 0000 0011 1111。每个二进制位被写入stm32的端口a的单独的引脚。最小的位从右到左的最高位。我们只关心stm32的前7个引脚,因为我们在项目中使用它们。因此,0111111被写入stm32微控制器a端口的前7位。最高的端口-a引脚(6)将被写入0,而所有其他端口保持高值。端口a的引脚6连接7段显示引脚g。 What happens is when this word is written to port-a of stm32. The seven segment pin-g will turn off and all the other becomes on, making 0 on seven segment display. I hope this makes sense to you. All the other characters are displayed in the same form. Between each character a delay of 1 second is inserted to clearly see the character/number on seven segment display.
未来的工作
你可以用stm32的单个端口接口一系列7段显示器,并用stm32的单个引脚控制它们,以显示从0到100的数字。你可以做一个有七段显示器的时钟。特殊导条可用于制作特殊字符、图表等。
未来的工作
你可以用stm32的单个端口接口一系列7段显示器,并用stm32的单个引脚控制它们,以显示从0到100的数字。你可以做一个有七段显示器的时钟。特殊导条可用于制作特殊字符、图表等。
了下:188金宝搏提款有问题吗,188appcob