草庐IT

HAL 固件库

全部标签

STM32的HAL库及其使用

随着时代的逐步发展,联网、USB、文件系统、加密算法、RTOS、GUI等第三方组件变得越来越重要,简陋的标准库已经很难满足当代单片机开发需求了。事实上,单片机开发在走PC、手机等以CPU为核心的产品的老路:底层和细节越来越成熟,ARM提供CPU的库、单片机厂商提供外设库,单片机软件工程师直接基于这些库来构建自己的应用。现在更倾向于提供一整套开发生态而不只是一个SDK包,于是HAL库应运而生,提供HAL抽象层驱动来加速产品移植和选型,增加客户粘度。STM32软件开发的各种模式第1代:寄存器开发第2代:标准库开发第3代:HAL/LL库+STM32CubeMX工具开发HAL(hardwareabst

【STM32+HAL】语音识别模块LD3320(SPI版)

一、准备工作:有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32+HAL】CUBEMX初始化配置二、所用工具:1、芯片: STM32F103C6T6(同C8T6)2、STM32CubeMx软件3、语言识别模块:LD3320(SPI版)三、实现功能:实现串口打印语音输入四、HAL配置步骤:1、SPI功能开启2、IO口配置3、中断配置至此,HAL库配置完成五、硬件连接:接线:LD3320:LD3320_CS_Pin GPIO_PIN_A2LD3320_SCK_Pin GPIO_PIN_A5LD_MI_Pin GPIO_PIN_A6LD3320_MOSI_Pin G

STM32-串口同时收发问题-HAL_UART_GetState

一、背景使用STM32串口同时接收和发送数据时。使用HAL_UART_GetState函数检查串口状态时,串口处于忙状态,就不会变回正常状态。这种情况让我想到有没有可能是stm32HAL库没有支持全双工,理论上来说串口应是全双工发送接收。二、实验思路![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5C11544%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C

STM32基于HAL库和STM32CubeMX的实时操作系统FreeRtOS开发

一、基础概念1、FreeRTOSRTOS是一类操作系统,µC/OS,FreeRTOS,RTX,RT-Thread等这些都是RTOS类的操作系统FreeRTOS是众多RTOS类操作系统中的一种,FreeRTOS十分的小巧,可以在资源有限的微控制器中运行,FreeRTOS也不仅仅局限于在微控制器中使用。就单从文件数量上来看FreeRTOS要比µC/OS少得多。RTOS是实时操作系统,例如汽车的操控:必须要在规定时间内完成响应。我们日常使用的Windows、IOS、Android等都是非实时操作系统,这些系统对任务响应时间没有严格要求,例如网页打开时可能会很久或者直接闪退等。RTOS的最大特征就是“

STM32 HAL高级定时器正交编码模式案例

STM32HAL高级定时器正交编码模式案例🔖基于stm32F030RBT6单片机采用高级定时器1,编码器模式,测试EC11编码器。🎬EC11测试效果:🌿STM32定时器编码器有3种映射模式:✨本次采用的是上面的模式3,EC11编码器每转动一小格,TIM1定时器可以捕获到4个脉冲信号,也就是定时器捕获4个脉冲信号就代表编码器旋转了一小格。🌿EC11编码器原理图🛠STM32CubeMX配置🌿使能高级定时器TIM1,配置编码器模式。🔧参数配置🌿编码器引脚配置:🌿EC11编码器按键引脚配置🌿中断配置📓功能代码实现部分📝中断回调部分voidHAL_TIM_IC_CaptureCallback(TIM_H

第三章 USB应用笔记之USB鼠标(以STM32 hal库为例)

第三章USB应用笔记之USB鼠标(以STM32hal库为例)提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录第三章USB应用笔记之USB鼠标(以STM32hal库为例)前言一、STM32USB库简单讲解工程目录结构.C文件分析二、实操代码《鼠标》一、STM32CubeMX设置USB时钟设置USB使能UBS功能选择二、代码部分添加代码鼠标发送给PC的数据解析实验效果总结前言STM32F1系列是意法半导体(STMicroelectronics)推出的一款微控制器系列,具有广泛的应用领域。在STM32F1系列中,一些型号支持USB功能,以下是STM32F1系列USB的一些特点

STM32MP135平台基于HAL库创建Bare Metal裸机工程并从SD卡启动

STM32MP135平台基于HAL库创建BareMetal裸机工程并从SD卡启动1.引言首先引用ST官方的介绍:STM32MP135微处理器(MPU)基于单Arm®Cortex®-A7内核,运行频率可达1GHz。STM32MP13MPU专门面向入门级Linux、裸机或RTOS系统设计,并已预先集成MicrosoftAzureRTOS。”STM32MP135处理器(以下简称MP135)本是一块MPU,主频可达1GHz(我看到的手册及时钟配置下最高实际为900MHz),本该运行Linux内核,这次官方支持了BareMetal,也就是裸机HAL库,可以实现利用MPU丰富外设资源及实际需求的同时,进一

SM2259XT3!?继SM2259XT2、SM2259XT、SM2258XT、SM2246XT之后,慧荣新主控SM2259XT3量产固件、开卡工具

一、标题SM2259XT3!?继SM2259XT2、SM2259XT、SM2258XT、SM2246XT之后,慧荣新主控SM2259XT3量产固件、开卡工具二、正文慧荣官方2023年8月份发布了一份《SMIcompanyprofile_20230821》,里面介绍了SMI提供从客户端到企业数据中心的全方位产品,还包括公司营收、为客户创造差异化价值等概况。根据《SMIcompanyprofile_20230821》显示,除PortableSSDControllersSM2320以及SM2321之外,SATASSDControllers产品包括了SM2259XT2和SM2259XT3。根据量产业界

STM32G030F6P6读写flash失败问题(HAL)

STM32G030是F0系列的升级版,其在性能上比F0要好很多,具体G0参数如下:        最开始做项目选用的单片机是STM32F030F4P6,但是在后期使用中发现,我的FLASH(16K)不够用了,就选择了STM32G030F6P6来进行项目使用,主要是价格便宜,资源够用。    在F030使用的flash拿到G030上来发现不可使用,就进行了一些修改,但是这个时候就出现了报错,在进行flash擦除的时候报错HAL_FLASHEx_Erase(&EraseInitStruct,&PageError);通过发现擦除有问题,我就去查看其底层函数。HAL_StatusTypeDefHAL_

(CubeMX)STM32使用FREERTOS,在中断函数中使用HAL_Delay()函数导致程序卡死问题解决记录

1.RTOS占用systick,所以系统定时器需要配置为其他定时器。否则CubeMX会报错。 2.调整系统定时器为TIM1后,此时,定时器中断优先级默认为最低15,导致在其它高于此优先级的中断中,使用HAL_Delay()函数时,程序卡死。调高TIM1定时器中断优先级即可。