|
使用Keil uVision和ST-Link创建程序并将其烧录到STM32中 第1步: - 首先安装ST-LINK V2的所有设备驱动程序,软件工具STM32Cube MX和Keil uVision,并为STM32F103C8安装必要的软件包。 第2步: - 第二步是打开STM32Cube MX 第3步: - 然后单击“ New Project”
第4步: - 搜索并选择我们的微控制器STM32F103C8
第5步: - 现在出现STM32F103C8的引脚示意图,这里我们可以设置引脚配置。我们也可以根据我们的项目在外围设备部分选择我们的引脚。
第6步: - 您也可以直接单击引脚并显示一个列表,现在选择所需的引脚配置。
第7步: - 对于我们的项目,我们选择PA1作为GPIO INPUT,PC13作为GPIO OUTPUT和SYS调试作为SERIAL WIRE,这里只连接ST-LINK SWCLK和SWDIO引脚。所选和配置的引脚显示为绿色。您可以在下面的图像中注意到。
第8步: - 接下来在Configuration选项卡下,选择GPIO以设置我们选择的引脚的GPIO引脚配置。
第9步: - 接下来在此引脚配置框中,我们可以为我们正在使用的引脚配置用户标签,即用户定义的引脚名称。
第10步: - 之后单击Project >> Generate Code。
第11步: - 现在出现项目设置对话框。在此框中选择您的项目名称和位置,然后选择开发环境。我们正在使用Keil,因此选择MDK-ARMv5作为IDE。
第12步: - 在Code Generator选项卡下,单击Next,选择仅复制必要的库文件,然后单击OK。
第13步: - 现在出现代码生成对话框。选择Open Project以自动打开项目Keil uvsion中生成的代码。
第14步: - 现在Keil uVision工具打开,我们在STM32CubeMx中生成的代码具有相同的项目名称,其中包含为我们选择的引脚配置的必要库和代码。
第15步: - 现在我们只需要在按下按钮并在GPIO输入(引脚PA1)上释放时,在输出LED(引脚PC13)上包含逻辑以执行某些操作。所以选择我们的main.c程序来包含一些代码。
第16步: - 现在在while(1)循环中添加代码,请参阅下面的图像,其中我突出显示该部分以连续运行代码。 - while (1)
- {
- if(HAL_GPIO_ReadPin(BUTN_GPIO_Port,BUTN_Pin)==0) //=> DETECTS Button is Pressed
- {
- HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,1); //To make output high when button pressesd
- }
- else
- {
- HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,0); //To make output Low when button de pressed
- }
- }
复制代码
第17步: - 完成代码编辑后,单击调试选项卡下的选项目标图标选择ST-LINK Debugger
此外,单击“设置”按钮,然后在“Flash下载”选项卡下,选中“重置并运行”复选框,然后单击“确定”。
第18步: - 现在单击Rebuild图标以重建所有目标文件。
第19步: - 现在您可以将ST-LINK插入计算机并准备好电路连接,然后单击DOWNLOAD图标或按F8以使用您生成和编辑的代码刷新STM32F103C8。
第20步: - 您可以注意到keil uVision窗口底部的闪烁指示。
Keil编写STM32开发板的输出 现在,当我们按下按钮时,LED亮起,当我们松开时,LED熄灭。
程序 我们在生成的程序中添加的主要部分如下所示。下面的代码需要包含在STM32CubeMX生成的main.c程序的while(1)中。您可以返回第15步到第17步,了解如何在main.c程序中添加它。 - while (1)
- {
- if(HAL_GPIO_ReadPin(BUTN_GPIO_Port,BUTN_Pin)==0) //=> DETECTS Button is Pressed
- {
- HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,1); //To make output high when button pressesd
- }
- else
- {
- HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,0); //To make output Low when button de pressed
- }
- }
复制代码
以上就是本篇文章的全部内容。 |