精华内容
下载资源
问答
  • stm32 hal库

    2018-06-21 16:45:30
    stm32hal库使用过程,很简单的到官网下载cubemx ,然后自动加载库
  • STM32 HAL库

    2020-03-18 20:31:10
    STM32 HAL库 STM32Cube_FW_F1_V1.8.0 链接:https://pan.baidu.com/s/1OxI0HhQ4gTN_Hv2isjuZHg 提取码:y22d

    1.下载地址

    链接: STM32Cube_FW_F1_V1.8.0
    提取码:y22d

    2.内容介绍

    解压下载好的STM32Cube_FW_F1_V1.8.0.zip,解压好的目录结构如下图所示:
    在这里插入图片描述
    推荐教程:
    STM32CubeMX介绍、下载与安装

    展开全文
  • Stm32 HAL库

    2021-05-08 13:47:36
    STM32CubeMX是ST意法半导体的主动原创工具,它可以减轻开发的时间和费用。 STM32CubeMX集成了一个全面的软件平台,支持STM32每一个系列的MCU开发。...STM32CubeMX可直接创建HAL库工程,我使用的STM32CubeMX版本4.20.0。

    Stm32 HAL库

    关键词: STM32 STM32CubeMX HAL

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

    STM32CubeMX可直接创建HAL库工程,我使用的STM32CubeMX版本4.20.0。

    主要内容:

    创建一个HAL库工程

    • STM32CubeMax 创建工程
    • 简单介绍HAL库 工程目录
    • 使用HAL库点灯

    文档参考:

    最新地址: https://taotaodiy-mcu.readthedocs.io/en/latest/pcb/project_hal.html

    stm32CubeMAX下载

    STM32CubeMax 创建工程

    打开软件,点击New Project,创建工程

    stm32CubeMAX创建工程

    选择我们MCU,stm32f103c8t6,48引脚。

    stm32CubeMAX创建工程

    使能PC13,配置成GPIO_Output模式。

    stm32CubeMAX创建工程

    填写工程名,工程目录,并生成工程

    stm32CubeMAX创建工程

    使用Keil5,打开工程直接编译。

    stm32CubeMAX创建工程

    HAL库 工程目录

    HAL库工程模板
    点击下载

    STM32F103C8T6_FWL
    ├── 0-STM32F103C8T6_HAL.ioc
    ├── Drivers
    │   ├── CMSIS
    │   │   ├── Device
    │   │   │   └── ST
    │   │   │       └── STM32F1xx
    │   │   │           ├── Include
    │   │   │           └── Source
    │   │   │               └── Templates
    │   │   │                   ├── arm
    │   │   │                   ├── gcc
    │   │   │                   ├── iar
    │   │   │                   │   ├── linker
    │   │   │                   └── system_stm32f1xx.c
    │   │   ├── DSP_Lib
    │   │   │   └── Source
    │   │   │       ├── BasicMathFunctions
    │   │   │       ├── CommonTables
    │   │   │       │   ├── arm_common_tables.c
    │   │   │       │   └── arm_const_structs.c
    │   │   │       ├── ComplexMathFunctions
    │   │   │       ├── ControllerFunctions
    │   │   │       ├── FastMathFunctions
    │   │   │       ├── FilteringFunctions
    │   │   │       ├── MatrixFunctions
    │   │   │       ├── StatisticsFunctions
    │   │   │       ├── SupportFunctions
    │   │   │       └── TransformFunctions
    │   │   ├── Include
    │   │   └── RTOS
    │   │       └── Template
    │   │           └── cmsis_os.h
    │   └── STM32F1xx_HAL_Driver
    │       ├── Inc
    │       │   ├── Legacy
    │       └── Src
    ├── Inc
    ├── keilkilll.bat
    ├── MDK-ARM
    │   ├── 0-STM32F103C8T6_HAL
    │   │   └── 0-STM32F103C8T6_HAL.sct
    │   ├── 0-STM32F103C8T6_HAL.uvprojx
    │   ├── RTE
    │   │   └── _0-STM32F103C8T6_HAL
    │   │       └── RTE_Components.h
    │   └── startup_stm32f103xb.s
    ├── README.md
    └── Src
       ├── main.c
       ├── stm32f1xx_hal_msp.c
       ├── stm32f1xx_it.c
       └── system_stm32f1xx.c
    

    HAL库 点灯

    HAL库点灯
    点击下载

    修改main.c,在while里面添加如下代码。

    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
    HAL_Delay(1000);
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
    HAL_Delay(1000);
    

    编译下载,会看到led闪烁。

    原文链接

    https://taotaodiy-mcu.readthedocs.io/en/latest/pcb/project_hal.html

    展开全文
  • STM32HAL库 F103.rar

    2021-02-08 16:18:40
    HAL库 CUBEMX STM32HAL库编程必备
  • stm32 HAL库 例程

    2018-07-10 15:00:50
    stm32HAL库各种基础例程,可直接使用。
  • stm32 hal库的例程

    2018-08-12 21:21:29
    stm32 hal库的例程, YONG用HALL实现更加方便 大势所趋
  • STM32 HAL库详解

    万次阅读 多人点赞 2019-09-02 14:15:38
    STM32 HAL库整体总结 STM32 之二 HAL库详解 及 手动移植 本篇博客是对以上参考资源的一个二次总结与整理。 1. HAL库文件结构 对于开发人员而言,首先要清楚 HAL 库的文件结构。 根据文件类型可认为以下两大类: 库...

    STM32 HAL库整体总结

    STM32 之二 HAL库详解 及 手动移植

    本篇博客是对以上参考资源的一个二次总结与整理。

    1. HAL库文件结构

    对于开发人员而言,首先要清楚 HAL 库的文件结构。

    根据文件类型可认为以下两大类:

    库文件:
    	stm32f2xx_hal_ppp.c/.h			// 主要的外设或者模块的驱动源文件,包含了该外设的通用API
    	stm32f2xx_hal_ppp_ex.c/.h		// 外围设备或模块驱动程序的扩展文件。这组文件中包含特定型号或者系列的芯片的特殊API。以及如果该特定的芯片内部有不同的实现方式,则该文件中的特殊API将覆盖_ppp中的通用API。
    	stm32f2xx_hal.c/.h				// 此文件用于HAL初始化,并且包含DBGMCU、重映射和基于systick的时间延迟等相关的API
    	其他库文件
    用户级别文件:
    	stm32f2xx_hal_msp_template.c	// 只有.c没有.h。它包含用户应用程序中使用的外设的MSP初始化和反初始化(主程序和回调函数)。使用者复制到自己目录下使用模板。
    	stm32f2xx_hal_conf_template.h	// 用户级别的库配置文件模板。使用者复制到自己目录下使用
    	system_stm32f2xx.c				// 此文件主要包含SystemInit()函数,该函数在刚复位及跳到main之前的启动过程中被调用。 **它不在启动时配置系统时钟(与标准库相反)**。 时钟的配置在用户文件中使用HAL API来完成。
    	startup_stm32f2xx.s				// 芯片启动文件,主要包含堆栈定义,终端向量表等
    	stm32f2xx_it.c/.h				// 中断服务函数的相关实现
    	main.c/.h						//
    

    与我们密切相关的有

    • 主函数: main.c/.h
    • MSP初始化: stm32f2xx_hal_msp_template.c
    • 中断服务函数: stm32f2xx_it.c/.h

    2. HAL库用户代码

    HAL 库对底层进行了抽象,在此结构下,用户代码处理可分为三大部分:

    • 句柄
    • MSP
    • 回调函数

    关于这三点,也可参考这里进行理解,

    1、关于句柄

    HAL库在结构上,对每个外设抽象成了一个称为ppp_HandleTypeDef的结构体,其中ppp就是每个外设的名字。

    与标准库中的结构体相比,HAL 库中的结构体包含了其可能出现的所有定义,比如用户想要使用ADC,只要定义一个ADC_HandleTypeDef的全局变量,针对不同的应用场景配置不同结构体成员就可以满足使用要求。

    2、MSP
    MSP(MCU Specific Package,单片机的具体方案),是指和MCU相关的初始化

    初始化函数包含的内容可分为两部分:

    • 一部分是与MCU无关的,通信协议;
    • 一部分是与MCU相关的,引脚功能。

    这里可以结合博主关于串口的说明USART and UART进行理解。

    以串口为例,在 MX_USART1_UART_Init(void) 函数中初始化串口的波特率、停止位、奇偶校验等,这部分代码是与串口协议相关的,并未涉及到具体的引脚,因此与 MCU 是无关的,是抽象的。

    static void MX_USART1_UART_Init(void)
    {
    
      huart1.Instance = USART1;
      huart1.Init.BaudRate = 115200;  
      huart1.Init.WordLength = UART_WORDLENGTH_8B;
      huart1.Init.StopBits = UART_STOPBITS_1;
      huart1.Init.Parity = UART_PARITY_NONE;
      huart1.Init.Mode = UART_MODE_TX_RX;
      huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
      huart1.Init.OverSampling = UART_OVERSAMPLING_16;
      huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
      huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
      if (HAL_UART_Init(&huart1) != HAL_OK)
      {
        _Error_Handler(__FILE__, __LINE__);
      }
        __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
    
    }
    

    stm32f0xx_hal_msp.c 文件中的 HAL_UART_MspInit(UART_HandleTypeDef* huart) 函数中将串口所时用的 MCU 引脚模式进行配置,这部分是与 MCU 具体相关的。

    void HAL_UART_MspInit(UART_HandleTypeDef* huart)
    {
      // 关于 GPIO 引脚初始化的流程与上面介绍的“四步”相同
      GPIO_InitTypeDef GPIO_InitStruct;
      if(huart->Instance==USART2)   // USART 2
      {
      /* USER CODE BEGIN USART2_MspInit 0 */
    
      /* USER CODE END USART2_MspInit 0 */
        /* Peripheral clock enable */
        __HAL_RCC_USART2_CLK_ENABLE(); // 使能串口时钟
      
        /**USART2 GPIO Configuration    
        PA2     ------> USART2_TX
        PA3     ------> USART2_RX 
        */
        GPIO_InitStruct.Pin = USART2_TX_Pin|USART2_RX_Pin;  // 收发引脚
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;  // 复用推挽输出
        GPIO_InitStruct.Pull = GPIO_NOPULL;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
        GPIO_InitStruct.Alternate = GPIO_AF1_USART2;  // 复用功能配置
        HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);  // 结构体初始化
    
        /* USART2 DMA Init */    // DMA 方式收发初始化
        /* USART2_RX Init */
        hdma_usart2_rx.Instance = DMA1_Channel3;
        hdma_usart2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
        hdma_usart2_rx.Init.PeriphInc = DMA_PINC_DISABLE;
        hdma_usart2_rx.Init.MemInc = DMA_MINC_ENABLE;
        hdma_usart2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
        hdma_usart2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
        hdma_usart2_rx.Init.Mode = DMA_NORMAL;
        hdma_usart2_rx.Init.Priority = DMA_PRIORITY_LOW;
        if (HAL_DMA_Init(&hdma_usart2_rx) != HAL_OK)
        {
          _Error_Handler(__FILE__, __LINE__);
        }
    
        __HAL_DMA1_REMAP(HAL_DMA1_CH3_USART2_RX);
    
        __HAL_LINKDMA(huart,hdmarx,hdma_usart2_rx);
    
        /* USART2_TX Init */
        hdma_usart2_tx.Instance = DMA1_Channel4;
        hdma_usart2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
        hdma_usart2_tx.Init.PeriphInc = DMA_PINC_DISABLE;
        hdma_usart2_tx.Init.MemInc = DMA_MINC_ENABLE;
        hdma_usart2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
        hdma_usart2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
        hdma_usart2_tx.Init.Mode = DMA_NORMAL;
        hdma_usart2_tx.Init.Priority = DMA_PRIORITY_LOW;
        if (HAL_DMA_Init(&hdma_usart2_tx) != HAL_OK)
        {
          _Error_Handler(__FILE__, __LINE__);
        }
    
        __HAL_DMA1_REMAP(HAL_DMA1_CH4_USART2_TX);
    
        __HAL_LINKDMA(huart,hdmatx,hdma_usart2_tx);
    
        /* USART2 interrupt Init */
        HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
        HAL_NVIC_EnableIRQ(USART2_IRQn);
      /* USER CODE BEGIN USART2_MspInit 1 */
    
      /* USER CODE END USART2_MspInit 1 */
      }
    }
    

    3、回调函数
    在标准库中,串口中断了以后,我们要先在中断中判断是否是接收中断,然后读出数据,顺便清除中断标志位,然后再是对数据的处理。这样如果我们在一个中断函数中写这么多代码,就会显得很混乱。

    而在HAL库中,以GPIO为例,进入中断后,直接由HAL库中断函数HAL_GPIO_EXTI_IRQHandler() 进行托管。
    而该函数主要完成两项任务:

    • 清除中断标志位
    • 调用回调函数处理中断
    // EXIT 外部中断服务函数
    void EXTI0_1_IRQHandler(void)
    {
      HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_10);
    }
    
    
    // HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_10)函数如下
    void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
    {
      /* EXTI line interrupt detected */
      if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) 
      { 
        __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
        HAL_GPIO_EXTI_Callback(GPIO_Pin);
      }
    }
    

    在回调函数内对中断进行处理,这种方式增强了代码的逻辑性,但也增加了文件的嵌套程度。

    3. HAL库编程方式

    在 HAL 库中对外设模型进行了统一,支持三种编程方式:

    • 轮询模式/阻塞模式
    • 中断方式
    • DMA模式

    以IIC为例,三种编程模式对应的函数如下:

    1、轮询模式/阻塞模式

    HAL_I2C_Master_Transmit()HAL_I2C_Master_Receive()HAL_I2C_Slave_Transmit()HAL_I2C_Slave_Receive()
    HAL_I2C_Mem_Write()HAL_I2C_Mem_Read()HAL_I2C_IsDeviceReady()
    

    2、中断模式

    HAL_I2C_Master_Transmit_IT()HAL_I2C_Master_Receive_IT()HAL_I2C_Slave_Transmit_IT()
    HAL_I2C_Slave_Receive_IT()HAL_I2C_Mem_Write_IT()HAL_I2C_Mem_Read_IT()
    

    3、DMA模式

    HAL_I2C_Master_Transmit_DMA()HAL_I2C_Master_Receive_DMA()HAL_I2C_Slave_Transmit_DMA()HAL_I2C_Slave_Receive_DMA()HAL_I2C_Mem_Write_DMA()HAL_I2C_Mem_Read_DMA()
    
    展开全文
  • stm32 hal库相关文档.zip

    2019-10-11 15:49:35
    主要为stm32一系列的hal文档,STM32HAL库 F103。STM32L1xx HAL驱动说明(描述)
  • STM32_nRF24l01 用于STM32 HAL库的简单nRF24l01库
  • STM32 hal库PWM输出程序

    2020-03-15 21:58:53
    STM32 hal库基于定时器TIM的PWM输出基础程序,用STM32CUBEMX配置的程序,只需要简单设置即可,包含了最基础的定时器中断控制,初学者容易学习,
  • STM32 HAL库开发教程

    2016-06-12 09:54:53
    STM32 HAL库开发教程,首家
  • STM32 hal库定时器TIM基础程序,用STM32CUBEMX配置的程序,只需要简单设置即可,最基础的定时器中断控制,初学者容易学习,
  • STM32 HAL库 CubeMX系列教程 目录

    千次阅读 2020-02-08 15:46:18
    STM32 HAL库 CubeMX系列教程 目录 已更新: 2020.02.05 STM32 HAL库 CubeMX教程(二)定时器基本使用 2020.02.06 STM32 HAL库 CubeMX教程(三)PWM呼吸灯 2020.02.07 STM32 HAL库 CubeMX教程(四)按键外部中断 2020...
    展开全文
  • 基于STM32 HAL库的定时任务调度器例程。 详情可以搜索博文《使用HAL库开发STM32(基于F4):系统时间基础及进阶使用》。
  • stm32 hal库驱动 IS31FL3236A。
  • SH85 温湿度传感器 STM32 HAL 驱动。使用的是硬件IIC。已经经过测试STM32L433 与STM32F429,驱动好用。资源内附SH85_HAL驱动文件,与STM32F429工程流程。
  • STM32 HAL库 +freeRTOS+Keil 移植基于KEIL的pack库FREERTOS下载包,在STM32芯片的HAL库移植,不需要到FREERTOS下载安装包
  • STM32 HAL库移植freemodbus-v1.6详细步骤 freemodbus下载地址:https://github.com/cwalter-at/freemodbus 说明:STM32CUBEMX5.6、freemodbus-v1.6,使用正点原子MiniSTM32-V2(STM32F103RBT6)开发板测试通过。 ...
  • stm32 HAL库 Flash操作简介目录第一stm32,flash介绍查看代码段,以判断代码长度flash的基本操作规则stm32 HAL库 Flash操作指南stm32f1xx_hal_flash.cstm32f1xx_hal_flash_ex.c代码实例 目录 stm32hal库确实提供...
  • bmp280_stm32hal库——spi方式
  • STM32HAL库串口截断不定长数据,通过定时器做闹钟计时,博客配套源码 https://blog.csdn.net/geek_monkey/article/details/89326199
  • stm32HAL库驱动SSD1306oled的库文件 包含驱动测试例程 通过宏定义可选SPI和I2C和DMA 个人写的代码 移植需要一定的基础
  • STM32 HAL库 CUBEMX配置 ADC采集

    千次阅读 2020-10-14 22:56:09
    文章目录STM32 HAL库 CUBEMX配置 ADC采集软硬件型号1.单通道不定时任意时刻采集信号CUBEMX配置代码添加工程源码 STM32 HAL库 CUBEMX配置 ADC采集 软硬件型号 正点原子阿波罗STM32F428IG开发板 STM32CUBEMX+KEIL5...
  • 快速移值STM32 HAL库的接收程序 纯净版 防死机 亲测OK没问题快速移值STM32 HAL库的接收程序 纯净版 防死机 亲测OK没问题
  • STM32 HAL 开发实战指南—基于F7》
  • stm32L151C8T6,通过TIM2_CH2 PWM输出1khz驱动无源蜂鸣器,基于stm32HAL库,已下到板子调试运行,完全没问题。
  • STM32 HAL库之DMA模式ADC

    千次阅读 2020-03-28 19:51:44
    STM32 HAL库之DMA模式ADC
  • STM32 HAL库官方详解

    2017-11-07 16:00:27
    很难得的Hal库驱动文件详解 可以查询Hal库函数 方便STM32 HAL开发

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,417
精华内容 2,566
关键字:

stm32hal库