精华内容
下载资源
问答
  • 【STM32】HAL库 STM32CubeMX教程四---UART串口通信详解

    万次阅读 多人点赞 2019-08-11 08:57:51
    今天我们学习STM32CubeMX串口的操作,以及HAL库串口的配置,我们会详细的讲解各个模块的使用和具体功能,并且基于HAL库实现Printf函数功能重定向,UART中断接收,本系列教程将HAL库与STM32CubeMX结合在一起讲解,使...

    前言: 

    今天我们学习STM32CubeMX串口的操作,以及HAL库串口的配置,我们会详细的讲解各个模块的使用和具体功能,并且基于HAL库实现Printf函数功能重定向,UART中断接收,本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用

     

    所用工具

    1、芯片: STM32F407ZET6

    2、STM32CubeMx软件

    3、IDE: MDK-Keil软件

    4、STM32F1xx/STM32F4xxHAL库 

    5、串口: 使用USART1 PA9,PA10

    知识概括:

    通过本篇博客您将学到:

    STM32CubeMX创建串口例程

    HAL库UATR函数库

    重定义printf函数

    HAL库,UART中断接收

    HAL库UATR接收与发送例程

    工程创建

     

    1设置RCC

    • 设置高速外部时钟HSE 选择外部时钟源

    2设置串口

    • 1点击USATR1   
    • 2设置MODE为异步通信(Asynchronous)       
    • 3基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1      接收和发送都使能 
    • 4GPIO引脚设置 USART1_RX/USART_TX
    • 5 NVIC Settings 一栏使能接收中断

    3设置时钟

    我的是  外部晶振为8MHz 

    • 1选择外部时钟HSE 8MHz   
    • 2PLL锁相环倍频72倍
    • 3系统时钟来源选择为PLL
    • 4设置APB1分频器为 /2

    32的时钟树框图  如果不懂的话请看《【STM32】系统时钟RCC详解(超详细,超全面)》

     

    4项目文件设置

    • 1 设置项目名称
    • 2 设置存储路径
    • 3 选择所用IDE

    5创建工程文件

    然后点击GENERATE CODE  创建工程

    配置下载工具

    新建的工程所有配置都是默认的  我们需要自行选择下载模式,勾选上下载后复位运行

    HAL库UART函数库介绍

     

      UART结构体定义

    UART_HandleTypeDef huart1;

    UART的名称定义,这个结构体中存放了UART所有用到的功能,后面的别名就是我们所用的uart串口的别名,默认为huart1

    可以自行修改

    1、串口发送/接收函数

    • HAL_UART_Transmit();串口发送数据,使用超时管理机制 
    • HAL_UART_Receive();串口接收数据,使用超时管理机制
    • HAL_UART_Transmit_IT();串口中断模式发送  
    • HAL_UART_Receive_IT();串口中断模式接收
    • HAL_UART_Transmit_DMA();串口DMA模式发送
    • HAL_UART_Transmit_DMA();串口DMA模式接收

    这几个函数的参数基本都是一样的,我们挑两个讲解一下

    串口发送数据:

    HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)

    功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。

    参数:

    • UART_HandleTypeDef *huart      UATR的别名    如 :   UART_HandleTypeDef huart1;   别名就是huart1  
    • *pData      需要发送的数据 
    • Size    发送的字节数
    • Timeout   最大发送时间,发送数据超过该时间退出发送   
    举例:   HAL_UART_Transmit(&huart1, (uint8_t *)ZZX, 3, 0xffff);   //串口发送三个字节数据,最大传输时间0xffff

    中断接收数据:

    HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)

    功能:串口中断接收,以中断方式接收指定长度数据。
    大致过程是,设置数据存放位置,接收数据长度,然后使能串口接收中断。接收到数据时,会触发串口中断。
    再然后,串口中断函数处理,直到接收到指定长度数据,而后关闭中断,进入中断接收回调函数,不再触发接收中断。(只触发一次中断)

    参数:

    • UART_HandleTypeDef *huart      UATR的别名    如 :   UART_HandleTypeDef huart1;   别名就是huart1  
    • *pData      接收到的数据存放地址
    • Size    接收的字节数
    举例:    HAL_UART_Receive_IT(&huart1,(uint8_t *)&value,1);   //中断接收一个字符,存储到value中

    2、串口中断函数

     

    • HAL_UART_IRQHandler(UART_HandleTypeDef *huart);  //串口中断处理函数
    • HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);  //串口发送中断回调函数
    • HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);  //串口发送一半中断回调函数(用的较少)
    • HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);  //串口接收中断回调函数
    • HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);//串口接收一半回调函数(用的较少)
    • HAL_UART_ErrorCallback();串口接收错误函数

    串口接收中断回调函数:

    HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);  

    功能:HAL库的中断进行完之后,并不会直接退出,而是会进入中断回调函数中,用户可以在其中设置代码,

               串口中断接收完成之后,会进入该函数,该函数为空函数,用户需自行修改,

    参数:

    • UART_HandleTypeDef *huart      UATR的别名    如 :   UART_HandleTypeDef huart1;   别名就是huart1  
    举例:   HAL_UART_RxCpltCallback(&huart1){           //用户设定的代码               }

    串口中断处理函数

    HAL_UART_IRQHandler(UART_HandleTypeDef *huart);  

    功能:对接收到的数据进行判断和处理  判断是发送中断还是接收中断,然后进行数据的发送和接收,在中断服务函数中使用

     

    如果接收数据,则会进行接收中断处理函数

     /* UART in mode Receiver ---------------------------------------------------*/
      if((tmp_flag != RESET) && (tmp_it_source != RESET))
      { 
        UART_Receive_IT(huart);
      }
    

    如果发送数据,则会进行发送中断处理函数

      /* UART in mode Transmitter ------------------------------------------------*/
      if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
      {
        UART_Transmit_IT(huart);
        return;
      }

    3串口查询函数

      HAL_UART_GetState();  判断UART的接收是否结束,或者发送数据是否忙碌

      举例:     

    while(HAL_UART_GetState(&huart4) == HAL_UART_STATE_BUSY_TX)   //检测UART发送结束

     

    USART接收与发送

     

    重新定义printf函数

    • 在 stm32f4xx_hal.c中包含#include <stdio.h>
    #include "stm32f4xx_hal.h"
    #include <stdio.h>
    extern UART_HandleTypeDef huart1;   //声明串口
    • 在 stm32f4xx_hal.c 中重写fget和fput函数
    • /**
        * 函数功能: 重定向c库函数printf到DEBUG_USARTx
        * 输入参数: 无
        * 返 回 值: 无
        * 说    明:无
        */
      int fputc(int ch, FILE *f)
      {
        HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
        return ch;
      }
      
      /**
        * 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
        * 输入参数: 无
        * 返 回 值: 无
        * 说    明:无
        */
      int fgetc(FILE *f)
      {
        uint8_t ch = 0;
        HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
        return ch;
      }
      
      在main.c中添加
     #define RXBUFFERSIZE  256
    char RxBuffer[RXBUFFERSIZE]; 
    
      while (1)
      {
        /* USER CODE END WHILE */
    			printf("Z小旋测试\n");
    			HAL_Delay(1000);
        /* USER CODE BEGIN 3 */
      }

    之后便可以使用Printf函数和Scanf,getchar函数

    UART接收中断

    因为中断接收函数只能触发一次接收中断,所以我们需要在中断回调函数中再调用一次中断接收函数

    具体流程:

    1、初始化串口

    2、在main中第一次调用接收中断函数

    3、进入接收中断,接收完数据  进入中断回调函数

    4、修改HAL_UART_RxCpltCallback中断回调函数,处理接收的数据,

    5  回调函数中要调用一次HAL_UART_Receive_IT函数,使得程序可以重新触发接收中断

    函数流程图:

    HAL_UART_Receive_IT(中断接收函数   ->  USART2_IRQHandler(void)(中断服务函数)    ->    HAL_UART_IRQHandler(UART_HandleTypeDef *huart)(中断处理函数)    ->    UART_Receive_IT(UART_HandleTypeDef *huart) (接收函数)   ->    HAL_UART_RxCpltCallback(huart);(中断回调函数)

    HAL_UART_RxCpltCallback函数就是用户要重写在main.c里的回调函数。

    代码实现:

        并在main.c中添加下列定义:

    #include <string.h>
    
    #define RXBUFFERSIZE  256     //最大接收字节数
    char RxBuffer[RXBUFFERSIZE];   //接收数据
    uint8_t aRxBuffer;			//接收中断缓冲
    uint8_t Uart1_Rx_Cnt = 0;		//接收缓冲计数
    

    在main()主函数中,调用一次接收中断函数

    /* USER CODE BEGIN 2 */
    	HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);
    /* USER CODE END 2 */
    

    在main.c下方添加中断回调函数

    /* USER CODE BEGIN 4 */
    
    void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
    {
      /* Prevent unused argument(s) compilation warning */
      UNUSED(huart);
      /* NOTE: This function Should not be modified, when the callback is needed,
               the HAL_UART_TxCpltCallback could be implemented in the user file
       */
     
    	if(Uart1_Rx_Cnt >= 255)  //溢出判断
    	{
    		Uart1_Rx_Cnt = 0;
    		memset(RxBuffer,0x00,sizeof(RxBuffer));
    		HAL_UART_Transmit(&huart1, (uint8_t *)"数据溢出", 10,0xFFFF); 	
            
    	}
    	else
    	{
    		RxBuffer[Uart1_Rx_Cnt++] = aRxBuffer;   //接收数据转存
    	
    		if((RxBuffer[Uart1_Rx_Cnt-1] == 0x0A)&&(RxBuffer[Uart1_Rx_Cnt-2] == 0x0D)) //判断结束位
    		{
    			HAL_UART_Transmit(&huart1, (uint8_t *)&RxBuffer, Uart1_Rx_Cnt,0xFFFF); //将收到的信息发送出去
                while(HAL_UART_GetState(&huart1) == HAL_UART_STATE_BUSY_TX);//检测UART发送结束
    			Uart1_Rx_Cnt = 0;
    			memset(RxBuffer,0x00,sizeof(RxBuffer)); //清空数组
    		}
    	}
    	
    	HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);   //再开启接收中断
    }
    /* USER CODE END 4 */
    

    发送数据被正常返回

     

     

    展开全文
  • STM32CubeMX介绍、下载与安装

    万次阅读 多人点赞 2016-08-16 22:52:55
    推荐 分享一个大神的人工智能教程。...本教程今年更新了部分内容:STM32CubeMX系列教程 Ⅰ、写在前面 相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32比较流行的一个工具。这个工具从两年...

    推荐

    分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang

     

    本教程今年更新了部分内容:STM32CubeMX系列教程
     

     

     

    Ⅰ、写在前面

    相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32比较流行的一个工具。这个工具从两年前第一版到现在已经有多个版本了,功能也从简单越来越强大了。

     

    STM32CubeMX是一个配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层、中间层、示例代码等。

     

    现在ST公司升级和维护的库主要就是STM32CubeMX的HAL库和标准外设库,使用这两种库开发STM32各有各的好处,下面简单描述一下。

     

    如果你是一名刚学STM32的初学者,想要把硬件底层相关的东西搞明白,不建议使用STM32CubeMX这个工具,建议使用之前经典的标准外设库来开发(先学习标准外设库,但有必要抽时间了解STM32CubeMX)。标准外设库可以很简单直接跟踪到底层寄存器,而HAL库里面的代码想要跟踪并理解底层很难。

    如果你是一名熟练使用标准外设库的人,有必要学习并使用STM32CubeMX来开发程序。

     

    本文内容2016年10月31日更新,且整理成PDF文件,提供给大家下载:

    http://pan.baidu.com/s/1geB5TLp

     

    更多关于STM32的文章,可以进入我博客查看:

    http://blog.csdn.net/ybhuangfugui

     

    作者:strongerHuang

    本文版权所有,未经允许,禁止用于其它商业用途!!!

     

    Ⅱ、STM32CubeMX的介绍

    STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器(STM32 configuration and initialization C code generation),也就是自动生成开发初期关于芯片相关的一些初始化代码。

    从上图可以看得出,它包含了STM32所有系列的芯片,包含示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer)。

     

    STM32CubeMX的特性如下

    1.直观的选择 STM32 微控制器。

    2.微控制器图形化配置:

    l 自动处理引脚冲突

    l 动态设置确定的时钟树

    l 可以动态确定参数设置的外围和中间件模式和初始化

    l 功耗预测

    3.C代码工程生成器覆盖了STM32 微控制器初始化编译软件,如IAR、KEIL、GCC。

    4.可独立使用或作为 Eclipse 插件使用。

     

    STM32CubeMX是ST意法半导体的主动原创工具,它可以减轻开发的时间和费用。STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。这个平台包括 STM32Cube HAL(一个 STM32 的抽象层集成软件,确保STM32 系列最大的移植性)。再加上兼容的一套中间件(RTOS、USB、TCP/IP 和图形),所有内嵌软件组件附带了全套例程。

     

    更多关于STM32CubeMX介绍可以进入ST官网查看。

     

    Ⅲ、下载

    JRESTM32CubeMX工具可以到官网下载,也可以在我的百度网盘下载(定期更新)。下面章节讲述的安装也是从官方下载的软件,为了方便大家下载,我将其上传至百度网盘(和官网的一样)。

     

    1.Oracle官方下载JRE

    由于STM32CubeMX软件是基于JAVA环境运行的,所以需要安装JRE才能使用,目前(2016年10月31日)JRE最新版本是jre1.8.0_112。

     

    TM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。

     

    http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

     

    接受许可,根据自己电脑系统选择下载(我们以Windows版本为例),如下图:

     

    2.ST官方下载STM32CubeMX工具、库

     

    官网可以下载最新版本的软件,目前(2016年10月31日)STM32CubeMX官方最新版本是V4.17.0。

    STM32CubeMX工具、库都在同一个网址下:

     

    http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

     

    A、STM32CubeMX工具

     

    【在网页最下面(如下图),点击网页中“Download”即可下载。(如果没有登录账号会提示“注册”或“登录”)】

     

    B、库下载

    【在网页中间偏下(如下图),点击“EMBEDDED SOFTWARE”切换到库软件,选择需要下载的库(看你芯片型号),同样也需要登陆账号,若觉得麻烦,可以在下面百度网盘下载】

     

    3.百度网盘下载

    ST官方下载资料或文档需要ST账号登陆成功才能下载,若觉得麻烦可以在我百度网盘下载(定期更新)。为了方便大家下载,我在百度网盘提供下载的版本也是上面官网下载,上传至百度网盘。里面包含STM32CubeMX软件

     

    JRE:http://pan.baidu.com/s/1cML4Hg

    STM32CubeMX工具:http://pan.baidu.com/s/1dFMFwHF

    STM32CubeMX资料:http://pan.baidu.com/s/1nvcxQC5

     

    注意:由于许多网盘近年来受到影响都相继停止服务或关闭了,如果网盘链接失效,请到官网下载,也可以关注微信公众号查看更新链接,或微信联系作者。

     

    Ⅳ、JRE的安装

    STM32CubeMX手册上要求PC安装JRE:

    The Java Run Time Environment 1.7 (version 1.7_45 or newer) must be installed. More information on installation requirements and procedure is in the STM32CubeMX User manual (UM1718).

    For Eclipse plug-in installation only, install one of the following IDE (on Windows OS):

    • Eclipse IDE Juno (4.2)

    • Eclipse IDE Luna (4.4)

    • Eclipse IDE Kepler (4.3)

    • Eclipse IDE Mars (4.5)

     

    JRE安装非常简单,以上面下载的最新版本“jre-8u112-windows-i586.exe”为例讲述一下安装过程:

     

    1.双击“jre-8u112-windows-i586.exe”(有管理员限制时:右键 -> 以管理员身份运行),点击“安装”。

    【不更改目标文件夹,则默认安装在:C:\Program Files\Java\jre1.8.0_112】

     

    2.等待安装

     

    3.安装完成,点击“关闭”

     

     

    Ⅴ、STM32CubeMX的安装

     

    现在(2016年10月31日)最新版本的STM32CubeMX是V4.17.0,支持安装的系统如下:

    Windows XP: 32-bit (x86)

    Windows 7: 32-bit (x86), 64-bit (x64)

    Windows 8: 32-bit (x86), 64-bit (x64)

    Linux: 64-bit (x64) (tested on RedHat, Ubuntu and Fedora)

    Mac OS X Yosemite or newer

     

    安装STM32CubeMX很简单,基本上一路“Next”下去就行了。

    以现在最新版本V4.17.0,安装在Windows系统为例来讲述安装过程。

     

    1.解压下载的文件,双击“SetupSTM32CubeMX-4.17.0.exe”(有管理员限制时:右键 -> 以管理员身份运行)

     

    2.点击“Next”

     

    3.选择“I accept the terms...”,点击“Next”

     

    4.选择安装路径(这里修改D盘),点击“Next”

     

    5.提示创建安装目录,点击“确定”

     

    6.勾选快捷方式,点击“Next”

     

    7.等待安装进度完成,点击“Next”

     

    8.点击“Done”,至此已经完成STM32CubeMX的安装

     

    以上就是安装STM32CubeMX到Windos的过程,关于Linux和MacOS系统的安装过程比较简单(这里不再讲述),可以参看官网提供的说明。

    On Linux

    Make sure you have access rights to the target installation directory, you can run the installation as root (or sudo)? to install STM32CubeMX on shared directories Double click (or launch from the console window) on the SetupSTM32CubeMX-4.17.0.linux file

     

    On MacOS

    Make sure you have access rights to the target installation directory, you can run the installation as root (or sudo)? to install STM32CubeMX on shared directories Double click (or launch from the console window) on the SetupSTM32CubeMX-4.17.0 application

     

     

    Ⅵ、STM32CubeMX库的安装

    STM32CubeMX库(固件支持包)的安装方式有三种:通过STM32CubeMX软件在线安装导入离线包解压离线包

     

    1.在线安装

    打开安装好的STM32CubeMX软件,进入库管理界面(Help -> Install New Libraries),会有一个列表,勾选上你要安装的固件库,点击“Install Now”直到安装成功。如下图:

     

     

    2.导入本地离线包

    下载好需要安装的离线包(也就是上面章节下载的库),在库管理界面(Help -> Install New Libraries),点击左下角的“From Local” -> 弹出文件选择框(选择下载的离线包文件),点击“Open”,进入解压安装过程,直到安装完成。如下图:

     

    3.解压离线包

    解压离线包(库)是最方便的安装方式,这里重要的一点就是需要知道前面安装STM32CubeMX工具指定库的路径

     

    查看库安装路径的方法:

    Help -> Updater Settings可以看到库指定路径。

    默认路径是 C:/Users/Administrator/STM32Cube/Repository,如下图:

     

    解压源文件过程就不说了,注意文件名需要匹配才行(打开压缩文件里面的名称),如下图:

     

    Ⅶ、说明

    STM32CubeMX工具可以说是开发STM32必备的一个工具,如果你还没有了解STM32CubeMX工具,建议花一点时间学习一下这个工具,它或许是今后开发STM32的主流工具。

     

    以上内容仅供参考,若有不对之处,敬请谅解。

     

    Ⅷ、最后

    我的网站:https://www.strongerhuang.com

    我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

     

    微信公众号
    展开全文
  • 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯 面向初学者 如果您想着快速实现工程的创建,可以直接...

    前言

    在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯  面向初学者   如果您想着快速实现工程的创建,可以直接跳过功能介绍,观看工程创建一栏 

    并且,在新建工程时,我们分为了具体流程1~7 如果您不想看每部分的讲解,直接按照流程操作即可,5分钟即可成功点亮LED灯

    安装STM32CubeMx请参看《STM32 CubeMx使用教程一--安装教程》

    前期准备:

    1、STM32硬件(我的是STM32F407ZE和STM32F103ZE)

    2、STM32CubeMx软件、 IDE   Keil(MDK-ARM)软件

    3、STM32F4xxHAL库   

    新建工程

    1在主界面选择File-->New Project   或者直接点击ACCEE TO MCU SELECTOR   

     

    出现芯片型号选择  一般我们直接搜索自己芯片的型号即可   

     如果你是设计产品想要选择一款芯片  在搜索栏的下面,提供的各种查找方式,可以选择芯片内核,型号,等等,帮助你找到适合的芯片

    具体流程1:

    • 1 搜索芯片型号
    • 2选择芯片
    • 3创建工程

    那么接下来就是我们整个流程的重头戏了

    这里我们分成三大块来讲解

    1MCU外设资源选择

    在这里可以选择MCU的各种资源和外设

    提供两种方式

    • Categories  种类选择

    将MCU的各种外设和资源分类,供用户选择使用

    • A-Z  顺序选择

    MCU的外设资源按A-Z 排序,供用户选择使用

    2外设配置

    这里可以设置你所选择外设的各种功能

    这里以串口1为例   我们可以选择串口的模式(异步,同步,半双工)   串口接收中断,和串口DMA传输等等

    和我们配置库函数的时候基本一样,但是  STM32CubeMx将这些转换为了图形和选项  ,我们配置的时候不用再去配置各种东西,只需要傻瓜式操作便可以配置我们需要的外设   这便是CubeMx的核心所在

    3预览界面

    这里分为引脚预览系统预览

    引脚预览就是可以查看那个引脚配置了什么功能,和各个引脚位置  

     

    随便点击一个引脚,即可设置该引脚的各种功能

     

          这种颜色表示不可配置引脚  电源专用引脚以黄色突出显示。其配置不能更改

    这种颜色表示你配置了一个I/O口的功能,但是没有初始化相对应的外设功能  引脚处于no mode 状态  

     

      绿色表示配置成功

     

    系统预览

    系统预览就是查看配置的各种外设和GPIO的状态 

    表示没有问题

    表示警告,对应配置出现问题  点击该选项即可外设配置界面查看

     

    具体各个功能的配置(UATR/DMA/ADC/TIM...)我们再接下来的文章会一一讲解,这里就不再过多介绍了

    具体流程2:

    这里只需要把我们的LED对应引脚设置为GPIO_Output即可

    2时钟源设置

    其实也就是32的时钟树框图让你配置  默认时钟是使用内部RC振荡器(HSI) 

    如果不懂的话请看《【STM32】系统时钟RCC详解(超详细,超全面)》

    具体流程3:

    或者先按照图中方式配置为72MHz即可

     

    •  需要配置RCC才能够使用外部时钟源

    3.工程管理

    设置完MCU的各个配置之后,第三个就是工程文件的设置了

    具体流程4:

    这里就是工程的各种配置 我们只用到有限几个,其他的默认即可  IDE我们使用的是 MDK5

    • 存储目录不可以有中文

    然后点击Code Generator,进行进一步配置   (重点)

    将HAL库的所有.C和.H都复制到所建工程中 

    优点:这样如果后续需要新增其他外设又可能不再用STM32CubeMX的时候便会很方便

    缺点: 体积大,编译时间长(很长)

    只复制所需要的.C和.H   (推荐)

    优点:体积相对小,编译时间短,并且工程可复制拷贝

    缺点: 新增外设时需要重新用STM32CubeMX导入   

    不复制文件,直接从软件包存放位置导入.C和.H 

    优点:体积小,比较节约硬盘空间

    缺点: 复制到其他电脑上或者软件包位置改变,就需要修改相对应的路径   

    自行选择方式即可

    具体流程5:

    然后点击GENERATE CODE  创建工程

    创建成功,打开工程

    具体流程6:while循环添加下面两行代码即可

        HAL_Delay(500);
        HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_15);

    配置下载工具

    具体流程7:

    新建的工程所有配置都是默认的  我们需要自行选择下载模式,勾选上下载后复位运行

    所有自己编写的代码请放在/* USER CODE BEGIN XXX */   /* USER CODE END XXX */之间 

     这样我们修改工程的时候你自己写的代码就不会被删除

     

    到此,STM32CubeMX的基本使用介绍完了 ,接下来会更新CubeMX和HAL库配置STM32的UART ADC DMA 定时器 PWM 等等 

    展开全文
  • CubeMX FreeRtos

    2019-12-20 20:17:29
  • CUBEMX教程

    2018-08-25 10:44:41
    如果你是一名STM32的初学者,不建议使用STM32CubeMX开发,建议使用标准库开发熟悉后学STM32CubeMX和HAL库开发。如果你是一名熟练使用标准库开发的高手,非常有必要学习STM32CubeMX和HAL库来开发项目,熟悉使用后开发...
  • STM32CubeMX

    2021-01-08 22:56:10
    STM32CubeMX
  • 【STM32】STM32 CubeMx使用教程一--安装教程

    万次阅读 多人点赞 2019-08-09 09:01:48
    一、STM32CubeMX 简介 1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高...
  • 【STM32】HAL库 STM32CubeMX系列学习教程

    万次阅读 多人点赞 2020-02-07 09:15:30
    STM32CubeMX 简介 1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高...
  • cubeMX学习

    2020-07-07 13:17:43
    目录CubeMx的使用新的工程 CubeMx的使用 这是第一次使用cubeMX这款软件 新的工程
  • 【STM32】HAL库 STM32CubeMX教程六----定时器中断

    万次阅读 多人点赞 2019-08-13 09:10:04
    是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片:...
  • stm32cubemx

    2018-09-18 17:12:23
    stm32cubemx安装包,cubemx是一款配置STM32的工具,把很多库文件封装的比较好
  • Cubemx系列教程

    2019-03-31 19:11:19
    Cubemx系列教程大全,非常详细的入门教程
  • CubeMx中文说明.pdf

    2021-03-29 14:23:53
    CubeMx中文说明
  • STM32CubeMX工程模板

    2020-09-12 16:54:47
    STM32CubeMX工程Demo;STM32CubeMX工程Demo;STM32CubeMX工程Demo;
  • 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6/ STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/...
  • stm32cubemx 6.2.1

    2021-04-01 21:35:53
    en.stm32cubemx-win_v6-2-1
  • stm8 cubemx

    2017-06-08 09:44:05
    STM8 CUBEMX 1.10, 2017年6月最新版本
  • STM32CubeMX 5.0.0

    2018-11-21 10:01:34
    介绍STM32CubeMX 5.0.0 STM32CubeMX是32位ARM®Cortex®STM32微控制器的图形工具。它是STMCube“计划的一部分,既可以作为独立应用程序使用,也可以作为集成开发环境(IDE)集成的Eclipse插件使用 .STM32CubeMX具有...
  • STM32CubeMX学习教程之五:PWM实现呼吸灯效果

    万次阅读 多人点赞 2018-03-29 22:12:33
    完整源码下载: ... 软件: ...STM32CubeMX V4.25.0 System Workbench V2.4 固件库版本: STM32Cube FW_F1 V1.6.1 硬件: OneNet 麒麟座V2.3 在STM32CubeMX中新建项目,选择正确的MCU型号 ...
  • stm32cubemx教程

    2018-09-10 09:42:41
    stm32cubemx教程,如何使用stm32cubemx的一个基本操作
  • STM32CubeMX.zip

    2021-03-26 13:43:22
    STM32CubeMX.zip
  • CubeMX】使用CubeMX创建KEIL工程

    千次阅读 2020-08-04 14:42:01
    这次使用了一款高性价比的F405系列的单片机,决定使用CubeMX完成初始化代码的配置。 目录 1 打开CubeMX新建一个工程 2 选择工程所使用的芯片 3 设置好工程的相关参数 4 时钟配置 5 外设设置 6 生成代码 1 ...
  • CubeMX_Control-源码

    2021-03-26 20:17:52
    “#CubeMX_Control”
  • CUBEMX+CANOPEN教程一:实现cubemx工程配置以及实现串口不定长度收发-附件资源

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,151
精华内容 3,660
关键字:

cubemx