这是一个基础问题,却折腾了我,大家来点石成金

[复制链接]
 楼主| alpb_001 发表于 2011-6-5 01:21 | 显示全部楼层 |阅读模式
我用ALIENTEK的STM32板子,做最基础的实验,流水灯闪烁,例程没问题。其中
<lcd.h>   
#include "sys.h"
#define LED0 PAout(8)// PA8
#define LED1 PDout(2)// PD2   
<lcd.c>
void LED_Init(void);//初始化
#include <stm32f10x_lib.h>      
#include "led.h"

void LED_Init(void)
{
    RCC->APB2ENR|=1<<2;    //使能PORTA时钟            
    RCC->APB2ENR|=1<<5;    //使能PORTD时钟   
            
    GPIOA->CRH&=0XFFFFFFF0;
    GPIOA->CRH|=0X00000003;//PA8 推挽输出        
    GPIOA->ODR|=1<<8;      //PA8 输出高
                                             
    GPIOD->CRL&=0XFFFFF0FF;
    GPIOD->CRL|=0X00000300;//PD.2推挽输出
    GPIOD->ODR|=1<<2;      //PD.2输出高
}
int main(void)
{                  
    Stm32_Clock_Init(9); //系统时钟设置
    delay_init(72);         //延时初始化
    LED_Init();               //初始化与LED连接的硬件接口
    while(1)
    {
        LED0=0;
        LED1=1;
        delay_ms(300);
        LED0=1;
        LED1=0;
        delay_ms(300);
    }     
}

但是,我做一个最基础的修改,我外接发光二极管,
PAout(8)改成PAout14,输出设置改为
GPIOA->CRH&=0XF0FFFFFF;
GPIOA->CRH|=0X03000000;//PA14 推挽输出        
GPIOA->ODR|=1<<14;      //PA14 输出高
其他没变,结果引出的发光二极管不亮,大家看何故啊……

}
lixiaoxu2meng 发表于 2011-6-7 08:58 | 显示全部楼层
你的二极管电路是这么连接的吗   
发光二极管阴极接单片机引脚 然后阳极连接510欧的限流电阻 然后连接3.3V的电源
610095871 发表于 2011-6-7 09:14 | 显示全部楼层
如果要是送高电平led亮的话,你就检测下电路,如果要是低电平亮的话,你就把GPIOA->ODR|=1<<14;      //PA14 输出高
改成输出低试试,检测下你的led是不是好的,看下电路连接,如果还不行,直接把那个led接在GPIOA的第8教试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部