论STM32标准库程序修改为HAL库

标准库占绝大多数,自己买的板子跟的资料也一般是标准库,HAL库很少,不过要是使用STM32CubeMx配置,那么就是使用的HAL库了,而参考资料是标准库的,就没有办法用。
注意:
1.标准库与HAL库不兼容,不要想着直接拿来用了,比如标准库使用#include “stm32f10x.h”,HAL库使用#include “stm32f1xx_hal.h”
要让标准库程序使用HAL库时也可以正常运行得到想要的结果,有以下几种方法:
一、 将标准库程序中的每个函数内的代码修改为使用HAL库且同样效果的代码,
比如标准库中配置GPIO的代码直接就可以用STM32CubeMx配置为相同效果
二、根据标准库程序整个程序运行的原理使用HAL库中提供的函数实现,
比如使用IIC写入内存的代码可以使用HAL库中提供的函数HAL_I2C_Mem_Write
实现


先举例介绍第一种方法:
1. 外部中断
标准库:中断入口函数在stm32f10x_it.c中,修改void EXTI&_IRQHandler()
使用if(EXTI_GetITStatus(EXTI_Line2)==SET)判断是否产生中断
处理中断时,要清除中断线路挂起位(EXTI_ClearITPendingBit),以便下次使用
HAL库:在stm32f1xx_it.c中依然有中断入口函数void EXTI2_IRQHandler(void)
该函数调用了HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);,当该引脚产生中断事件时会调用该函数
最后会由HAL_GPIO_EXTI_Callback(GPIO_Pin);回调函数执行中断,该函数是可以被重定义的,复制该函数添加到main.c中就可以进行特定引脚的中断事件处理
在HAL库的回调函数和标准库的中断入口函数中的中断事件执行是差不多的
2. 引脚操作
51、STM32的标准库和HAL库对引脚都有基本的读取引脚状态和设置引脚的操作
51:P0 = 0x00; //置P0口为低电平,P08个IO口全为低电平
P0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值