一、新建工程:
1.Keil中新建工程,选择开发板型号。
2.工程文件夹建立Start,Library等分类,复制模版工程中的文件到工程文件夹中。
3.在Keil中添加分组,添加文件。
4.工程选项设置:
c/c++中:Include Paths内声明所有包含头文件的分类文件夹(Start,Library等)
Define内定义USE_STDPERIPH_DRIVER
Debug中:下拉列表选择对应调试器
Settings - Flash Download里选择Reset and Run。
5.在main.c文件中编程即可。
#include "stm32f10x.h" // Device header
int main
{
return 0;
}
二、GPIO:
1.GPIO介绍:
通用输入输出口。可配置为8种模式。引脚电平 0 - 3.3V。
2.系统结构:
在stm32中,挂载在APB2总线上。
名称按照GPIOA,GPIOB等命名。
每个GPIO有16个引脚,编号0-15,GPIOA_0一般称作PA0。
3.几种模式介绍:
(1)上拉/下拉输入:不接输入时默认输入为高/低电平。
(2)模拟输入:GPIO无效,引脚直接接入ADC模块(即输入为模拟信号)
(3)开漏输出:输出时高电平为高阻态,低电平为VSS。
(4)推挽输出:输出时高电平为VDD,低电平为VSS。
4.函数介绍:
(1)将GPIO使能:
//介绍:APB2总线时钟使能函数
//参数1:需要时钟信号的外设,具体名称可右键函数找到定义查看
//(此次为RCC_APB2Periph_GPIOA,因为要点亮PA0口的LED)
//参数2:ENABLE or DISABLE
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
(2)GPIO设置参数结构体:
//介绍:GPIO设置参数结构体
//结构体成员:Mode设置模式,Pin目标引脚,Speed设置输出速度
//Mode值:GPIO_Mode_AIN模拟输入,GPIO_Mode_IPD下拉输入,GPIO_Mode_IPU上拉输入,
// GPIO_Mode_Out_OD开漏输出,GPIO_Mode_Out_PP推挽输出
//Pin值:GPIO_Pin_0到GPIO_Pin_15,GPIO_Pin_All(激活多个端口,用按位或)
//Speed值:GPIO_Speed_50MHz(选这个就行)
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
(3)告诉GPIO参数:
//介绍:GPIO初始化函数
//参数1:要设置的GPIO
//参数2:一个结构体,包含GPIO的设置参数
GPIO_Init(GPIOA, &GPIO_InitStructure);
(4)GPIO写入函数:
//介绍:设置GPIO引脚的值,set为置1,reset为置0
//参数:GPIOx,目标引脚
GPIO_SetBits(GPIOA,GPIO_Pin_13);
GPIO_ResetBits(GPIOA,GPIO_Pin_13);
//参数:GPIOx,目标引脚,Bit_RESET或Bit_SET
//参数:GPIOx,对应值,低位为PA0,高位为PA15
GPIO_WriteBit(GPIOA,GPIO_Pin_13,Bit_SET);
GPIO_Write(GPIOA,0x0001);
三、LED灯闪烁:
1.连线图:
2.组合代码:
#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;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
while (1)
{
GPIO_ResetBits(GPIOA, GPIO_Pin_0);
Delay_ms(500);
GPIO_SetBits(GPIOA, GPIO_Pin_0);
Delay_ms(500);
}
}
四、蜂鸣器:
注意:A15,B3,B4为调试端口,不要使用。
1.蜂鸣器介绍:
低电平响,高电平不响。代码原理同上。
2.接线图: