首页

如何用Keil uVision编程STM32F103C8T6 ?

在本教程中,我将向您展示如何使用Keil uVision和STM32CubeMX代码生成器软件编程STM32F103C8T6。您将学习如何安装软件(Keil和STM32CubeMX),根据我们的要求配置软件,并使用ST-Link调试器和程序员上传代码。

简介

到目前为止,我已经使用STM32蓝丸板实现了几个基于STM3F103C8T6单片机的项目。在所有这些项目中,我都使用Arduino IDE作为编写代码的工具,以及使用USB将代码上传到STM32UART转换器

使用Arduino IDE进行STM32项目非常容易,因为熟悉的Arduino术语也可以应用于STM32F103C8T6。这对于初学者来说是可以接受的,但如果你想认真学习强大的STM32 MCU的工作,那么这不是正确的方式。

正确的方法是远离Arduino的世界,进入一套更专业的工具,无论是软件还是硬件。说到软件,我建议你使用ARM的Keil uVision IDE。这是一个很好的工具,用于使用基于ARM的mcu,如我们的STM32F103C8T6,它也支持适当的调试。

说到硬件,我们必须使用单独的硬件来编程(以及调试)STM32蓝色药丸板。这种硬件称为ST-LINK/V2。它是意法半导体公司开发的在线编程器和调试器。bob多特蒙德官方下载虽然原来的程序员将是昂贵的,有许多第三方程序员与原来的程序员兼容,成本非常低。

还有一个重要的软件叫做STM32CubeMX。这也是意法半导体提供的,用于为特定的STM32 MCU和特定的Ibob多特蒙德官方下载DE生成代码。

我将向您展示如何使用所有这些软件和硬件,以便您可以轻松地使用Keil uVision和STM32CubeMX编程STM32F103C8T6。

下载并安装STM32CubeMX

首先,让我们从STM32CubeMX代码生成器工具开始。下载此软件意法半导体官方网站。bob多特蒙德官方下载你必须登录ST才能下载软件。在编写本教程时,STM32CubeMX的版本是5.6.1。安装软件并打开。

STM32CubeMX安装和配置

在应用程序的右侧,单击安装或删除嵌入式软件包选项。将打开一个新窗口。

STM32CubeMX安装和配置

其中,选择STM32Cube MCU Packages选项并展开STM32F1选项卡(因为我们的MCU是STM32F103C8T6)。当时最新的软件包是1.8.0。选择最新版本并单击底部的Install Now选项。下载并安装MCU软件包。完成后,您可以关闭此窗口。

STM32CubeMX安装和配置

新的STM32CubeMX项目

现在,在主窗口中,选择ACCESS TO MCU SELECTOR选项。一个新的窗口将打开,让我们选择我们正在工作的MCU。

STM32CubeMX安装配置

在新窗口中,在MCU/MPU Selector选项卡下,搜索“STM32F103C8”。在右侧,我们的MCU将被列出。选择该MCU并在右上角单击Start Project选项。

STM32CubeMX安装配置

主项目窗口将打开,右边是STM32F103C8T6 MCU的引脚,左边是配置选项。在Pinout和Configuration选项卡中,展开System Core块并选择SYS选项。选择“调试为串行连线”。一旦你选择这个选项,你可以观察到引脚PA13和PA14是SWDIO和CK,即串行线调试数据和时钟引脚。

STM32CubeMX安装和配置

下一步是配置蓝色药丸板上的LED。我们从STM32蓝色药丸的原理图中知道,一个绿色LED连接到PC13。因此,放大到STM32F103C8T6 MCU的引脚视图,在PC13引脚上,左键单击并选择GPIO_Output选项。我们可以通过右键单击PC13引脚并选择Enter User label选项来更改该引脚的标签。我使用的标签是“LED_Green”。

STM32CubeMX安装和配置

这就完成了项目的基本设置。我们可以配置的其他东西是时钟,但STM32 MCU默认使用内部RC振荡器(在SystemInit函数中配置)。所以,我们可以让时钟配置保持原样。

在下一步中,选择Project Manager选项卡并为您的项目选择适当的位置和名称。在我的例子中,我将项目命名为“STM32_LED_Blinky”。此外,选择工具链/ IDE为MDK-ARM,这只是Keil uVision IDE。

STM32CubeMX安装配置

