以下为《STM32 HAL库学习》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
STM32 HAL库学习(一) STM32CubeMX和TRUEStudio的使用
最近开始学习STM32的HAL库,之前有用过std库函数做STM32开发的基础,因此学习HAL库会更容易上手一些,但对于新的编程、下载工具以及HAL库仍有许多不清晰的地方。经过初步的实验实现点亮LED灯和串口的发送数据之后,对所用到的几个工具以及HAL库进行一个总结。
HAL —— 硬件抽象层(Hardware Abstraction Layer),是STM32最新推出的抽象层嵌入式软件,支持中间件组件(如RTOS,USB,TCP / IP和图形等),便于用户实现移植。
固件库框架:
/
?HAL Driver文件介绍:
stm32f0xx_hal.h/stm32f0xx_hal.c:HAL模块驱动文件,初始化HAL配置、配置时某某1ms
??????? —— HAL_Init(void),配置Flash预取、时某某(systick)、NVIC和底层配置
????????—— HAL_DeInit(void),复位所有外设(APB1、APB2和AHB)
??????? —— 几个weak函数 实现延时?? HAL_IncTick、HAL_GetTick、HAL_Delay
stm32f0xx_hal_def.h:定义了HAL库所需的一些公用的结构体、枚举变量等
stm32f0xx_hal_conf.h:define了所需要用到的外设使能,例如如果用到ADC,就取消注释“#define????????????????????????????????? HAL_ADC_MODULE_ENABLED”,则编译时会将与ADC定义有关的头文件和源文件加载进来
stm32f0xx_hal_msp.c:实现msp层的init和deinit
?
整个开发过程使用三个工具:STM32CubeMX、TRUEStudio和STM32CubeProgrammer
首先使用STM32CubeMX对选择需要开发的芯片或者开发板,对应的芯片或开发板的管脚信息就会显示出来
/
可以对管脚进行编辑,选择配置模式?,比如让PC9配置成输出,以及允许UART1的功能,之后就是生成代码,在project/setting里 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 _UP,KEY0_DOWN,KEY1_UP,KEY1_DOWN
}KEYState_typedef;
函数有个?KEYState_TypeDef?类型的返回值?
KEYState_typedef KEY0_GetState(void){if (HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin)==KEY0_DOWN_LEVEL ){HAL_Delay(10);if (HAL_GPIO_ReadPin (KEY0_GPIO_Port ,KEY0_Pin )==KEY0_DOWN_LEVEL ){while(HAL_GPIO_ReadPin (KEY0_GPIO_Port ,KEY0_Pin )== KEY0_DOWN_LEVEL );return KEY0_DOWN;}}?return KEY0_UP;
}
读取,写入GPIO电平
HAL_GPIO_ReadPin();
HAL_GPIO_WritePin();
将自己的代码放入一个文件夹,在下一次复制修改CubeMx从新生成code时,不会被重置。
将各个外设的驱动单独写.c .h文件,自己写一个system程序,作为主程序,每次重置后就在main中放入my_system的头文件,init和主函数就行,在魔术棒中编译路径中加入自己的文件夹。
/
STM32Hal库学习(三)CubeMx学习外部中断
外部中断主要是在CubeMx中设置好GPIO
在引脚界面配置成中断
/
然后configuration里对GPIO配置
/
对于低电平触发中断,需要把GPIO设置为上拉,然后下降沿触发,反之高电平触发,反过来
对NVIC配置
/
在生成的程序里
stm32f1xx_it.c里有EXTI0中断处理函数
/
此函数在stm32f1xx_hal_gpio.c里
/
中断标志位不为0,清零然后调用回调函数
/
__weak函数用于定义变量或者函数,常见于定义函数,在MDK ARM链接时优先链接定义为非weak的函数或变量,如果找不到则再链接weak函数
在main里自定义HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin),处理中断
/
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《STM32 HAL库学习》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。