STM32基于CubeIDE和HAL库入门学习笔记:基础知识理论与开发环境建立

文章目录:

一:开发板和基础知识理论

1.开发板 

2.基础知识理论*

二:CubeMX图形化编程

1.设置时钟(心脏)

1.1 开启RCC功能 

1.2 开启RTC功能

1.3 配置时钟树

2.设置端口(五官四肢)

3.工程编译和下载

编译设置

工程编译

三:HAL库的结构和使用

1.HAL库的整体结构 

2.HAL库的使用 

 四:STM32CubeIDE(内含STM32CubeMX代码辅助工具)

1.STM32CubeIDE软件下载安装汉化配置 

2.STM32CubeIDE工程建立 

主界面 

端口与配置界面

时钟设置界面

工程管理界面

编程界面


一:开发板和基础知识理论

1.开发板 

2.基础知识理论*

A:HAL库与标准库的关系
    HAL库
        CubeIDE图形化界面自动生成程序代码
        用户不需要了解底层库函数的原理,图形化配置
        官方主推HAL库+CubelDE开发环境,不断更新
    标准库
        用户自行复制/修改程序代码
        用户需要了解部分底层函数原理,以方便修改配置
        官方已停止更新,稳定性好


B:CubeIDE与KEIL软件的关系
    CubeIDE
        由ST公司开发,专用于自家的STM系列单片机
        只能用于STM32、STM8等ST的单片机开发
        集成了图形化界面、编辑器、编译器、仿真器
        集成度高,针对STM单片机有优化
        支持微软Windows/苹果macOS/Linux多系统
        #用CubelDE做HAL库开发:加载库文件、图形化配置、生成代码编辑编译、下载、仿真等功能都在CubeIDE内部无缝完成
    KEIL MDK
        由ARM公司开发,通用于所有ARM单片机
        可用于STM、AT等所有ARM单片机开发
        集成编辑器、编译器、仿真器,无图形界面·通用性强,无特别优化
        支持微软Windows
        #用KEIL做HAL库开发:加载库文件、图形化配置、生成代码在CubeMX完成编辑编译、下载、仿真在KEIL完成。不断切换多个软件


C:RCC时钟与延时函数
    1.RCC的时钟树
        1.1 内核与外设时钟
            SYSCLK时钟
            HCLK时钟
            FCLK时钟
            PCLK时钟
            ADC功能时钟
        1.2 独立时钟
            RTC时钟
            IWDG独立看门狗时钟
            FLASH编程时钟
            USB接口时钟
            MCO时钟输出:PA8接口被占用 先改成MCO模式——>进入System Core式——>RCC——>勾选Master Clock Output
    2.RCC的程序代码
        2.1 启动文件中的代码
            start_up_stm32fxxx.s文件
        2.2 CubeMX生成的代码
            main.c里面去跳转
        2.3 程序中如何修改时钟设置
            stm32fxxx_ex.h
    3. HAL库中的延时函数
        HAL_Delay (1);    //自定义时间

二:CubeMX图形化编程

1.设置时钟(心脏)

1.1 开启RCC功能 

禁用:Disable
旁路时钟源:BYPASS Clock Source
晶体与陶瓷振荡器:CrystalCeramic Resonator

1.2 开启RTC功能

1.3 配置时钟树

2.设置端口(五官四肢)

引脚模式设置 

 

 

3.工程编译和下载

1.编译工程
    1.1 生成代码:点击保存或者Device Configuration Tool Code Generation按钮
    1.2 编译设置:项目——>属性里面
    1.3 工程编译:点击锤子图标进行编译


2.程序下载
    2.1 Flymcu下载:使用USB串口下载,USB接口插入串口上
        a 连接到电脑的USB接口 连接到核心板的MicroUSB接口
        b 安装USB串回驱动的显示:没有就安装CH340驱动程序
        c Flymcu软件安装运行:点击要下载的.hex文件
               
    2.2 CubelDE仿真器下载
        a ST-LINK仿真器,连接到开发板的JTAG接口
        b USB连接到开发板MicroUSB接口进行供电
        c 设置JTAG模式:System Core——>SYS—>JTAG
        d 仿真器设置:点击运行——>运行配置——>STM32 Cortex-M C/C++ Application——>QC_TEST Debug——>调试器——>调试探头ST-LINK——>勾选SWD——>确定
        e 点击绿色运行按钮
        
    2.3 ST-LINK Utility软件下载:ST-LINK仿真器,连接到开发板的JTAG接口
        a 连接到电脑的USB接口 连接到核心板的MicroUSB接口
        b 打开Flymcu软件——>点击清除芯片
        c 打开Utility软件——>点击打开图标 选择.hex文件——>点击连接仿真器图标
        d 点击下载图标——>设置SWD——>点击OK——>勾选Reset ahtee peogroneing复位——>start


