1.面包板
金属爪,跳线连接
2.新建工程
- project
- new project
- 新建start文件夹,放置启动文件
- 新建Libtrary文件夹,放置标准外设文件
- 新建User文件夹
- 打开keil软件
- 添加三个组以及相应的c和h文件
- 配置好工程文件
3.工程的编写
编译文件
在main.c文件中进行编写--编写头文件
int main(void)
{
while(1)
{
}
}
4.LED灯点亮步骤(使用RCC和GIPO两个外设)
- 使用RCC开启GIPO的时钟
- 使用GIPO_Init函数初始化GIPO
- 使用输入输出函数控制GIPO口
rcc.h文件中可以在外设文件(Library)看RCC相应的定义;常用的库函数包括RCC AHB外设时钟控制、RCC APB2外设时钟控制、RCC APB1外设时钟控制
函数的使用及定义可以直接通过右键选择相应的跳转
GPIO需要的函数:
- GPIO_DeInit,调用这个函数,所指定的GPIO外设会被复位
- GPIO_AFIODeInit,可以复位AFIO外设
- GPIO_Init,用结构体的参数来初始化GPIO口,先定义结构体变量,给结构体赋值,最后调用这个函数
- GPIO_StrucInit函数,给结构体变量赋一个默认值
- GPIO的读取函数、写入函数(共8个)
5.LED灯闪烁代码的编写
#include "stm32f10x.h" // Device header
#include "Delay.h" //使用延时函数
int main(void)
{
//开启时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//定义变量
GPIO_InitTypeDef GPIO_InitStructure;
//推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//选择引脚/0
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
//输出速率
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
//把指定端口设置为高电平
//GPIO_ResetBits(GPIOA,GPIO_Pin_0);
//把指定端口设置为低电平
//GPIO_SetBits(GPIOA,GPIO_Pin_0);
//
//GPIO_Write(GPIOA,GPIO_Pin_0,Bit_RESET);
while(1)
{
//第一种方法
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
Delay_ms(200);
GPIO_SetBits(GPIOA,GPIO_Pin_0);
Delay_ms(200);
//第二种方法
//点亮LED
GPIO_WriteBit(GPIOA,GPIO_Pin_0, Bit_RESET);
Delay_ms(500);
//熄灭LED
GPIO_WriteBit(GPIOA,GPIO_Pin_0, Bit_RESET);
Delay_ms(500);
//第三种方法,使用了强制类型转换
//点亮LED
GPIO_WriteBit(GPIOA,GPIO_Pin_0, (BitAction)0);
Delay_ms(500);
//熄灭LED
GPIO_WriteBit(GPIOA,GPIO_Pin_0, (BitAction)1);
Delay_ms(500);
}
}