访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机的GPIO

STM32单片机对共阳数码管输出计数的设计

导读:
关键字:
共阳数码管,STM32单片机,

用到GPIO口 PA0~PA11共12个引脚

先上原理图

因为是共阳所以12,9,8,6为电源输入,其他引脚均为接地,所以对于芯片来说12,9,8,6高位输出,其他设定为低位即可。

//设定下GPIO口

voidGPIO_Num_Init(void)

{

GPIO_InitTypeDefGPIO_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);

}

这里有个要注意的,根据原理图可以看出数码管一次只能输出一位数组,所以如果是多位的必须使用扫描的方式输出,缩短切换的间隔,就可以达到不闪烁的效果。

//输出封装

voidDisPlayNum(intn)

{

if(n《9999)

{inTI;

ints;

s=n;

i=0;

for(i=0;i《4;i++)

{

GPIO_ResetBits(GPIOA,GPIO_Pin_All);

switch(i)

{

case0:

GPIO_SetBits(GPIOA,GPIO_Pin_5);

break;

case1:

GPIO_SetBits(GPIOA,GPIO_Pin_7);

break;

case2:

GPIO_SetBits(GPIOA,GPIO_Pin_8);

break;

case3:

GPIO_SetBits(GPIOA,GPIO_Pin_11);

break;

}

switch(s%10)

{

case0:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_4);

break;

case1:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_9|GPIO_Pin_10);

break;

case2:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_9);

break;

case3:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0|GPIO_Pin_9);

break;

case4:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10);

break;

case5:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0|GPIO_Pin_6);

break;

case6:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_6);

break;

case7:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_9);

break;

case8:

GPIO_SetBits(GPIOA,GPIO_Pin_2);

break;

case9:

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_0);

break;

}

s=s/10;

delay_ms(1);

if(s==0)

break;

}

}

}

最后main的测试代码

intcount;

intTImeCheck;

intmain(void)

{

GPIO_Num_Init();

count=0;

TImeCheck=0;

while(1)

{

DisPlayNum(count);

TImeCheck++;

delay_ms(5);

if (TimeCheck 》 100){ //每500毫秒+1

来源:工程师周亮   作者:lhl545545  2018/12/30 10:00:00
栏目: [ STM32单片机的GPIO]

相关阅读

STM32单片机的GPIO模式解析

stm32单片机GPIO端口的特点及应用解析

一文看懂stm32的引脚的两种用途:GPIO和AFIO

如何将STM32单片机的JTAG口作为GPIO使用

如何将STM32单片机的PA15设置为上拉输入模式

STM32单片机的八种IO口模式解析

STM32学习笔记1 IO口学习

STM32单片机的上拉电阻配置为上拉输入模式的方法

STM32单片机对共阳数码管输出计数的设计

stm32的IO模式具体意义

基于STM32单片机流水灯控制中的GPIO_Init()函数解析

STM32单片机GPIO寄存器的功能解析

STM32单片机GPIO口的工作模式解析

stm32 IO口模式的寄存器配置

基于单片机STM32 GPIO 基本简单操作函数教程

关于STM32中的位带(bit-band)操作说明

STM32单片机的复用端口初始化的步骤及方法

STM32单片机的重映射与地址映射的使用方法及步骤

基于STM32单片机对跑马灯的控制

基于STM32的八种GPIO输入输出模式解析