STM32学习第一个程序,LED灯

板子很早自己就焊接好了,一直没有动他。

现在看STM32挺热的,也想学习下。

 

淘宝上看到一个卖STM32开发板的,正点原子,他为自己卖的STM32学习板写了一个400多页的文档。

 

呵呵,我这个菜鸟,也正是看他的文档,一步一步学习的。

也给他打一个广告吧。他有一个自己的论坛http://www.openedv.com

 

希望想学习STM32的可以去那里看看。他的文档确实不错。

文档下载地址:http://www.openedv.com/posts/list/3.htm

 

废话说完了,来正经的了。

----------------------------

我的板子和他的不一样,所以我的程序都是经过他的程序修改的。详细说明,他的文档说的也经较清楚了,我就主要说说我在修改程序中,碰到的一些地方。

Alientek SMT32开发板   跑马灯实验http://www.openedv.com/posts/list/18.htm

 

这里有程序源文件,可以自行下载。

原程序中,LED接在PA8,PD2中。我的是接在PA4,PA5上。

所以这里我只要修改led.c,led.h文件。

修改会的led.c

#include <stm32f10x_lib.h>      
#include "led.h"
//Mini STM32开发板
//LED驱动代码            
//正点原子@ALIENTEK
//2010/5/27
//Modify:leo
//date:2010-12-31
//cepark STM32  
// V1.0
//初始化PA8和PD2为输出口.并使能这两个口的时钟           
//LED IO初始化
void LED_Init(void)
{
    RCC->APB2ENR|=1<<2;    //使能PORTA时钟           
//    RCC->APB2ENR|=1<<5;    //使能PORTD时钟   
    GPIOA->CRL&=0XFF00FFFF;
    GPIOA->CRL|=0X00330000;//PA4,PA5 推挽输出       
    GPIOA->ODR|=(1<<4)|(1<<5);      //PA4 输出高

}

这里我修改了GPIOA->CRL&=0xff00ffff;

这里说下,STM32的GPIO口可以配置成8种模式。主要控制是CRL,CRH。详细的可以参看官方文档。

修改后的LED.H文档

#ifndef __LED_H
#define __LED_H    
#include "sys.h"
//Mini STM32开发板
//LED驱动代码            
//正点原子@ALIENTEK
//2010/5/27
//Modify:hnrain
//date:2010-12-31
//cepark STM32  
//LED端口定义
#define LED0 PAout(4)// PA4
#define LED1 PAout(5)// PA5   

void LED_Init(void);//初始化                            
#endif

 

可以这样定义:#define LED0 PAout(4)// PA4  不太明白,等下研究下。

大家学习中,还是要多看看寄存器,寄存器多没有关系,多看几次,关系理顺了就好了。

 

呵呵,程序修改成功了,不代理你就会了。再继续研究了。

posted @ 2010-12-31 20:55  hnrainll  阅读(5420)  评论(0编辑  收藏  举报