1. 资料
这里使用的是MDK536安装包和Keil.STM32F4xx_DFP.2.16.0安装包(因为板子是正点原子stm32F407的);
安装包放到下面(安装包也是在网上找的,里面还是比较全的,有C51,以及注册机等):
链接:https://pan.baidu.com/s/1k4E80FqvZNva_68ue218pg
提取码:mh9w
2. 安装步骤
- 运行MDK536.exe(直接运行,安装的盘自己换一个除c盘的盘,最后点击完成);
- 破解keil(用注册机);
- 运行Keil.STM32F4xx_DFP.2.16.0(直接运行,最后点击完成)。
在安装完成keil以后,需要破解keil,下面简单说一下破解(因为第一步运行MDK和三步运行Keil.STM32F4xx_DFP注意事项比较少):
2.1 以管理员的身份运行keil,点击File——>License Management
2.2 复制CID编号
2.3 打开注册机,生成License ID Code
这里的Target选择ARM,如果是51单片机的话就选C51,复制生成的License ID Code,粘贴到相应的位置上。
如果没有破解成功,再复制到注册机中生成License ID Code,如果还是不行,就换一个注册机试一试。
3. 安装完成后的一些问题
3.1 系统变量
安装并破解完成后,这里选择的是STM32F407ZG,打开一个正点原子的跑马灯项目,运行就报如下错误:
错误中说stdint.h文件找不到,在网上查询方法,说是没有添加stdint.h文件:
在keil的安装地,搜索stdint.h文件,找到这个文件的地址,添加到keil中。
继续运行该项目,继续报错如下(问题忘了截图了),错误如下:
Error: L6411E: No compatible library exists with a definition of startup symbol __main
在网上查询方法,找到是系统环境变量的问题:
在环境变量中加上ARMCC5LIB,如果有其他以ARM开头的变量,要删去,再添加这个(开始旧版本有这个变量)。
再次运行项目,发现可以正常运行,这里发现,把第一个添加stdint.h文件那里去掉,还是可以正常运行的,所以报开始那个问题,还是因为这个系统变量的问题。
3.2 汉字变问号
当在程序中输入汉字,就会变成问号,解决办法如下:
Edit——>Configuration——>Encoding,选择Chinese GB2312即可,然后关闭keil,再打开即可完成设置。
3.3 ST-Link下载器报错
当用下载器烧程序到开发版上,出现要升级的问题:
但是点上面的Device Connect,没有反应,有这个提示ST LINK is not in the DFU mode plesse restart it,在网上查找解决办法,有的说要重新下载st link utility工具,再升级,这里没有重新下载,关闭keil,拔掉下载器,重新打开keil,再插上下载器,ST-LINK->Firmware update->device connect,就能更新了,最后成功把程序烧到开发板。
4. keil中的设置
4.1 代码语法检查
在编写代码的时候,有时候代码没有写完就开始提示错误,关闭这个代码错误提醒功能,如下:
Edit——>Configuration——>Text Completion,这里不勾选Dynamic Syntax Checking。
4.2 字体设置
Edit——>Configuration——>Color & Font,这里就可以设置自己想要的字体。