3.修改参数重新下载

ST-LINK 博主提供连接直接下载 提取码:1111 

编译设置

工程编译

 

三:HAL库的结构和使用

1.HAL库的整体结构 

1.HAL库的整体结构
    1.1 文件夹结构
        Core             存放着内核代码
            Inc:用于存敝各功能的h库文件
            Src(main.c):用于存敝各功能的c文件
            Starup:用于存放汇编语言的单片机启动文件

        Debug            存放着与仿真器调试相关的文件,里面有“.hex”文件

        Drivers          存放着HAL库和相关的驱动程序文件
            CMSIS:软件接口标准化文件(内核与硬件之间的底层协议)
                Device:STM32F1单片机的底层库文件
                Include:ARM内核与STM32F1单片机硬件之间的底层协议库文件
            STM32Fx_Driver:HAL库文件
                HAL库各功能的h文件
                HAL库各功能的c文件

        icode            存放"用户自建"的板级硬件驱动程序

        Middlewares      存放着与“中间件”相关的驱动程序文件

        USB_DEVICE       存放着USB从设备的驱动程序文件

        .project         CubeIDE工程的启动文件

        .ioc             CubeMX图形界面的启动文件



    1.2 HAL库文件结构
            用户应用程序
            功能驱动层HAL库(面向用户)
            芯片驱动层HAL库(中间层)
            底层HAL库(操作硬件寄存器)
            单片机硬件

2.HAL库的使用 

2.HAL库的使用
    2.1禁用HAL库的方法
        CubeMX图形化界面——>Project Manager工程管理——>Advanced Setting高级子选项卡——>勾选Do Not Generate Function

    2.2改用LL库的方法
        CubeMX图形化界面——>Project Manager工程管理——>Advanced Setting高级子选项卡——>顶部Driver Selector下面——>点击需要修改的功能(可选择HAL库或LL库)

 四:STM32CubeIDE(内含STM32CubeMX代码辅助工具)

1.STM32CubeIDE软件下载安装汉化配置 

下载:官网下载、博主提供连接直接下载 提取码:1111

汉化:汉化包地址

复制地址(举例):http://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/R0.19.2/2021-09/


添加汉化包:打开CubeIDE——>Help——>Install New Software——>Add——>复制上面的地址
            Babel Language Packs in Chinese (Simplified)——>勾选一个汉化包

2.STM32CubeIDE工程建立 

1.新建工程
    文件——>新建——>STM32 Project——>左边MCU/MPU Selector(单片机/微处理器选择器)——>下方Part Number(型号)的下拉列表中——>选择自己芯片的型号(比如STM32F103C8)
                               ——>在右边双击选中正确的型号和封装——>点击下一步
    输入工程名称——>去掉勾选Use default location——>设置自己的路径——>点击完成


2.安装HAL库(可能没有)
    下拉框中选中版本号(一般选择最新款)——>勾选第三个Copy only the necessary library files代码生成器——>点击完成——>点击是——>HAL库的安装过程(等待几分钟)
        在具链项目配置文件中添加要的库文件作创为引用
        将所有使用的库复制到项目文件夹t中
        只复制需要用到的库文件


3.图形界面
    3.1 端口与配置
    3.2 时钟设置
    3.3 工程管理
    3.4 工具
4.编程界面

主界面 

 

端口与配置界面

 

时钟设置界面

选项卡前出现红叉:有红色背景,表示频率超出范围

 

工程管理界面

 

 

编程界面

物联沃分享整理
物联沃-IOTWORD物联网 » STM32基于CubeIDE和HAL库入门学习笔记:基础知识理论与开发环境建立

发表评论