浅聊HAL 库,

本文介绍了使用不同库(操作寄存器、标准库和HAL库)设置STM32GPIOPB0为高电平的方法,强调了HAL库的易用性。同时,详细展示了如何使用HAL库进行串口发送,包括普通发送和中断形式,以及实际的实验结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.各类库的浅比较

1)操作寄存器,设置PB0为高电平

GPIOB->BSRR = 0x0001;

2)使用标准库,设置PB0 为高电平

GPIO_SetBits (GPIOB,GPIO_Pin_0);

3)使用HAL库,设置PB0 为高电平

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);

以上的实质都是通过操作寄存器来实现,给对应IO口写高电平,HAL库对新手小白很友好,而且相对直观,写GPIOB的Pin0,GPIO_PIN_SET 为写入高电平。GPIO_PIN_RESET为写入低电平。

2.HAL库

ST官方推出的最新一种STM32设置和初始化C代码的生成器。

1)可直观选择不同型号的STM32微控制器,配置微控制器,处理引脚冲突,动态设置确定时钟树,及各外围器件的初始化等。

2)串口发送和接收函数

A.串口发送字符

/*普通发送*/	
char *Str="Initial OK\r\n"; 
	HAL_UART_Transmit(&huart1,(uint8_t *)Str,strlen(Str) ,100);

结果:

//串口中断形式 
char *Str="Initial OK\r\n"; 
HAL_UART_Transmit(&huart1,(uint8_t *)Str,strlen(Str) ,100);
HAL_UART_Transmit_IT(&huart1,(uint8_t*)Str,strlen(Str) );

实验结果: 

 B.串口发送数据

uint8_t data[3] ={0x55,0x01,0x00};
HAL_UART_Transmit (&huart1 ,(uint8_t *)data,len,100);

实验现象:

串口接收到:0x55 0x01 0x00

介绍 STM32CubeTM是意法半导体的一项原始计划,旨在通过减少 开发工作,时间和成本。 STM32CubeTM涵盖了STM32产品组合。 STM32CubeTM版本1.x包括: STM32CubeMX,一种图形软件配置工具,允许生成C初始化 使用图形向导编写代码。 每个系列都提供了一个全面的嵌入式软件平台(例如STM32CubeF4 STM32F4系列) STM32Cube HAL是STM32抽象层嵌入式软件,可确保最大化 跨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来构建您的应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值