• 基于stm32的水质监测系统项目基础部分详细记录


    基于stm32的水质监测系统项目基础部分详细记录

    软件环境:MDK5

    硬件环境:STM32F103ZET6 开发板、颜色传感器、串口屏、串口打印机

    1. 搭建工程模板

    在进行项目软件的撰写时,首先新建一个基于该项目的工程模板。对于初学者,很多都是直接用开发板提供商提供的现成的工程模板,但是那样的工程模板在项目开发中体态略显臃肿,而且如果直接用别人的工程模板,那么很多搭建工程模板的库文件的用法和功能我们不会很了解,因此,自己新建一个基于项目的工程模板是非常必要的。

    1. 准备工作

    新建如下文件夹:

    (1)hubu_SocModel:存放所有的工程文件,在该文件夹下新建下面几个文件夹 USER、CORE、FWLIB、OBJ、BSP;

    (2)USER:在该文件夹中加入如下几个文件:

    (3)CORE:

    (4)OBJ:

    该文件夹用来存放程序编译过程中产生的中间文件和编译后的.hex文件。在新建工程时,keil会自动给你创建一个Objeting文件夹和一个Listing文件夹,用来存放这些文件,而不会把文件直接存到OBJ文件夹中,所以,需要我们手动把缓存文件的目录更改到OBJ。:

    (5)BSP:

    存放用户自己撰写的各种函数,分为BSP.c和BSP.h两个文件。

    (6)FWLIB:

    这两个文件夹里的文件不必全部都加进来,需要用到哪些外设资源就把哪些外设资源存放到该文件夹内。其中inc是include的缩写,表示里面存放的是头文件(.h文件),src是source的缩写,表示里面存放的是源文件(.c文件)。

    2.STM32固件库V3.5简介:(注:这部分可以参考一篇csdn文档《STM32固件库文件树及构成详解》)

    本系统是基于STM32固件库V3.5进行开发的,下面对以上我们准备的文件的功能进行介绍:

    (1)CORE:

    core_cm3.c和core_cm3.h是ARM公司提供的内核函数接口,所有的芯片都必须添加该文件.

    startup_stm32f10x_hd.s是芯片的启动文件,不同型号不同容量的芯片都具有独特的唯一的启动文件,该文件要跟根据芯片的型号和容量进行选择,具体选择方法可参考下图

    (1)FWLIB:

    Src、inc文件夹主要用来存放芯片上所有外设资源的驱动文件(库文件)。

    (3)USER

    main.c :该文件是用户来编写函数来实现自己需要实现的功能的,有用户自行编写;

    stm32f10x_it.c及其头文件:该文件是一个中断处理文件,_it结尾就是interrupt(中断)的意思,说明这个是整个工程的中断处理函数,如果你的工程里面没有用到中断就可以不添加进去,这个文件也可以去掉,将终端文件添加到其他的.c文件里也行;

    stm32f10x.h:这是一个很重要的stm32头文件,是一个最为重要的寄存器地址到寄存器结构体变量的映射,具体的分析可以参照这两篇博客:

    https://www.cnblogs.com/caihongsheng/p/3513279.html

    http://blog.csdn.net/yxfabcdefg/article/details/52798460

    system_stm32f10x.c:这个文件提供了两个函数以及一个全局变量,以便被用户程序调用,

    包括:系统初始化SystemInit(),旨在初始化系统时钟,设置中断向量表地址。详细分析可参考如下一片csdn博客:http://blog.csdn.net/lushoumin/article/details/77990690

    stm32f10x_conf.h : 配置stm32的相关外设,若不用任何外设则也可不添加此文件。

    3.新建工程模板

    (1)新建工程模板

    (2)文件夹路径设置;

    将Output和Listing选项下的文件存放目录设为OBJ;

    (3)修改文件名,为工程添加文件

    点击

    (4)添加头文件路径

    注意:必须添加到最近一级路径!

    按照此方法把USER和FWLIB下的inc文件夹路径添加进来.

    编译一下,发现程序出现如下错误:

    粘贴此错误到百度进行搜索,会找到如下解决方法:

    关于STM32F10X_HD,USE_STDPERIPH_DRIVER 的详细介绍,可以参考如下博客:

    https://www.cnblogs.com/xiaobo-Linux/p/5247579.html

    按照此方法添加USE_STDPERIPH_DRIVER后重新编译程序,发现程序编译无错误。

    到此,一个最简单的工作模板已经建好了。

    声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。对于本博客如有任何问题,可发邮件与我沟通,我的QQ邮箱是:3074596466@qq.com
  • 相关阅读:
    前端构建工具gulpjs的使用介绍及技巧(转载)
    jq checked 设置问题
    JavaScript面向对象及相关知识
    github 操作指南
    WebStorm常用快捷键
    Windows下Scala环境搭建
    For与Function进阶实战、Lazy的使用笔记总结
    第3课 Scala函数式编程彻底精通及Spark源码阅读笔记
    第2课 Scala面向对象彻底精通及Spark源码SparkContext,RDD阅读总结
    第1课 Scala入门与实战笔记总结
  • 原文地址:https://www.cnblogs.com/CherishTheYouth/p/9604440.html
Copyright © 2020-2023  润新知