7. 点亮数码管¶

7. 点亮数码管¶

第一步,点亮LED

这一步在上一节调试LED时已经学过,代码如下:

/*

调用库函数RCC_APB2PeriphClockCmd

传入两个参数RCC_APB2Periph_GPIOD,ENABLE

RCC_APB2Periph_GPIOD是一个宏定义,

ENABLE是一个新定义的枚举类型FunctionalState

*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);

GPIO_ResetBits(GPIOE, GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

/* Configure PD0 and PD2 in output pushpull mode */

/* Configure PD0 and PD2 in output pushpull mode */

/*赋值给结构体变量GPIO_InitStructure的成员,

注意,GPIO_InitStructure是实体,所以用点,

如果是一个结构体指针,就用->

GPIO_InitStructure->GPIO_Pin

*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOE, &GPIO_InitStructure);

GPIO_SetBits(GPIOE, GPIO_Pin_7);

GPIO_SetBits(GPIOE, GPIO_Pin_8);

GPIO_SetBits(GPIOE, GPIO_Pin_9);

GPIO_SetBits(GPIOE, GPIO_Pin_10);

GPIO_SetBits(GPIOE, GPIO_Pin_11);

GPIO_SetBits(GPIOE, GPIO_Pin_12);

GPIO_SetBits(GPIOE, GPIO_Pin_13);

GPIO_SetBits(GPIOE, GPIO_Pin_14);

几个关键点:

记得打开IO口时钟。

先设置状态,再配置IO口为输出。防止IO口配置完后LED闪一下。

(特别是在控制电机时,一定要配置为确定状态后再将GPIO外设连接到IO口)

然后调用GPIO_SetBits控制IO口。

用调试器一个一个LED数码管轮流测试,看是不是能点亮、熄灭。

为什么要一个一个调试?因为这样测试可以要测试出硬件上IO口短路的情况。

如果8个IO口一起控制亮灭,就无法知道IO口有没有短路。

相关推荐

了解消息队列的消息分发策略与路由规则 365bet取款要多久到账

了解消息队列的消息分发策略与路由规则

📅 08-07 👁️ 1530
帮助中心 365bet取款要多久到账

帮助中心

📅 11-06 👁️ 2410
天猫国际美妆入驻流程是什么?天猫国际美妆入驻费用是多少 365手机版游戏中心官网

天猫国际美妆入驻流程是什么?天猫国际美妆入驻费用是多少

📅 01-06 👁️ 3703
AC米兰队主场叫什么 365手机版游戏中心官网

AC米兰队主场叫什么

📅 10-05 👁️ 5805