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 不太明白,等下研究下。
大家学习中,还是要多看看寄存器,寄存器多没有关系,多看几次,关系理顺了就好了。
呵呵,程序修改成功了,不代理你就会了。再继续研究了。