STM32标准库和HAL库的对比

CMSIS文件夹:

最近看了几个开发板厂的STM32F1系列的HAL库工程代码。发现关于时钟配置单独手写了一个,对于用惯了标准库的产生一个疑问,时钟配置不都自带的文件里配置好了,非特殊甚至直接拿来用就行。为什么要单独手写了一个呢?从启动文件往下捋,发现HAL库自带的system_f1xx.c里还真有时钟配置函数,头文件也声明了。但是sym32f1xx.h没有加入.....原因未知。好吧,明白了咋回事,觉得需要先捋一捋文件的关系,HAL库文件关系不用对比了。重要是对比一下CMSIS里的文件关系。

再大概的进行一下代码接口大的对比吧。

一.外部中断:

我们看库里面,HAL库不再有类似stm32f1xx_hal_exit.c的文件。

HAL库中EXIT已经归类到GPIO类,只剩下中断回调和清理标志两个函数。

二.串口

1.HAL库进一步将协议和硬件分离。对具体MCU底层硬件相关的配置如引脚、时钟、 DMA、中断等是在HAL_UART_MspInit(UART_HandleTypeDef *huart) 函数中完成的,该函数被 HAL_UART_Init 函数所调用。

2. HAL_UART_Transmit函数与标准库的发送函数不一样,虽然都是死循环,但是hal里加入了长度.超时等一系列封装的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值