跑马灯的LED灯

2019-07-21 00:39发布

在LED灯的实验中,我的led.c的程序如下:
==================================
#include "stm32f4xx.h"  //在SYSTEM目录下可以找到
#include "sys.h"

void LED_Init(void){

    RCC->AHB1ENR = 1<<5;  //使能GPIO端口的F时钟
    GPIO_Set(GPIOF,PIN9|PIN10,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_25M,GPIO_PUPD_PU);
    //PFout(9) = 1;
    //PFout(10) = 1;

}
==================================

然后test.c的主函数如下:
=================================
#include "sys.h"
#include "delay.h"
#include "led.h"

int main(void){

    Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz  //思考一下为啥要设置整个时钟(到时可参考时钟那章节);
    delay_init(168); //初始化延时函数
    LED_Init();

    while(1){
        Fout(9) = 0;
        delay_ms(500);
        Fout(9) = 1;
        delay_ms(500);
    }

}
=================================


在我的led.c中,我设置PF9和PF10为上拉推挽输出,
那说明其默认情况下就是高电平,为何,我若不在LED_Init()函数里边
不强制将PF10置1,PF10就一直亮呢?难道用默认的上拉就
不能使其不亮么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
烟酒不沾
1楼-- · 2019-07-21 03:38
上拉电流太小了,所以不亮,你置1时,输出电流是推挽输出的,电流足够点亮LED,
正点原子
2楼-- · 2019-07-21 09:06
回复【3楼】willsmith:
---------------------------------
就是因为电流太弱了。
willsmith
3楼-- · 2019-07-21 14:47
 精彩回答 2  元偷偷看……
willsmith
4楼-- · 2019-07-21 14:54
回复【4楼】正点原子:
---------------------------------
..........

一周热门 更多>