当前位置:首页 > 系统教程 > 正文

在Ubuntu 22.04上安装Keil并开发STM32项目(Linux环境下STM32单片机开发教程)

在Ubuntu 22.04上安装Keil并开发STM32项目(Linux环境下STM32单片机开发教程)

本文将详细介绍如何在Ubuntu 22.04系统上通过Wine安装Keil uVision5,并搭建STM32单片机开发环境。无论你是嵌入式初学者还是经验丰富的开发者,都能通过本教程掌握在Linux下STM32编程的方法。

1. 准备工作

确保你的系统已更新:sudo apt update && sudo apt upgrade

安装必要的工具:sudo apt install wget build-essential

2. 安装Wine(用于运行Windows程序)

由于Keil没有Linux版本,我们需要通过Wine运行。执行以下命令安装Wine并启用32位支持:

sudo dpkg --add-architecture i386sudo apt updatesudo apt install wine wine32 wine64

安装完成后,验证Wine版本:wine --version

3. 下载Keil MDK-Arm

访问Keil官网(https://www.keil.com/download/)下载MDK-Arm安装包。你需要注册一个账号才能下载。下载文件通常名为 MDK5xx.EXE(xx为版本号)。假设下载到 ~/Downloads/MDK525.EXE

在Ubuntu 22.04上安装Keil并开发STM32项目(Linux环境下STM32单片机开发教程) Ubuntu 22.04 安装 Keil  STM32 单片机 开发 uVision5 Linux 下 编程 第1张

4. 使用Wine安装Keil

打开终端,进入下载目录,运行Wine执行安装程序:

cd ~/Downloadswine MDK525.EXE

安装界面出现后,按照提示进行。建议安装路径保持默认(C:\Keil_v5)。安装过程中可能需要选择组件,全部勾选即可。等待安装完成。

如果在安装过程中遇到缺少DLL的提示,可以使用winetricks安装常用组件:

sudo apt install winetrickswinetricks corefonts vb6run

5. 配置Keil并安装STM32芯片包

安装完成后,通过Wine启动Keil:wine ~/.wine/drive_c/Keil_v5/UV4/UV4.exe。你也可以创建桌面快捷方式。

首次启动可能需要激活License,如果没有License可以使用评估版,限制代码大小。对于STM32开发,需要安装对应的芯片包。打开Keil,点击 Pack Installer 按钮,在线下载STM32系列芯片支持包。或者从官网手动下载并安装。

6. 创建第一个STM32项目

以STM32F103C8T6为例,演示如何创建项目:

  • 点击 Project -> New uVision Project,选择项目保存路径。
  • 在设备选择界面,搜索 STM32F103C8 并选中,点击OK。
  • 接下来会提示添加运行环境,根据需要选择CMSIS和Device相关组件,然后OK。
  • 在左侧工程栏右键 Source Group,添加新文件,命名为 main.c
  • 编写简单的测试代码,例如LED闪烁。
#include "stm32f10x.h"void delay(void) {    for(int i=0; i<1000000; i++);}int main(void) {    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);    GPIO_InitTypeDef GPIO_InitStructure;    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    GPIO_Init(GPIOC, &GPIO_InitStructure);        while(1) {        GPIO_SetBits(GPIOC, GPIO_Pin_13);        delay();        GPIO_ResetBits(GPIOC, GPIO_Pin_13);        delay();    }}

点击 Build 按钮(或F7)编译项目。如果编译成功,会生成hex文件。

7. 烧录程序到STM32

在Linux下,我们可以使用开源的stlink工具烧录。安装stlink:

sudo apt install stlink-tools

连接ST-Link调试器到STM32开发板,然后使用以下命令烧录hex文件:

st-flash write project.hex 0x08000000

如果使用其他烧录器,如J-Link,也有对应的Linux工具。也可以直接在Keil中配置使用Wine调用外部烧录工具,但比较复杂,推荐使用命令行烧录。

8. 常见问题及解决

  • 中文显示乱码:在Wine中运行winecfg,在“函数库”中添加riched20riched32为原装(Windows),并安装中文字体:winetricks allfonts
  • 编译报错找不到头文件:检查芯片包是否安装正确,在工程选项中确认C/C++包含路径。
  • Wine无法启动Keil:尝试安装Wine的完整版,或者使用wine命令时加上--desktop参数启动虚拟桌面。

总结

通过以上步骤,你已经在Ubuntu 22.04上成功安装了Keil uVision5,并完成了STM32单片机开发的入门。虽然在Linux下STM32编程需要一些额外配置,但一旦搭建好环境,开发体验依然流畅。希望这篇教程对你有所帮助!