在本教程中,我将向您展示如何使用Keil Uvision和STM32Cubemx代码生成器软件来编程STM32F103C8T6。您将学习如何安装软件(KEIL和STM32Cubemx),根据我们的要求配置软件,并使用ST-Link调试器和程序员上传代码。
介绍
到目前为止,我使用STM32蓝色药丸板实施了几个基于STM3F103C8T6 MCU的项目。在所有这些项目中,我都使用Arduino IDE作为编写代码的工具,并使用USB将代码上传到STM32到STM32UART转换器。
将Arduino IDE用于STM32项目非常容易,因为熟悉的Arduino术语也可以应用于STM32F103C8T6。对于初学者来说,这是可以接受的,但是如果您想认真学习强大的STM32 MCU的工作,那么这不是正确的方法。
正确的方法是远离Arduino世界,并就软件和硬件输入更专业的工具集。说到软件,我建议您使用手臂的keil uvision iDE。这是与我们的STM32F103C8T6这样的基于ARM的MCUS合作的绝佳工具,并且还支持适当的调试。
进入硬件,我们必须使用单独的硬件进行编程(以及调试)STM32蓝色药丸板。该硬件称为ST-Link/V2。它是由Stmicroelectronics开发的电路程序员和调试器。尽管原始程序员会很昂贵,但有许多与原始程序员兼容的第三方程序员,而且成本要少。
还有另一个称为STM32Cubemx的重要软件。这也由STMicroelectronics提供,用于为特定的STM32 MCU以及特定的IDE生成代码。
我将向您展示如何使用所有这些软件和硬件,以便您可以使用Keil Uvision和STM32Cubemx轻松编程STM32F103C8T6。
下载并安装STM32Cubemx
首先,让我们从STM32Cubemx代码生成器工具开始。从中下载此软件这个官方Stmicroelectronics网站。您必须登录到ST才能下载该软件。在撰写本教程时,STM32Cubemx的版本为5.6.1。安装软件并打开它。
在应用程序的右侧,单击安装或删除嵌入式软件包选项。一个新窗口将打开。
在其中,选择STM32Cube MCU软件包选项并展开STM32F1选项卡(因为我们的MCU是STM32F103C8T6)。当时的最新包装为1.8.0。选择最新版本,然后单击底部的“立即安装”选项。它将下载并安装MCU软件包。完成后,您可以关闭此窗口。
新的STM32Cubemx项目
现在,在主窗口中,选择对MCU选择器选项的访问。一个新窗口将为我们打开,以选择我们正在处理的MCU。
在新窗口中,在MCU/MPU选择器选项卡下,搜索“ STM32F103C8”。在右侧,我们的MCU将被列出。选择MCU,在右上角单击“开始项目”选项。
主项目窗口将在右侧的STM32F103C8T6 MCU和左侧的配置选项上打开。在PINOUT和配置选项卡中,展开系统核心块,然后选择SYS选项。选择调试作为串行线。选择此选项后,您可以观察到PINS PA13和PA14是SWDIO和CK,即串行线调试数据和时钟引脚。
下一步是配置蓝色药丸板上的LED。我们从STM32蓝色药丸的示意图中知道,绿色LED连接到PC13。因此,放大到STM32F103C8T6 MCU的PINOUT视图和PC13 PIN上,进行左键单击并选择GPIO_OUTPUT选项。我们可以通过右键单击PC13 PIN并选择Enter用户标签选项来更改此PIN的标签。我使用了标签“ LED_GREEN”。
这完成了项目的基本设置。我们可以配置的另一件事是时钟,但是STM32 MCU默认使用内部RC振荡器(在SystemInit函数中配置)。因此,我们可以保持时钟配置。
在下一步中,选择“项目管理器”选项卡,然后为您的项目选择一个适当的位置和名称。就我而言,我将该项目命名为“ STM32_LED_BLINKY”。另外,选择工具链 / IDE作为MDK-ARM,只不过是Keil Uvision IDE。
选择工具链后,单击“代码生成器”选项,然后仅选择“必要的库文件”选项。之后,您可以单击生成代码选项。该工具将根据选定的IDE创建一个项目,还将为项目复制必要的库文件。生成代码后,您可以关闭STM32Cubemx软件。
关于ST-Link调试器和程序员的简短说明
在进行进一步之前,让我们简要介绍一下ST-Link程序员和调试器。它的最新修订称为ST-Link/V2。ST-Link/V2程序员的便宜版本显示在下图中。
程序员的一端是USB男性连接器,您可以插入计算机。程序员的另一端由JTAG /串行线调试(SWD)接口组成。该界面的引脚整齐地打印在调试器模块的顶部。
从这些销钉中,我们必须使用3.3V,GND,SWDIO和SWCLK引脚。如果您还记得STM32F103C8T6蓝色药丸板的引脚,则SWD界面将整齐地放置在右侧。
下载并安装Keil Uvision
现在,让我们继续安装Keil Uvision MDK备用手臂。使用这个链接,输入您的联系信息,然后下载MDK-ARM的评估版本。当时,MDK-ARM版本5.29是最新版本。
安装后,MDK,您无需打开Keil uvision,因为我们将使用STM32Cubemx从前生成的代码进行此操作。
新的Keil Uvision项目
我们可以使用STM32Cubemx代码生成期间创建的项目,而不是创建新的Keil Uvision项目。打开较早保存STM32Cubemx项目的文件夹,并打开MDK-ARM文件夹。
在此文件夹中,有一个KEIL MDK项目文件STM32_LED_BLINKY。双击此文件,keil uvision将使用所有源代码和库文件打开。之后,您可以打开main.c文件。
修改闪烁LED的代码
使用STM32CubeMX生成的代码只是初始化代码,除了根据用户配置初始化某些外围设备以外,没有其他操作。为了实现应用程序,例如闪烁LED,您必须添加必要的代码。
在main.c文件中,向下滚动到主函数,并在(1)循环中添加以下代码。
hal_gpio_togglepin(LED_GREEN_GPIO_PORT,LED_GREEN_PIN);
hal_delay(1000);
该代码将以1秒的延迟闪烁LED。现在,您可以使用IDE中的F7或快捷方式“构建”项目。Keil Uvision现在将编译代码并显示底部的编译结果。如果有任何错误或警告,将显示存在错误或警告的行号,以便您可以轻松纠正错误。
需要组件
在了解如何使用Keil Uvision对STM32F103C8T6进行编程之前,让我们看一下组件和连接。
- STM32F103C8T6基于MCU的STM32蓝色药丸板
- ST-Link/V2调试器和程序员
- 连接电线
将ST-Link与STM32F103C8T6连接
将ST-Link/V2的SWDIO引脚连接到STM32蓝色药丸的SWIO引脚。还将ST-Link/V2的SWCLK引脚连接到STM32蓝色药丸的相应SWCLK引脚。最后,连接3.3V和GND引脚。
ST-LINK/V2 |
STM32蓝色药丸 |
gnd |
gnd |
3.3V | 3.3V |
SWDIO |
Swio |
swclk | swclk |
如何使用Keil Uvision对STM32F103C8T6进行编程?
建立上述连接后,我们可以使用Keil Uvision进行STM32F103C8T6。将ST-Link/V2调试器连接到计算机。在Keil Uvision中,单击项目选项卡,然后选择目标……链接的选项。
选择“调试”选项卡,然后选择ST-Link调试器。之后,单击与之相邻的设置选项。
转到Flash下载选项并检查重置和运行选项。之后,单击确定以保存设置,然后再次单击确定以关闭目标的选项。
现在,如果您对代码进行了任何更改,请保存所有更改,然后选择“构建选项”旁边的重建选项。如果没有错误,请单击下载选项。Keil Uvision在ST-Link/V2的帮助下,现在将对您的STM32F103C8T6进行编程。您可以在底部看到状态。
结论
在本教程中,我向您展示了如何使用Keil Uvision,ST-Link/V2调试器和程序员对STM32F103C8T6进行编程。
一个回应
我有STM32F429IET6,您能帮我刻录Arduino或MBED代码中的STM32F429IET6吗?