STM32F103入门 | 7.点亮灯小实验

STM32F103入门 | 7.点亮灯小实验

7.1 前言

为方便实验的进行,在实验进行之前说明一下Keil的一些设置

打开Configuration-Editor

STM32F103入门 | 7.点亮灯小实验

 

其中Encoding选择Chinese GB2312,Tab size选择4

STM32F103入门 | 7.点亮灯小实验

 

Configuration-User Keywords中可以自己添加用户关键字,这里先添加u8,u16,u32

STM32F103入门 | 7.点亮灯小实验

 

Configuration-Text Completion-Show Code Completion List for中选中Struct/Class Members,Function Parameters,Symbols after 3 Characters

Dynamic Syntax Checking选中Enable

STM32F103入门 | 7.点亮灯小实验

 

打开Options for Target-Target

STM32F103入门 | 7.点亮灯小实验

 

把Target中的Xtal选项改为8.0MHz

STM32F103入门 | 7.点亮灯小实验

 

Debug选择ST-Link Debugger,再点击Settings,将Trace中的改为8MHz

STM32F103入门 | 7.点亮灯小实验

STM32F103入门 | 7.点亮灯小实验

 

设置完成。

 

7.2 STM32点亮一个小灯需要四步:

1.声明GPIO_InitTypeDef结构体

2.使能 APB2 总线上的 GPIOC时钟

3.赋值GPIO_InitTypeDef结构体的三个成员,通过GPIO_Init函数初始化GPIO的某一个端口

4.GPIO_SetBits和GPIO_ResetBits两个函数拉高或者拉低I/O口实现小灯的亮灭

 

7.3 输入如下代码:

#include "stm32f10x.h"

void Delay(u32 count)
{
    u32 i=0;
    for(;i<count;i++);
}

#define LED_ON GPIO_SetBits(GPIOC,GPIO_Pin_13)
#define LED_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_13)

int main(void)
{
   GPIO_InitTypeDef GPIO_InitStructure;       //定义GPIO_InitTypeDe结构体

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOC时钟

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;     
   GPIO_Init(GPIOC, &GPIO_InitStructure);     //初始化GPIO

   while(1)
    {
        LED_ON;
        Delay(900000);
        LED_OFF;
        Delay(900000);
    }
}

 

#include "stm32f10x.h"

void Delay(u32 count)
{
    u32 i=0;
    for(;i<count;i++);
}

#define LED_ON GPIO_SetBits(GPIOC,GPIO_Pin_13)
#define LED_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_13)

int main(void)
{
   GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO_InitTypeDe结构体

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOC时钟    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;    GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化GPIO    while(1)    {        LED_ON;        Delay(900000);        LED_OFF;        Delay(900000);    }
}

 

 

点击Rebuild,以检查是否存在错误或警告

STM32F103入门 | 7.点亮灯小实验

把工程下载到系统板中。

STM32F103入门 | 7.点亮灯小实验

小灯闪烁,实验完成。

 

欢迎关注微信公众号【OpenSSR】

STM32F103入门 | 7.点亮灯小实验