HAL常用函数详解

HAL常用函数详解

HAL_GPIO.h

HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, GPIO_InitTypeDef *GPIO_Init);//初始化引脚
HAL_GPIO_DeInit(GPIOA,GPIO_PIN_1);//初始化PA1引脚为复位状态
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);//将PA1置高电平
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);//将PA1置低电平
HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1);//读取PA1电平状态
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_1);//取反PA1电平
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);//调用中断回调函数
HAL_GPIO_EXTI_Callback(GPIO_PIN_1);//中断函数具体要响应的动作
HAL_GPIO_LockPin(GPIOA,GPIO_PIN_1);//锁定PA1电平状态

HAL_URAT.h

HAL_UART_Init(&huart1);//初始化串口1函数
HAL_UART_MspInit(&huart1);//串口1回调函数,主要进行硬件部分的初始化
HAL_UART_Transmit(&huart1, uint8_t *pData, uint16_t Size, uint32_t Timeout);//串口1发送数据函数
HAL_UART_Receive(&huart1, uint8_t *pData, uint16_t Size, uint32_t Timeout);//串口1接收数据函数
HAL_UART_Transmit_IT(&huart1, uint8_t *pData, uint16_t Size);//串口1中断方式发送数据
HAL_UART_Receive_IT(&huart1, uint8_t *pData, uint16_t Size);//串口1中断方式接受数据
HAL_UART_Transmit_DMA(&UART1_Handler, uint8_t *pData, uint16_t Size);//DMA方式发送数据
HAL_UART_Receive_DMA(&UART1_Handler, uint8_t *pData, uint16_t Size);//DMA接收数据
HAL_UART_DMAPause(&UART1_Handler);//暂停DMA数据传输
HAL_UART_DMAResume(&UART1_Handler);//从暂停状态中恢复DMA传送
HAL_UART_DMAStop(&UART1_Handler);//停止DMA的传输
HAL_UART_IRQHandler(&huart1);//串口1中断处理函数
HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);//串口发送 数据完毕的回调函数,当串口使用中断模式发送完毕后才能自动调用本函数。
HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);//发送数据一半回调函数
HAL_UART_ErrorCallback(UART_HandleTypeDef *huart);//串口收发数据出错时的回调函数。
HAL_LIN_SendBreak(UART_HandleTypeDef *huart);//LIN总线通信函数,发送一个断开连接的标识。
HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart);//多核处理器进入串口静音模式。

HAL_ADC.h
三种开启函数对应三种关闭函数

HAL_ADC_Start(&hadc1);//启动ADC1转换
HAL_ADC_Start_IT(&hadc1);//中断模式启动ADC1转换
HAL_ADC_Start_DMA(ADC_HandleTypeDef*hadc,uint32_t*pData,uint32_t Length);//DMA

模式启动ADC1转换

HAL_ADC_Stop(ADC_HandleTypeDef*hadc);
HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);
HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc);
HAL_ADC_PollForConversion(&hadc1, uint32_t Timeout);//等待转换完成Timeout为最大的等待时间,单位ms
HAL_ADC_GetValue(&hadc1);//获取ADC1值的函数
HAL_ADCEx_Calibration_Start(&hadc1);//ADC1校准
HAL_ADC_ConvCpltCallback(&hadc1);//中断回调函数

HAL_DAC.h

HAL_DAC_Start(DAC_HandleTypeDef* hdac, uint32_t Channel); //开启DAC输出HAL_DAC_Stop(DAC_HandleTypeDef* hdac, uint32_t Channel); //关闭DAC输出
HAL_DAC_Start_DMA(DAC_HandleTypeDef*hdac, uint32_t Channel, uint32_t*pData, uint32_t Length, uint32_t Alignment); //需要函数中不断开启  //开启DAC的DMA输出
HAL_DAC_Stop_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel); //关闭DAC的DMA输出
HAL_DAC_SetValue(DAC_HandleTypeDef*hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data); //设置DAC输出值
HAL_DAC_GetValue(DAC_HandleTypeDef*hdac, uint32_t Channel); //获取DAC输出值

HAL_TIM.h

HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);//使能TIM3的PWM Channel1输出
__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_1,pwmVal);//修改占空比
HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);//初始化定时器时基单元
HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);//初始化定时器时基微控制器特定程序包

如需下载此博客word文档请到主页寻找wzy hal库。

  • 19
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
介绍 STM32CubeTM是意法半导体的一项原始计划,旨在通过减少 开发工作,时间和成本。 STM32CubeTM涵盖了STM32产品组合。 STM32CubeTM版本1.x包括: STM32CubeMX,一种图形软件配置工具,允许生成C初始化 使用图形向导编写代码。 每个系列都提供了一个全面的嵌入式软件平台(例如STM32CubeF4 STM32F4系列) STM32Cube HALSTM32抽象层嵌入式软件,可确保最大化 跨STM32产品组合的可移植性 一套一致的中间件组件,例如RTOS,USB,TCP / IP,图形 所有嵌入式软件实用程序均附带全套示例。 HAL驱动程序层提供了一组通用的多实例简单API(应用程序编程) 接口)与上层(应用程序,库和堆栈)进行交互。它由通用组成 和扩展API。它是直接基于通用体系结构构建的,并允许构建层, 例如中间件层,以实现其功能,而无需深入了解如何使用 单片机这种结构提高了库代码的可重用性,并保证了在其他库上的轻松移植 设备。 HAL驱动程序包括一整套现成的API,可简化用户应用程序 实施。例如,通信外围设备包含用于初始化和配置的API 外设,以基于轮询管理数据传输,处理中断或DMA,以及管理 通讯错误。 HAL驱动程序API分为两类:提供通用和通用的通用API 所有STM32系列和扩展API的函数,其中包括特定的和自定义的函数 给定的家庭或零件号。 HAL驱动程序是面向功能的,而不是面向IP的。例如,计时器API分为 IP提供的功能包括以下几类:基本计时器,捕获,脉冲宽度调制 (PWM)等。 驱动程序源代码是在严格的ANSI-C中开发的,使它独立于 开发工具。使用CodeSonarTM静态分析工具进行检查。它是有据可查的,并且 符合MISRA-C 2004。 HAL驱动程序层通过检查所有输入值来实现运行时故障检测 功能。这种动态检查有助于增强固件的鲁棒性。运行时检测 也适用于用户应用程序开发和调试。 本用户手册的结构如下: HAL驱动程序概述 每个外围设备驱动程序的详细描述:配置结构,功能以及使用方法 给定的API来构建您的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wzyannn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值