2.STM32模板和简单应用

tips:STM32的开发方式

基于寄存器的方式,直接对寄存器进行操作

基于标准库的方式(ST官方封装库函数)

基于HAL库的方式(图形化界面配置)

1.创建工程模板(基于寄存器开发)

创建工程模板需要复制一些固件库中的文件

1.固件库的文件结构

Libraries:库函数文件夹

Project:官方提供的工程示例和模板

Utilities:官方提供的小电路板的测试程序

Release_Notes.html:发布文档

stm32f10x_stdperiph_lib_um.chm:使用手册

2.新建工程

1.1Project——New uVision Project

1.2选择保存路径,工程创建后会有一系列文件和文件夹,应存放在子文件夹内

1.3根据芯片选择对应的型号

3.配置工程

1.启动文件和主函数

1.配置工程文件夹

在工程文件夹中新建两个子文件夹,分别为Start、User

Start中存放的文件目录如图所示:

启动文件的选择

如上图所示,文件夹中包含多个启动文件,根据开发板型号进行选择

本开发板选择后缀为MD的启动文件

User里存放自己编写的程序,如main.c

注意最后一行为空行,否则会有一个warning

2.文件在固件库中的位置

start_xxxx:

D:\QIMABlue\Program\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

stm32f10x.h&system_stm32f10x:

D:\QIMABlue\Program\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

core_cm3:

D:\QIMABlue\Program\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

2.软件配置

1.在工程中创建两个group,并添加对应文件

2.在option for target中添加头文件路径

3.选择编译器

通常情况下需要对5.06版本进行额外安装

《 Arm Compiler 5.06 》__ARM编译器官网下载、安装和使用说明(小白也能懂)-CSDN博客

配置结束后,使用build进行编译

如果能正常编译,没有报错,则工程配置成功。

3.软件个性化设置

1.字体大小调整

2.编码格式以及Tab缩进调整

上述模板即可实现基于寄存器进行开发

2.【实验】基于寄存器的点灯

目的:点亮板子上的一个小灯,端口为PC13

 1.硬件连接

STLINK与STM32的硬件连接

2.软件配置

勾选Reset and Run,作用为当程序下载进去后,立即运行程序

下载程序,进行验证

3.LED灯相关寄存器

我们对PC13进行配置,使得LED灯点亮

1.配置RCC时钟,使能GPIOC的时钟

GPIOC挂载在APB2总线上,所以需要配置RCC_APB2ENR寄存器

IOPCEN:IO端口C时钟使能,置1打开GPIOC的时钟

2.GPIOC13端口模式配置

3.配置端口输出

控制端口的输出

4.实验代码+现象

#include "stm32f10x.h"
#include <stdio.h>


int main(void)
{
	RCC->APB2ENR=0x00000010;
    GPIOC->CRH=0x00300000;
    GPIOC->ODR=0x00002000;//端口输出1,灯灭
    GPIOC->ODR=0x00000000;//端口输出0,灯亮
	while (1)
	{
	  
	}
}

3.模板新增库函数(基于标准库开发)

调用STM32的标准库函数进行开发更加便捷,需要对工程进行额外的配置

在工程基础上添加库文件:分为Library文件和配置文件(stm32f10x_conf.h、stm32f10x_it)

1.软件工程结构

2.本地文件结构

更新Library和User文件夹

3.新增文件在固件库中的位置

Library(库函数文件):包含了STM32芯片以及外设的库函数文件

D:\QIMABlue\Program\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver

配置文件:

D:\QIMABlue\Program\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

4.软件配置

1.包含头文件

包含库函数文件和配置文件中的头文件,即包含Library、User

2.定义define

只有进行定义,才可以包含配置文件

USE_STDPERIPH_DRIVER

之前看的另一种构建工程模板的文章,有兴趣可以看一下

参考:用keil5新建STM32工程(超详细的图解操作)_keil5新建stm32工程步骤-CSDN博客

5.工程架构

4.【实验】基于标准库点灯

1.配置时钟

2.创建结构体对象:端口模式、端口号、端口速度

3.端口模式为推挽输出,端口号为13,速度为13MHz,配置好后然后初始化

4.设置端口状态

#include "stm32f10x.h"
#include <stdio.h>


int main(void)
{
    //配置时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    //配置端口模式
	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;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
    //端口赋值
	GPIO_SetBits(GPIOC, GPIO_Pin_13);
//	GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	while (1)
	{
	  
	}
}

通过跳转和搜索的方式,对函数的功能和输入的参数进行了解

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值