打印

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

[复制链接]
2814|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