一、keil的创建
随后点击新建(Ctrl+n),接着保存到所自己项目工程文件。.c .h都是这样操作
二、Proteus的简单使用
左上角框框内可以拖动
三、点亮LED灯代码
led.c
#include "stm32f10x.h" // Device headervoid led_init(void)
{GPIO_InitTypeDef GPIO_InitStructure;//GPIO_InitTypeDef GPIO_InitStructure2;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIOA时钟使能// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//GPIOB时钟使能GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//初始化的引脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//输出速度//GPIO_InitStructure2.GPIO_Pin=GPIO_Pin_0;//初始化的引脚//GPIO_InitStructure2.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出// GPIO_InitStructure2.GPIO_Speed=GPIO_Speed_50MHz;//输出速度GPIO_Init(GPIOA,&GPIO_InitStructure);//pA5初始化// GPIO_Init(GPIOB,&GPIO_InitStructure2);//pB0初始化
}void led_on(void)
{GPIO_ResetBits(GPIOA,GPIO_Pin_5);//PA输出0// GPIO_ResetBits(GPIOB,GPIO_Pin_0);//PB输出0
}void led_off(void)
{GPIO_SetBits(GPIOA,GPIO_Pin_5);//PA输出1// GPIO_SetBits(GPIOB,GPIO_Pin_0);//PB输出1
}led.h
#ifndef LED_H
#define LED_Hvoid led_init(void);
void led_on(void);
void led_off(void);
void mydelay(int x);#endifmain.c
#include "led.h"
#include "stm32f10x.h" // Device header
#include "7seg.h"void mydelay(int x)
{int i=0;while(x--)for(i=500;i>=0;i--);
}int main()
{led_init();seg7_init();seg7_desplay(0xC0);while(1){led_on();mydelay(500);led_off();mydelay(500);/* seg7_desplay(0xC0);mydelay(1000);seg7_desplay(0xF9);mydelay(1000);seg7_desplay(0xA4);mydelay(1000);seg7_desplay(0xB0);mydelay(1000);seg7_desplay(0x99);mydelay(1000);seg7_desplay(0x92);mydelay(1000);seg7_desplay(0x82);mydelay(1000);seg7_desplay(0xF8);mydelay(1000);seg7_desplay(0x80);mydelay(1000);seg7_desplay(0x90);mydelay(1000);*/}//return 0;
}
这里需要注意main.c里面的延时函数需要加到led.h里面;编译器的版本需要改成5。否则在二进制程序进行方针时,LED灯可能不能够有效闪烁。
7seg.c