库编程思想
库:在计算机科学中,用于用于开发软件的子程序的集合。库和可执行文件的区别是,库不是独立的程序,他们是向其他程序提供服务的代码。一个库中通常含有多个函数用于处理某类问题。
初识HAL库
进行stm32开发可以选择寄存器编程,也可以先择库编程,而库编程在实际应用上如有下选择:
ST标准库:Standard Peripheral Libraries
LL库:Low Layer Libraries
HAL库:Hardware Abstraction Layer Libraries
HAL库:适用于不执著于底层代码的实现,而是在业务逻辑代码上有更高要求的人群,不需要了解太多的硬件,开发简单,且代码移植性较高,但是效率有所落后。
当今社会的需求,发展非常的迅速,设备的更新换代比较快,所以往往在短时间内进行开发谋求先机分的市场红利这也是官方为什么力推HAL库而停更ST标准库的原因之一。
如何使用HAL库?我们可以使用STMCubeMX来进行配置,操作简单不易出错。
STM32CubeMX
STM32CubeMX是ST意法半导体近几年来大力推荐的STM32图形化配置工具,允许用户使用图形化向导生成C初始化代码,可以大大减轻开发工作和时间和费用。STM32CubeMX几乎覆盖了STM32的全系列芯片。
链接:https://pan.baidu.com/s/10o4Ne-7MhDKhSqShR62X5Q
提取码:incx
先打开更新设置选择要储存的芯片包的位置
打开芯片软件包下载:弹出下面界面选择对应的芯片型号即可(我用的是STM32f103zet6所以我选择的是F1系列芯片包)
工程的生成:
返回到初始界面
点击你要选择的封装类型之后,点击右上角的start project创建新工程。
弹出该界面:
选择不同引脚左键点击选择所需的引脚功能
点开左行的System Core后先选择SYS
因为我们选择的是仿真器所以在Debug选择Serial Wire
在这里RCC时钟我们先不配置,按默认的来
在到GPIO的配置
以PB5为例我设置的是OUTPUT模式,左键中间窗口的PB5对应的那行,然后在下方PB5 Configuration中配置PB5 口的类型(这块建议先去了解一下ST标准库中对引脚的配置)然后选择输出是高电平还是低电平,输出的模式的选择,上下拉的选择,最大输出速率的选择
时钟配置先暂时不管,打开工程管理目录
Name任取( 不要用中文)存储项目位置,下方的IDE选择MDK-ARM(因为我用的是keil5)其他的IDE选择相应不同的软件名称和型号。
然后打开Code目录进行配置
配置成如下图所示
然后点击右上角的GENERATE CODE创建代码
出现下边的类似的
弹窗则表明代码生成
然后就在对应的文件中找到了生成的KEIL项目
生成的工程如下: