新建工程
为了防止文件看起来非常乱,我们在新建工程之前可以先创建一个文件夹,名字随便起,我创建了一个名为stm32project的文件夹,以后都可以在这个文件夹里面保存我们的工程
创建好文件夹之后我们打开keil5软件
点击project,创建一个新工程
之后我们打开我们创建的文件夹,在里面再创建一个文件夹,名字最好起这个与这个工程用途有关的
给工程起一个名字,点击保存
保存之后我们点击箭头所指的图标,找到我们所使用的stm32对应的芯片,如果没有器件支持包,可以看我的keil5安装教程: keil5安装教程
这里我选择的是我使用的芯片型号,选好之后点击ok
然后会弹出一个keil的新建工程小助手,可以帮助我们快速新建工程,在这里我们暂时用不到,可以把它关掉
现在可以看到,我们的工程已经建好了
不过这个工程现在是不能用的,我们首先要添加一个启动文件,启动文件需要下载固件库,固件库在我发的keil5的安装教程里面的链接里面: keil5安装教程
我们首先打开固件库文件夹,接着打开STM32F10x_StdPeriph_Lib_V3.5.0文件夹
接着依次打开Libraries–>CMSIS–>CM3–>DeviceSupport–>ST–>STM32F10x–> startup–>arm,然后我们就可以看到启动文件了
我们可以看到启动文件有很多,我们具体应该选择哪一个呢?可以参考这个图片结合启动文件的后缀去选择启动文件,因为我的是stm32c8t6,c指的是256k flash容量,因此我选择后缀是hd.s的启动文件
我们复制一下这个文件
找到我们刚才创建工程的文件夹
为了防止我们分不清文件,我们可以新建一个名为start的文件夹,这样我们就知道里面是启动文件了
把我们刚才复制的启动文件放进start文件夹里面
接着我们回到固件库的STM32F10x文件夹,把图中的三个文件复制进start文件夹中
在这里我做一下解释,这里的stm32f10x.h,是stm32的外设寄存器描述文件,是用来描述stm32有哪些寄存器和它所对应的地址的。system文件主要是用来配置时钟的,stm32的72MHz的主频就是system函数里面的文件配置的。
因为这个stm32是内核和内核外围的设备组成的,而且这个内核的寄存器描述和外围设备的描述文件是不在一起的,所以我们还需要添加一个内核寄存器的描述文件,我们可以打开固件库中的cm3
打开CoreSupport,这两个文件就是我们需要添加的内核寄存器的描述文件
我们继续把它复制粘贴到我们创建的start文件夹里面,到这里启动文件已经全部复制完成了,大家可以看一下有没有遗漏的
我们回到keil5软件,把Target下的文件改成start,这样是为了方便区分
然后我们右击start,选择add existing files to group start,打开之后,我们选择刚才创建的start文件夹,文件类型选择all files,把我们刚才复制到里面的文件都选择上,Ctrl+A,然后点击add添加进去。
然后点击close返回
这里可以看到,我们的文件已经添加进去了,这些都是stm32的基本文件,是不需要修改的,我们可以看到上面的钥匙图标,意思是它是只读文件
之后我们还需要在工程选项里面添加上这个文件夹的头文件路径,否则软件是找不到.h文件的,我们首先点击工具栏里面的魔术棒图标
打开之后点击c/c++
找到include paths,点击旁边的三个点
然后新建文件,继续点击三个点
选择start文件夹
点击ok,这样就把这个文件夹的头文件路径添加进来了
接着我们打开工程文件夹,创建一个user文件夹
然后打开keil5,右击Target,点击add group,创建好之后把名字改成user
右击user,选择add new item to group user,选择cfile
切记添加完成之后不要急着点add,我们还有修改一下文件保存位置,把位置修改成我们刚才新建的user文件夹,然后随便起个名字,点击add
我们随便写一个程序点击编译,程序是否会报错,如果没有报错说明我们之前的步骤没有错误
我们可以看到没有错误也没有警告
由于这个工程还没有添加基于stm32的库函数,所以他还是一个基于寄存器的开发工程,接下来我们为这个工程添加库函数,首先我们打开我们的工程文件夹,新建一个名为library的文件夹,在这个文件夹里存放我们的库函数
接着我们打开固件库文件夹,打开libraries
打开STM32F10x_StdPeriph_Driver
我们把src和inc里面所有的文件复制粘贴到工程文件里面的library里面,这里的src里面全部是库函数的源文件,inc里面全部是库函数的头文件,一下是复制完的图
然后我们返回keil5软件,新建组,把名字改成library,把我们刚才添加进工程文件里面library的所有文件添加到library里面,添加完成后是这样的
不过现在还不能使用库函数,我们打开固件库文件夹中的project文件夹
然后点击STM32F10x_StdPeriph_Template
打开之后我们可以看到三个文件
这里的conf.h文件是用来配置库函数的头文件包含关系的
两个it文件是用来存放中断函数的
我们把这三个函数复制到工程文件里面的user文件里面
接着回到keil软件,把刚才这几个文件添加到user组里,添加好之后是这样的
接着我们打开魔术棒,选择c/c++,将USE_STDPERIPH_DRIVER输入到define中
然后把library和user的头文件路径也添加上
然后我们点击这个扳手的图标
选择UTF-8,这样可以防止出现一些中文乱码的问题
结语
到这里工程已经建好了,下篇文章我会教大家怎样使用stm32,已经如何往里面写程序,如果有什么不对的地方大家可以在评论区提问,我会给大家耐心解答的,希望大家点点关注,我也是一个刚入门的小白,如果有写的不好的地方大家可以提出了,我会及时更正的,谢谢大家支持