选择工具链后,单击Code Generator选项并选择仅复制必要的库文件选项。在此之后,您可以单击GENERATE CODE选项。该工具将基于所选IDE创建一个项目,并为该项目复制必要的库文件。生成代码后,可以关闭STM32CubeMX Software。

STM32CubeMX安装和配置

ST-LINK调试器和编程器简介

在继续之前,让我们简要地了解一下ST-LINK编程器和调试器。它的最新版本被称为ST-LINK/V2。ST-LINK/V2编程器的便宜版本如下图所示。

ST-LINK V2调试器和编程器

程序的一端是一个USB公连接器,你可以把它插到电脑上。程序的另一端由JTAG / Serial Wire Debugging (SWD)接口组成。该接口的引脚整齐地打印在调试器模块的顶部。

ST-LINK V2调试器和程序员Pinout

从这些引脚,我们必须使用3.3V, GND, SWDIO和SWCLK引脚。如果你还记得STM32F103C8T6蓝色药丸板的引脚,SWD接口整齐地放置在右侧。

STM32F103C8T6单板特性

下载并安装Keil uVision

现在,让我们继续为ARM安装Keil uVision MDK。使用链接,输入你的联络资料,下载MDK-ARM评估版本。当时,MDK-ARM版本5.29是最新的。

Keil MDK下载页面

安装MDK后,您不需要打开Keil uVision,因为我们将使用STM32CubeMX从前面生成的代码打开Keil uVision。

新Keil uVision项目

我们可以使用在STM32CubeMX代码生成期间创建的项目,而不是创建一个新的Keil uVision项目。打开之前保存STM32CubeMX项目的文件夹,并打开MDK-ARM文件夹。

Keil MDK项目

在这个文件夹中,有一个Keil MDK项目文件STM32_LED_Blinky。双击该文件,Keil uVision将打开所有源代码和库文件。在此之后,您可以打开main.c文件。

Keil MDK项目

修改LED闪烁代码

使用STM32CubeMX生成的代码只是初始化代码,除了根据用户配置初始化一些外围设备外,它不做任何其他事情。为了实现一个应用程序,例如闪烁一个LED,你必须添加必要的代码。

在main.c文件中,向下滚动到main函数,并在while(1)循环中添加以下代码。

HAL_GPIO_TogglePin (LED_Green_GPIO_Port LED_Green_Pin);

HAL_Delay (1000);

Keil MDK项目

这段代码将闪烁LED延迟1秒。现在,您可以使用F7或IDE中的快捷方式“构建”项目。Keil uVision现在将编译代码,并在底部显示编译结果。如果有任何错误或警告,将显示错误或警告所在的行号,以便您可以轻松地纠正错误。

组件的要求

在了解如何使用Keil uVision编程STM32F103C8T6之前,让我们看看组件和连接。

  • 基于STM32F103C8T6单片机的STM32蓝丸板
  • ST-LINK/V2调试器和编程器
  • 连接电线

ST-LINK与STM32F103C8T6连接

将ST-LINK/V2的SWDIO引脚连接到STM32 Blue Pill的SWIO引脚。同时将ST-LINK/V2的SWCLK引脚连接到STM32 Blue Pill的相应SWCLK引脚。最后,连接3.3V和GND引脚。

ST-LINK / V2

STM32蓝色药丸

接地

接地
3.3 v

3.3 v

SWDIO

SWIO

SWCLK

SWCLK

如何用Keil uVision编程STM32F103C8T6 ?

完成上述连接后,我们可以使用Keil uVision继续到程序STM32F103C8T6。将ST-LINK/V2调试器连接到计算机。在Keil uVision中,单击项目选项卡并选择目标......链接的选项。

Keil MDK项目

选择Debug选项卡,选择ST-Link Debugger。之后,单击它旁边的设置选项。

Keil MDK项目

转到Flash下载选项,并检查重置和运行选项。之后,单击OK保存设置,并再次单击OK关闭Options for Target。

Keil MDK项目

现在,如果您对代码进行了任何更改,请保存所有更改并选择build选项,该选项位于build选项旁边。如果没有错误,单击下载选项。Keil uVision,在ST-LINK/V2的帮助下,现在将为您的STM32F103C8T6编程。您可以在底部看到状态。

Keil MDK项目

结论

在本教程中,我已经向您展示了如何使用Keil uVision, ST-LINK/V2调试器和编程器编程STM32F103C8T6。

一个回应

留下回复

你的电邮地址将不会公布。必填字段已标记

Baidu
map