我用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 输出高
其他没变,结果引出的发光二极管不亮,大家看何故啊……
} |