一、项目建立步骤
首先我们要建立自己的项目文件夹,在这里我在电脑中建立了“STM32-project”在这其中建立了实例文件夹”example“,然后在example文件夹新建了“USER”文件夹用作存放用户代码如“main”等。好了项目文件夹就基本建立好了
接下来使用KEIL5来新建项目了。在我们建的实例文件夹中建立项目example
此时会提示选择芯片,你会发现,这里不像KEIL4那样有一堆芯片,这里只有之前我们下载的系列芯片。
选好芯片后,它会弹出如图所示。这里就是你之前下载的库函数以及插件。在这里我们选择建立程序所必要的。如图所示的两个选项就是我们所有项目所需要的,分别为启动代码(Startup)和处理器软件接口标准库CMSIS的内核(CORE)代码。
然后就是选择外设库函数。我们肯定要使用到芯片的GPIO口,这里我们选择GPIO外设,但是你会发现它是黄色,下方还提示警告。大概意思是你如果要使用GPIO那么还需要RCC 和Framework两个库函数。
那么我们就将这两个库添加进去,这时你会发现黄色变绿色,表示没有错误。我们点击OK。
所需要的基本库文件都准备好了,随着项目的拓展可以随时添加新的库文件如图
接下来我们建立用户代码区.
建立一个main.C文件到并添加到USER。
进行编译和连接,生成可执行文件。
二、错误及解决方法
关于软件仿真时出现的read错误与write错误,还有无法调出模拟仿真端口。通常情况不是程序写错了那么就是这个地方了。将如图1三个框更改为图2中的内容。-pSTM32F103ZE是我们选择的芯片型号.
关于无法动态语法检查,这个问题曾经困扰我很久,如果不是如图所示勾没打上,那么就是你的项目工程文件夹包含中文路径了
另一个经常出现的问题就是软件仿真时,单步进行总是跳到反编译区,或者是跳到启动函数中,对于这个问题。
1.首先如果进入反编译去那么有可能command区有错误提示
2.如果进入启动函数那么可能debug中没有设置Run to mian
3.第一次单步运行正常,运行后复位,又跳转到启动函数中。对于这个问题我也没有太好的解决方法,只能是手动在main函数中打节点,然后用运行到指针处再单步运行即可。
对于Keil MDK5来说,如下图所示C/C++标签中,Define无需提交芯片宏定义,只需添加用户文件搜索路径即可。而对于Keil MDK4或者Keil MDK3来说,C/C++标签中,Define需要填入芯片的宏定义,即USE_STDPERIPH_DRIVER,STM32F10X_HD.