前言:学习STM32最好还是有一定的51单片机基础,尤其是掌握了C51中关于寄存器的操作、指针变量的应用,以及学习并能够建立自己的头文件和函数库了,那在STM32学习中上手更快一些,尤其是刚开始关于位绑定、寄存器以及库函数的理解。
我也是初学STM32,直接就使用了新版的 MDK-RAM5.25,我感觉初学使用MDK新版本也好,很多功能和操作比老版更合理,使用也更方便,虽然和很多教程不配套,但经过查找相关资料能够自己解决相关问题,也是一个学习的过程。这个课程是我在学习中做的笔记,虽然大部分是摘抄自其他老师的,但毕竟自己也是查找了很多网络资料,其中也加入了自己的理解,并对学习中遇到的问题进行总结,只希望给和我一样的初学者一个帮助。
我学习使用的是STM32的固件库(Keil公司提供的标准库函数)编程,需要下载安装STM32芯片对应的数据包Pack,也就是官方提供的库函数包,当然如果你学习的教程提供有函数库,也可以不用下载。
现在官方已经从2012年开始不再提供标准函数库的更新了,转而推出使用HAL库,我在期间也上手使用过HAL库,感觉像很久以前的操作系统从DOS向Windows系统转换一样(不知道我这个形容对不对),函数库环境的搭建只用点点鼠标就OK了,但是在使用RAM仿真调试没调试通过,再说我也比较喜欢底层寄存器的学习,所以准备先大概学习一遍再转用HAL库操作。
第1章 MDK5新建STM32工程
方法有两种:
1.1方法1:从官网下载安装Pack数据包
1.1.1 从官网下载对应自己芯片的PACK数据包
打开www.keil.com/dd2/,找到点击“STMicroelectronics”,找到对应芯片的前缀,并一直找到对应芯片的型号,点击型号,跳转页面点击下载“Download”;
点击对应的芯片信号后,跳转到下载页面,点击Download下载;
1.1.2 安装Pack数据包
打开MDK5,点击pack installer按钮(首次会弹出一个欢迎的界面,点击OK);点击“文件File”—“导入Import”;
找到刚才下载的Pack文件进行导入;
1.2 方法2:从系统界面安装Pack数据包
点击 “PackInstaller”按钮,打开“PackInstaller”
界面;
然后在pack installer界面的search栏,搜索你的芯片型号,以stm32f103c8为例,device栏里面会显示stm32f103c8的信息;用鼠标左键单击选中,然后在pack installer的pack栏里面会出现对应的安装包(KEIL:STM32F1xx_DFP),直接点击旁边的install按钮,就可安装该芯片系列的固件库;安装完后,直接关掉该界面,然后进入MDK界面,若出现有更新的提示,直接点击确定。
1.3 新建工程文件
点击project--new u_vision project新建工程,选择存放工程的位置(文件夹),输入工程名,出现选择芯片型号的界面,选择使用的芯片型号(或在search栏里面直接输入你的芯片型号,在下方就会自动显示出来,左键单击选中,然后点击OK);
注意:如果没有找到自己的STM32芯片型号,参考1.1节下载安装芯片Pack;
1.4 设置工程运行环境
然后会弹出manage run -time environment的运行环境界面,必须选择的有CMSIS下的core和device下的startup。其他则需要根据你需要的使用的外设;
知识点:在工程建立后,尤其是在使用库函数进行编程中,随时根据需要(如需要使用GPIO、USART等外设),点击在运行环境ManageRun-TimeEnvironment界面对相应的软件组件SoftwareComponent(也就是库函数)进行添加;
知识点:在运行环境ManageRun-TimeEnvironment界面对相应的软件组件SoftwareComponent(也就是库函数)进行配置添加时,一些组件Component需要其他组件的一起添加。在这时,如果配置正确,打钩的地方是绿色;未正确配置的话,打钩的地方是黄色。此时下方会出现还需要选中那几个配置的提示信息,按照提示选择即可(或直接点击下方提示部分进行跳转);
例如:选择外设GPIO,开始显示黄色并在下方提示你还需要选择framework和RCC,按照提示选择后,所有打钩的地方都变成绿色,表示已正确配置。
1.5 建立主函数文件
到了MDK5界面,在左边工程目录下,已经添加了一些刚才配置的文件,包括启动文件以及一些外设驱动文件,此时打开工程目录文件夹,里面自动建立了几个文件夹;
MDK5在使用和操作上已经很贴近用户需求,所以