下载st官方固件库
STM32F103意法半导体32位微控制器 - STMicroelectronics
搜索并下载固件库
使用固件库创建工程模版(以后不用每次配置了)
新建一个“工程模版”文件夹,里边新建三个文件夹
工程模板
|----Project? ? ? ? 自己编写的代码把下载的库中的\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的
main.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h 复制进来
|----Libraries? ? ? 下载的库文件中的同名文件拷贝过来的
|----Output? ? ? ? 存放编译完成后的机器码之类的
新建工程
然后打开keil5程序,Project ?->?New uvision Project...
目录选择为刚才新建的project目录,点保存会出现一个选择芯片的页面,选择所要用的芯片。 我所需芯片在STMicroelectronics ?->?STM32F1 Series ?->?STM32F103 ?->?STM32F103C ?下 找到点击,然后OK。
没有的话,先不新建工程,先在keil主面板上点击打开pack installer
左侧 Device选项卡下搜索STM32F103,在出现的列表中选中STM32F103C8(根据自己的板子选)
右侧packs选项卡中,列出了Device Specific中有两个Keil::....点击安装这两个包。装好后退出来重新新建工程就可以看到STMicroelectronics下自己的板子的包了。
工程配置
添加工程组和组文件
在Groups中创建分组:
User? ? ? ? ? ? 自己开发的程序代码
Deiver? ? ? ? ?管理STM32外设的驱动
CM3? ? ? ? ????管理CMSIS内核驱动
Startup? ? ? ?管理MDK开发环境下与芯片相对应的启动代码
在Files中加入文件
USER:project中的main.c\stm32f10x_it.c
Driver:Libraries\STM32F10x_StdPeriph_Driver\ src下的所有.c文件
CM3:Libraries\CMSIS\CM3\CoreSupport ?下的core_cm3.c
Startup:Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
(这个目录下的一堆.s文件对应的是不同容量的芯片,stm32f103c8对应的是md后缀的)
target选项配置
1.Target选项卡中ARM Compiler选择版本5的编译器
2.Output选项卡将Create HEX File 选上,output路径选择为刚才创建的output文件夹d
3.C/C++(4C6)选项卡 ,在preprocessor Symbols的define中写两个宏定义:
USE_STDPERIPH_DRIVER,STM32F10X_MD(中间是逗号),第一个宏定义是说使用固件库进行开发,第二个说的是芯片容量,分为LD,MD,HD,对于stm32f103c8来说是MD。
然后在include Path处,点击后面的三个点,把Libraries文件夹中的路径配上,分别为
Libraries\CMSIS\CM3\CoreSupport
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
Libraries\STM32F10x_StdPeriph_Driver \inc
Libraries\STM32F10x_StdPeriph_Driver \src
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
4. debug选项卡右上角的debugger选择为ST-Link Debugger
接线正确的话,插上stlink后点settings会在SW Device中出现stlink设备
测试
打开main.c文件只留空循环
?运行程序
0error且生成了target就是正确的,否则排除error
使用STlink烧录程序
stm32boot0置1
boot0是1的时候可以调试,0的时候程序运行
对应引脚连接
stm32-STlink
3.3v-3.3v
swio-gnd
swclk-swdio
gnd-swclk
todo 需不需要装stlink驱动
|