外设实战之搭建开发环境
2014-6-3
一、搭建环境
先从搭建环境开始,最好尽量是自己动手搭建的环境,虽然可能问题很多,但至少能学到很多东西,以后逐渐熟悉了,问题自然越来越少,越来越得心应手。用别人的工程虽然开始很方便,但毕竟是别人的,只是个权宜之计。以后有问题,或是需要做大的改动,就很难动手了。
1.硬件环境:STM32F051R8T6,选的是青风电子的开发板,好像是v2版本的板子。
2.软件环境:因为是F0系列的开发板,MDK似乎得需要选版本高一点的,这里选的是MDK5.1。
以下记录了我搭建工程的步骤,没有配图,看起来确实会费力不少。
1.启动MDK5.1,先New一个工程,输入STM32F051,直接来到了STM的分支,点开STM32F051,里面选取STM32F051R8。
2.在选取了STM32F051R8后,弹出了manage Run-Timer Environment.似乎是个环境配置页。之前的MDK没见过。
先点开CMSIS,CORE当然是要的,点上勾。DSP的话,STM32F051似乎不支持,先不管,其实这些就算在这里没勾上,但以后又需要,以后再加上来也行的。
RTOS是用的keil RTX,没用过,先不选了。
Device里面是startup,我就说怎么选完MCU型号没见弹出加上startup.s汇编启动代码的对话框呢,真要自己写还真麻烦,原来改到这里来了。必须勾选,不说了。
接下来的Drivers、File System、Graphics、Network、USB。个个都是强大的组件啊,不过现在初建工程,还用不上这么高级的,以后要用到时再加不迟。
点OK完成配置。
3.然后是添加固件库了。先在工程文件的同一目录下创建user文件夹,这里是用户目录,也就是我们自己的代码目录。然后再工程文件的同一目录下放置固件库lib和stm32f0两个文件夹。把STM32F0的文件夹加到工程中,然后把里面的文件全部进入。把lib文件夹加入工程,把lib下src里面全部的c文件加到工程中lib分支下。
在user里面添加main文件夹,里面添加main.h和main.c文件,main函数写好,当然现在先写个while死循环。也一样加到工程中,不细说。
4.这个时候,工程目录都加好了,要是点下make以后你认为会通过吗!!!接下来还需要配置一些参数。
打开option,点开device页,应该是先前选好的STM32F051R8。
点开Target,还是能看到MCU型号没错。下面是ROM和RAM的内存地址分配,可以对下datasheet中的memory map。
点开output,可以按需要是否生成hex文件,输出文件集的路径也可以在这里修改,如果觉得工程目录下文件太多不方便看,再在这里搞个放输出文件的夹子是很好的建议。
但在编译之后还是有很多文件中间文件出现在工程目录下,我试了下修改设置,没有效果,这个以后慢慢熟悉再看怎么解决吧。
点开list和User,基本不需要动什么。
点开C/C++,需要在Define里面加上USE_STDPERIPH_DRIVER 然后空格 再加STM32F051。USE_STDPERIPH_DRIVER 在代码中我没有找到,不知道这个宏是怎么关联 的,然后STM32F051是关联着很多编译选项的。
下面是包换路径,那些编译出错大多就是找不到h文件,这里加上lib\inc;stm32f0就可以了。具体的路径需要按自己的工程来设置路径。
ASM页不动。
linker页目前先不动,以后会改成sct脚本方式的,脚本方式比较高级,我一般都会选脚本方式的。更直观,控制也更精细。
有很多”特技“都是在这里搞定的。
debug和utilities我都是选的st-link。
5.最后再全部重新编译下,没有错误也没有警告。
第一个工程的建立差不多就完成了,虽然还有些瑕疵,不过以后慢慢改进吧,后面要做的事还有很多,要走的路也还很长,总不能因为这么个小问题卡这吧。