
Keil Mdk5使用教程
一、界面描述
打开新建好的工程,进入的界面大概包含如下“主界面”几大块。工具栏、编辑窗口和状态栏可以关闭,工程窗口和信息窗口可以可以隐藏和关闭。
二、菜单描述
1、File文件
(1)文件菜单是比较简单的一个菜单,但要和工程区别开来,是打开文件不是打开工程。
New新建文件
Open打开文件
Close关闭文件
Save保存当前文件
Save As文件另存为
Save All保存文件(文件及工程设置)
Device DataBase器件数据库(信息)
License Management许可证管理
Print Setup打印设置
Print 打印
Print Preview打印预览
Edit编辑
(2)编辑
菜单是一个包含多项功能的菜单,也是比较常用的菜单,基本上都位于“文件工具栏”,
Undo撤销编辑
Redo恢复编辑
Cut剪切
Copy复制
Paste粘贴
Navigate Backwards跳转到上一步
Navigate Forwards跳转到下一步
Insert/Remove Bookmark插入/移除书签
Go to Next Bookmark跳转到下一个书签
Go to Previous Bookmark跳转到上一个书签
Clear All Bookmarks清除所有标签
Find查找
Replace替换
Find in Files查找所有文本
OutLining提纲:如显示函数名称,隐藏函数体
Advanced(更多)先进功能
Configuration配置3、View视图
Keil Mdk5使用说明
1.工程创建与器件配置启动μVision5→点击Project→New uVision Project→命名工程→选择目标芯片型号(如STM32F103VE)→关闭向导页。
2.库文件与启动代码集成
创建Startup/User/Library分组→分别添加启动文件(如startup_stm32f10x_hd.s)、用户代码(main.c)及外设库(stm32f10x_gpio.c)。
3.头文件路径与宏定义设置
点击魔术棒→C/C++选项卡→Include Paths添加库目录→Define输入USE_STDPERIPH_DRIVER,STM32F10X_HD启用标准库。
4.调试器连接与配置
魔术棒→Debug→选择仿真器(如ST-LINK)→Settings设置SWD接口→勾选Reset and Run实现烧录后自动运行。
5.编译与实时调试
点击Build→通过后按Ctrl+F5进入调试→使用Watch窗口监视变量→F10单步执行→F9设置断点。
Keil Mdk5特点
⚙️动态设备包管理SoftwarePacks独立于MDKCore,支持按需下载芯片支持包(DFP)与中间件,避免冗余安装。
⚙️多内核兼容架构
无缝支持Cortex-M0/M3/M4/M7、ARM7/9及Cortex-R4,一套环境覆盖全系列开发。
⚙️超低调试延迟
SWD下载速度达MDK4的5倍,配合ULINKpro实现指令级追踪,中断响应延迟<1μs。
⚙️功耗与性能平衡
后台运行功耗<3%/小时,2GB内存设备可流畅处理百万行代码项目。
⚙️生态开放性强
符合CMSIS标准,兼容Eclipse插件,支持与Proteus联调(需安装Vdmagdi驱动)。
Keil Mdk5功能
🛠️智能代码助手动态语法检测+函数参数提示,支持自定义关键字高亮,减少30%编码错误。
🛠️高级调试工具
指令跟踪(ETM)、内存映射修改、Flash断点,支持外设寄存器实时修改。
🛠️性能优化套件
ExecutionProfiler分析函数耗时,CodeCoverage统计代码执行覆盖率。
🛠️RTOS深度可视化
实时任务栈监控、信号量状态图、调度器事件跟踪,快速定位线程阻塞点。
🛠️版本管理集成
内置Git/SVN客户端,支持代码差异对比与提交历史回溯。
常见问题
程序烧录后不运行怎么办?→步骤1:检查Debug→Settings→FlashDownload是否勾选ResetandRun;
→步骤2:确认BOOT0引脚接地,或上拉至3.3V后重新烧录。
调试时提示“InternalCommandError”怎么办?
→移除调试循环中的while(1)结构,或检查Flash操作函数是否未解锁。
设备识别失败(InvalidROMTable)怎么办?
→断电→BOOT0接3.3V→重新烧录→BOOT0接地重启;若仍无效,核对system_stm32f4xx.c中HSE_VALUE与板载晶振是否匹配。
代码提示功能失效怎么办?
→打开Configuration→TextCompletion→启用FunctionParameters和Symbolsafterxxcharacters。
全速运行卡死在启动代码?
→清除所有断点→重启调试;若持续发生,检查startup.s中栈大小是否溢出。