自学第二节

一、给工程添加必要的文件

1.选择好对应的STM32F103C8,选择目录为E:\江协科技自学\STM32Project\2-1 STM32工程模版。工程命名为Project。

①keil生成如图界面
在这里插入图片描述
②该目录下生成的文件有
在这里插入图片描述
观察到该工程的文件夹里其实什么也没有,是空的。
在这里插入图片描述
所以我们需要给添加给该工程一些必要的启动文件(startup文件)

2.给工程添加启动文件(startup文件)

E:\江协科技资料\STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
如图

在这里插入图片描述

回到E盘中建的工程文件夹目录
在这里插入图片描述

在这里插入图片描述

3.添加外设寄存器描述文件和时钟配置文件(外围文件)

配置好start文件,打开E:\江协科技资料\STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

在这里插入图片描述
start文件如下
在这里插入图片描述

4.还需要添加内核寄存器描述文件(内核文件)

由于STM32是内核和内核外围的设备组成的,内核的寄存器和外围设备的描述文件不是在一起的。所以我们还需要添加内核寄存器的描述文件。
打开
E:\江协科技资料\STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
在这里插入图片描述
start文件如下
在这里插入图片描述

5.到此为止工程必要文件就配置完了。

6.总结一下

在这里插入图片描述

二、对寄存器的操作方式(不常用,了解即可)

1. 在keil的工程中添加必要文件(即start文件夹中的部分文件)

回到keil
点击选中Source Group文件,再点击一下。(两次点击间隔时间较长)。将其重命名为Start

在这里插入图片描述
接着右键,选择添加已存在的文件到start。(该文件已在工程的同一目录下。已存在的文件是指在电脑上已存在的都可以添加。)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.给工程添加头文件

让keil软件找到.h文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.新建一个main()函数,检验工程是否可行。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将ST-LINK及芯片连接到电脑。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看下板子,有个灯已经不闪了。因为目前的程序啥都没有。
在这里插入图片描述

4.配置一下寄存器,点亮这个不亮的灯。

不断查手册,写代码,看不懂,且麻烦。
在这里插入图片描述
观察到小灯再次被点亮。
在这里插入图片描述
若将第七行代码改为

GPIOC->ODR =0x00002000;	

编译、写入后,那个灯又会熄灭。

5.总结一下

(1)先贴入通义千问的解释

在STM32微控制器中,这些代码行是用来配置和控制GPIO(General Purpose Input/Output)端口以实现特定功能的。下面分别解释每行代码的作用:

RCC->APB2ENR = 0x00000010;

RCC 是 STM32 的 Reset and Clock Control(复位与时钟控制)寄存器组的别名,它用于管理和配置系统时钟。
APB2ENR 是 APB2(Advanced Peripheral Bus 2)Peripheral Clock Enable Register(外设时钟使能寄存器)的一部分,这个寄存器用于控制APB2总线上连接的外设时钟是否使能。
将 APB2ENR 寄存器赋值为 0x00000010,通常意味着设置该寄存器的某一位(在这个例子中可能是第4位),使得连接到APB2总线上的某个外设(在这里是GPIOC)的时钟被使能。对于GPIOC,这一步是为了开启其内部电路的工作时钟,使其能够正常工作。
GPIOC->CRH = 0x00300000;

GPIOC 表示STM32中的GPIO端口C,CRH是GPIO端口配置高寄存器(Port Configuration Register High)。
通过写入 0x00300000 到 GPIOC->CRH,是在配置GPIO端口C的高四位引脚(PC10至PC15)的模式和速度。
具体到这里的数值,0x00300000 指定的是PC13引脚的配置,其中具体的位分配依赖于STM32的数据手册。这个值通常会设置该引脚为推挽输出模式,并且可能设定一个特定的速度级别(例如50MHz或其它速度等级,视具体型号而定)。
GPIOC->ODR = 0x00002000;

GPIOC->ODR ODR是GPIO端口C的数据输出寄存器(Output Data Register)。
写入 0x00002000 到此寄存器意味着设置GPIO端口C上的一些引脚的输出状态。
在二进制中,0x00002000 对应着 0b00000000000000000010000000000000,其中从右往左数第13位(即倒数第4位)为1,表示PC13引脚被设置为逻辑高电平(High)。这意味着如果PC13已经被配置为输出模式,则LED灯或者其他连接到该引脚的外部设备将会因为高电平而导通或关闭(具体取决于LED的正负极性以及电路设计)。如果LED是低电平触发点亮,则此操作会使LED熄灭;如果是高电平触发点亮,则LED会被点亮。

认识到:RCC是寄存器组;APB2ENR、CRH、ODR是寄存器。

(2)寄存器的操作方式
缺点:
①需要不断查手册,来了解每个寄存器的每一位具体是什么用。
②把PC13之外的位都配置成了0,这样会影响到其他端口的原有配置。若要做到只配置PC13而不影响其他位,那还需要&=和|=操作。

优点:
代码简洁。

三、对库函数(C语言函数)的操作方式(重点掌握)

1.先进行一和二中的1、2步骤

在这里插入图片描述

2.添加库函数

打开E:\江协科技资料\STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src
来到库函数的源文件夹
在这里插入图片描述
将库函数的源文件全部粘贴复制到Library文件夹中。
在这里插入图片描述
然后来到E:\江协科技资料\STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc,这是库函数的头文件夹。我们同样将它们全部粘贴复制到新建的Liabrary文件夹中。
在这里插入图片描述
在这里插入图片描述
回到keil
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这些添加进来的库函数还不能直接使用,还需要再添加一个文件。

3.为库函数添加配置文件和中断文件

打开E:\江协科技资料\STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
到此,基于库函数的工程就建好了。

4.写入代码

输入如下代码

int main()
{
	//开启使能时钟
	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);    //高电平,使PC13的小灯灭
	GPIO_ResetBits(GPIOC,GPIO_Pin_13);    //低电平,使PC13的小灯亮
	while(1)
	{
		
	}

}

编译、加载(下载)到芯片。
在这里插入图片描述
观察到PC13小灯亮暗情况如预期。

5.总结一下

(1)新建工程步骤

在这里插入图片描述

(2)keil三个文件夹中的内容

①Start文件夹

在这里插入图片描述
里面添加的是启动文件。

②Library文件夹

在这里插入图片描述
在这里插入图片描述
里面是库函数

③User文件夹

在这里插入图片描述
里面是main文件(写代码的文件)和为库函数准备的配置文件、中断文件。

④概览

在这里插入图片描述

在这里插入图片描述

6.注意

start文件添加到keil中的start文件中时,startup开头的启动文件根据芯片选择对应型号的一个,而其他5个外围和内核文件都要添加。

7.整理这三个文件夹到一个目录下

在路径:E:\江协科技资料\三大准备文件(main.c文件自己在keil手动添加)
在这里插入图片描述

四、不同型号的芯片启动文件的选择

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值