1.新建工程模板–基于寄存器
1.1与基于固件库创建模板类似
1.2 新建Test文件夹
1.2.1 OBJ文件夹主要用来存放程序生成的hex文件
1.2.2 SYSTEM文件夹主要用来存放头文件
1.2.3USER 文件夹主要存放启动文件: startup_stm32f40_41xxx.s及源码
1.3配置工程属性(使用 Keil uVision5)
1.3.1 添加启动文件
新建工程后,寻找启动文件添加到USER文件夹中。
1.3.2点击“魔术棒”按钮,在Output选项卡中勾选Create hex file,使得程序生成的hex文件保存到OBJ文件夹中。
1.3.3将系统文件添加到工程的SYSTEM文件夹中
1.3.4 在USER文件夹中写入程序源码(以LED灯实验为例)
eg:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
int main(void)
{
u8 x=0;
u8 lcd_id[12]; //´æ·ÅLCD ID×Ö·û´®
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃϵͳÖжÏÓÅÏȼ¶·Ö×é2
delay_init(168); //³õʼ»¯ÑÓʱº¯Êý
uart_init(115200); //³õʼ»¯´®¿Ú²¨ÌØÂÊΪ115200
LED_Init(); //³õʼ»¯LED
LCD_Init(); //³õʼ»¯LCD FSMC½Ó¿Ú
POINT_COLOR=RED; //»±ÊÑÕÉ«£ººìÉ«
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//½«LCD ID´òÓ¡µ½lcd_idÊý×é¡£
while(1)
{
switch(x)
{
case 0:LCD_Clear(WHITE);break;
case 1:LCD_Clear(BLACK);break;
case 2:LCD_Clear(BLUE);break;
case 3:LCD_Clear(RED);break;
case 4:LCD_Clear(MAGENTA);break;
case 5:LCD_Clear(GREEN);break;
case 6:LCD_Clear(CYAN);break;
case 7:LCD_Clear(YELLOW);break;
case 8:LCD_Clear(BRRED);break;
case 9:LCD_Clear(GRAY);break;
case 10:LCD_Clear(LGRAY);break;
case 11:LCD_Clear(BROWN);break;
}
POINT_COLOR=RED;
LCD_ShowString(30,40,210,24,24,"Explorer STM32F4");
LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,lcd_id); //ÏÔʾLCD ID
LCD_ShowString(30,130,200,12,12,"2014/5/4");
x++;
if(x==12)x=0;
LED0=!LED0;
delay_ms(1000);
}
}
1.3.5 添加头文件
1.3.6设置define和路径
1.3.7 基本设置完毕,可点击“load”按钮,下载到开发板执行
1.4 运行结果
2.寄存器
寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。