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

7.1 前言

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

打开Configuration-Editor

 

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

 

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

 

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

Dynamic Syntax Checking选中Enable

 

打开Options for Target-Target

 

把Target中的Xtal选项改为8.0MHz

 

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

 

设置完成。

 

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_ResetBits(GPIOC,GPIO_Pin_13)
#define LED_OFF GPIO_SetBits(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;        //配置PC13
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //通用推挽输出
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; //配置GPIO速率   
   GPIO_Init(GPIOC, &GPIO_InitStructure);            //初始化GPIO

   while(1)
    {
        LED_ON;
        Delay(900000);
        LED_OFF;
        Delay(900000);
        /* 下面的2句和上面的4句相同效果 */
        //GPIOC->ODR ^= 0x0001<<13;
        //Delay(900000);
    }
}

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

把工程下载到系统板中。

小灯闪烁,实验完成。

 

欢迎关注微信公众号『OpenSSR』

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值