01使用keil5创建stm32工程文件

  • 打开keil5
  • 新建一个工程文件
  • 选择芯片型号
  • 在新建好的工程目录下创建Start文件夹,用于存放启动文件
    启动文件存放路径: STM32F10x_StdPeriph_Lib_V3.5.0 -> Libraries -> CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F10x -> startup -> arm

    01使用keil5创建stm32工程文件

  • 复制stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h文件到Start文件夹下

    01使用keil5创建stm32工程文件

  • 添加内核寄存器的描述文件到Start文件夹
    这是由于STM32是内核和内核外围的设备组成的,而且内核的寄存器描述和外围设备的描述文件不是在一起的。
    STM32F10x_StdPeriph_Lib_V3.5.0 -> Libraries -> CMSIS -> CM3 -> CoreSupport

    01使用keil5创建stm32工程文件

    到此为止,工程的必要文件就复制完成了。

    01使用keil5创建stm32工程文件

  • 添加文件到Start组
    第一添加启动文件,启动文件有许多个,我们只能添加其中一个。stm32f103c8t6添加的是md.s的启动文件。

    01使用keil5创建stm32工程文件

    然后是添加剩下的.c和.h文件

    01使用keil5创建stm32工程文件

    01使用keil5创建stm32工程文件

  • 在工程选项里添加这个文件夹的头文件路径

01使用keil5创建stm32工程文件

  • 测试工程是否可行
    新建User文件夹,新建mian.c文件,编译。

    01使用keil5创建stm32工程文件

    到此,如果后续采用的是寄存器开发,就完成了工程的搭建。

  • 如何通过配置寄存器完成点灯操作

    01使用keil5创建stm32工程文件

    只要配置三个寄存器就可以实现点灯
    1、RCC的一个寄存器,用来使能GPIOC的时钟
    2、第二个寄存器,配置PC13口的模式
    3、第三个寄存器,端口输出数据寄存器

    01使用keil5创建stm32工程文件

01使用keil5创建stm32工程文件

01使用keil5创建stm32工程文件

01使用keil5创建stm32工程文件

01使用keil5创建stm32工程文件

这样的方式的弊端是要查手册看寄存器的每一位,并且如果会影响到其他端口的原有配置,如果要做的不影响别的端口还需要做&=和|=的操作。

  • 为工程添加库函数
    新建文件夹Library用来存放库函数的.c和.h文件
    找到库函数文件:STM32F10x_StdPeriph_Lib_V3.5.0 -> Libraries -> STM32F10x_StdPeriph_Driver -> src

    01使用keil5创建stm32工程文件

    找到库函数头文件:STM32F10x_StdPeriph_Lib_V3.5.0 -> Libraries -> STM32F10x_StdPeriph_Driver -> inc

    01使用keil5创建stm32工程文件

    在Library目录下粘贴
    在keil中添加Library的全部文件
    还要在User文件夹下添加三个文件,找到以下文件:STM32F10x_StdPeriph_Lib_V3.5.0 -> Project -> STM32F10x_StdPeriph_Template ->

    01使用keil5创建stm32工程文件

    01使用keil5创建stm32工程文件

    01使用keil5创建stm32工程文件

    最后还需要一个宏定义,

    01使用keil5创建stm32工程文件

    01使用keil5创建stm32工程文件

    不要忘了头文件,把User和Library的也添加上

    01使用keil5创建stm32工程文件

    这样基于库函数的工程就建好了

  • 库函数点灯

    01使用keil5创建stm32工程文件

通过使用库函数,查看库函数的参数说明,补全函数参数
列如GPIO_Init()函数:

01使用keil5创建stm32工程文件

一个参数是GPIOx,另一个是结构体,这就需要定义一个结构体并补充完整了。结构体补充用ctrl+f查到结构体成员的定义,在设置对应的值。

01使用keil5创建stm32工程文件

  • 启动文件选择

    01使用keil5创建stm32工程文件

© 版权声明

相关文章

暂无评论

none
暂无评论...