STM32点灯程序入门指南(基础篇)

一、寄存器赋值点灯

1、通过参考手册找到RCC时钟使能APB2端口  使能IOPC端口时钟

配置为:0x00000010

 2、配置PC13端口模式

 CNF 配置为通用推挽输出模式

MODE 配置为输出模式 最大速度50MHz   

所以配置为: 0x00300000

3、配置端口输出寄存器

 PC13口给0亮  1 灭   所以给0x00000000亮   0x00002000灭

程序如下:

#include "stm32f10x.h"                  // Device header

int main(void)
{
    RCC->APB2ENR = 0x00000010;
    GPIOC->CRH = 0x00300000;
    GPIOC->ODR = 0X00000000;
    
    while(1)
    {
    
    } 
}

二、库函数点灯

1)点灯前配置函数库

1、库函数源文件 和  头文件  copy到工程文件目录下,misc是内核库函数,其他为内核外的外设库函数

 

 2、在Keil中创建Library组   并添加Library文件夹下的所有文件进去,但是目前的所有文件还没法使用,需要再添加一个文件

 3、打开固件库

 conf文件用来配置库函数和头文件关系的,另外还有一个参数检查的函数定义,是所有库函数都需要的。

it文件里面存放的是中断(interrupt)函数

三个文件复制粘贴到工程的user目录下

最后需要创建一个宏定义,打开头文件

在里面找到条件编译这一项

 意思是如果定义:USE_STDPERIPH_DRIVER(标准外设驱动) 使用这个字符串

则 conf头文件生效

复制

USE_STDPERIPH_DRIVER

打开 并粘贴

 并 添加头文件目录

修改组排序

到此库函数配置完成

2)库函数点灯

1、配置APB2外设时钟状态;通过函数库的rcc控制函数,右键查看其定义可以知道,函数的形参可以如下

2、配置端口模式,调用GPIO_Init函数,此函数用结构体函数GPIO_InitTypeDef 配置。

右键查看该结构体的所包含的参数

 3、右键相关结构体内变量名,ctrl+f 查找当前变量可设置的参数枚举函数

 并设置配置端口输出模式的结构体相关的三个参数。

4、配置端口输出数据  用  GPIO_SetBits(GPIOC, GPIO_Pin_13);   这表示端口输出1  , ResetBits函数则为输出 0 。

到此,恭喜点亮STM32的PC13端口led灯,成功的开始。加油!

补充重点知识点:

1、新建工程的架构

1、STM32上电时或按下复位键,程序进入复位中断函数,复位中断函数主要调用sys和main函数。main函数后一定是一个死循环,主函数不结束。

2、systeminit函数作用是设置微控制器的启动,初始化嵌入式闪存接口,锁相环,更新系统内核的时钟变量,所以在main函数之前单片机已经执行了一系列操作。

3、启动文件还定义了其他中断,这些中断达到条件自动执行。

4、ST公司的提供的库函数和库函数配置,conf文件用来配置头文件包含关系,库函数通过直接调用函数来间接配置寄存器,这种库函数开发方式更加简洁,高效。

5、外设寄存器描述、内核寄存器描述里面描述的都是寄存器和寄存器每一位的名字、地址信息。

物联沃分享整理
物联沃-IOTWORD物联网 » STM32点灯程序入门指南(基础篇)

发表评论