为什么使用CubeMX和HAL库?博主之前一直习惯使用标准库,是因为大一刚接触单片机是从stm32f103zet6入门的,当时是买了80元的开发板,看的正点原子的标准库教学视频。因为正点原子的代码比较全面,一些基本外设使用例程都有,于是自己一直依赖标准库和例程。虽然长时间的使用对标准库的操作已经较为熟悉,但是回头想想,如果让我手敲GPIO初始化,可能也能敲出,但是效率肯定不会很高(其中有一个原因其            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-26 23:06:27
                            
                                373阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            STM32三种库:库的类型:ST已经推出了三种库函数,以方便客户快速开发STM32系列MCU。从15、16年开始,ST逐渐停止了对标准外设库的更新和维护,转向了HAL和LL库。(1) 标准外设驱动库SPL                     Standard Peripheral Li            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-16 23:00:28
                            
                                283阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            C 语言使用 HAL 库开发ST公司先后推出了两套主要库:标准外设库(Standard Peripherals Library)和HAL库(Hardware Abstraction Layer)。标准外设库是STM32最早发布的固件库,对STM32芯片进行了完整的封装,包含所有外设的性能特征,每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。因为发布比较            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-03 10:34:09
                            
                                287阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ST7789驱动程序移植,标准库到HAL库 STM32F407
    原因课设项目用到了ST7789这款lcd,但是官方给的例程都是标准库,在网上也没有找到HAL库的驱动。所以自己移植一下,使用STM32Cubeide首先新建项目,打开SPI1,需要更改的地方如下   关于引脚如何配置,这里参考一下原例程,PG12和PD5为SPI            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-02 22:08:49
                            
                                0阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # ChibiOS与ST公式HAL库的结合应用
## 引言
ChibiOS是一个开源的实时操作系统(RTOS),广泛应用于嵌入式系统开发。ST公式HAL库则是STMicroelectronics为其微控制器(MCU)提供的硬件抽象层(HAL),旨在简化硬件操作及驱动开发。通过将ChibiOS与ST公式HAL库结合使用,可以充分发挥两者的优势,提升开发效率和系统性能。
## ChibiOS基本            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-08-04 03:54:25
                            
                                196阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             我们在使用嵌入式功能开发的时候经常需要使用按键实现一些功能。按键一般接触较多的就是独立按键,但一般情况上会需要多个按键,使用独立按键就会使得IO口资源浪费;因此会提出使用矩阵按键,该方法是可以实现节省IO口;本次介绍使用ADC实现多按键功能,通过采集ADC不同的值,然后判断是按键几按下?因此要求完成功能:实现一个ADC口完成对八个按键的检测,识别按键几按下,并将结果通过串口到串口助手上            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-02 13:48:41
                            
                                136阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            20145208 实验四 Android开发基础安装Android Studio安装的具体步骤在老师的链接中已经很详细了,在此就不做赘述了。在此提出我觉得安装的时候需要注意的两个地方
一是安装地址,很多人一路next过去,不记安装地址,但是这个软件是不自动建立快捷方式的,所以不熟悉系统默认安装目录的人会找很久。建议在安装的时候就记住安装目录,当然也可以重新运行一些安装程序,看看默认目录在哪里后关掉            
                
         
            
            
            
            初始化首先讲下UART的初始化1.声明UART的初始化结构体,并赋值2.MX生成的代码会调用HAL_UART_MspInit();来初始化UART,当然这个代码也是自动生成,不过用户可以在这个函数里面添加自己想要添加的操作,时面包括了NVIC_Configuration,DMA_Configuration等,也可以添加一些置位操作如__HAL_UART_ENABLE,__HAL_UART_ENAB            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-05-22 14:37:26
                            
                                3549阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            HAL库的SPI的配置包括通讯参数和IO引脚配置,其中通讯参数配置函数在MX_SPI1_Init()中自不必说。那么IO引脚配置在什么地方调用呢:MX_SPI1_Init()-》HAL_SPI_Init()-》HAL_SPI_MspInit()            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-01-27 16:40:00
                            
                                522阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            目录前言一、如何编程使用?二、使用步骤1.I2C通讯协议采集传感器数据BH1750传感器简介CubeMX配置1.GPIO引脚2.时钟3.I2C外设配置代码编写总结2.SPI通讯协议LCDLCD简介CubeMX配置1.GPIO引脚2.时钟3.SPI外设配置代码编写总结3.QSPI通讯协议读写FLASHQSPI简介W25Q64串行FLASH简介操作原理CubeMX配置1.GPIO引脚2.时钟3.QS            
                
         
            
            
            
            STM32 HAL库学习笔记2 HAL库介绍CMSIS标准一、再次认识HAL库HAL库设计思想HAL库实现方式以GPIO模块为例GPIO外设数据类型GPIO外设接口函数二、使用HAL库1.库工程必要文件的调用关系2.使用步骤三、新建工程模板1.手动新建1)新建本地工程文件夹2)新建MDK工程6.编写用户代码2.使用CubeMX创建工程复制步骤总结 原文链接:STM32微控制器面向不同应用场景有丰            
                
         
            
            
            
            ST的FOC库 2.0学习    由于新冠状病毒的缘故,被硬核封村,在家也没事,在网上找到了些ST的FOC代码,看一看,并且写个文档记录一下,可供大家一块看看学习学习。垃圾新手,望大佬多多批评。     因为是老版本的FOC代码,浏览起来简单些,当做了入门代码,我这里只是为了学习一下FOC的代码风格和流程,只是大致浏览代码,很多细节也没有细看。1.1 霍尔矢量闭环控制    在浏览了ST的有感 F            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-30 11:38:04
                            
                                95阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Android HAL(硬件抽象层)中的 BufferQueue 使用指南
在 Android 设备的架构中,硬件抽象层(HAL)充当了软件与硬件之间的桥梁。在图像和视频处理方面,BufferQueue 是一项重要的机制,它用于实现高效的数据交换,特别是在应用程序和图形引擎之间。本文将深入探讨 BufferQueue 的使用,并给出简单的代码示例。
## 什么是 BufferQueue?            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-22 05:23:08
                            
                                60阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            STM32的三种开发方式通常新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程的架构是完全不一样的。一般大多数都会选用标准库和HAL库,而极少部分人会通过直接配置寄存器进行开发。网上关于标准库、HAL库的描述相信是数不胜数。可是一个对于很多刚入门的朋友还是没法很直观的去真正了解这些不同开发发方式彼此之间的区别,所            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-10-14 17:22:50
                            
                                1010阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Jetpck Dagger-Hilt 依赖注入是什么一个类里面有一个变量,这个变量就是这个类的依赖。然后通过外部注入对这个变量进行赋值,这种就叫做依赖注入。Hilt 是什么 Hilt 是 Android 的依赖注入库,其实是基于 Dagger 。可以说 Hilt 是专门为 Andorid 打造的。 Hilt 创建了一组标准的 组件和作用域。这些组件会自动集成到 Android 程序中的生命周期中。            
                
         
            
            
            
            从源代码来看HAL库函数(一) HAL基础函数全局变量__IO uint32_t uwtick 这个变量充当了一个运行时长计数的作用,每发生一次SysTick中断就会加一,直至溢出,可以计算一下,溢出时间为2^32/1000/3600(以每1ms+1来算),大概要1193个小时,约50天,一般情况下是不用担心它会溢出的。 - uint32_t uwTickPrio = (1UL <<            
                
         
            
            
            
            基于F411 标准库第一步:配置对应GPIO口的结构体初始化,TX连RX、RX连TX,引脚复用功能void Uart_GPIO_Config(void)
{
	/*串口GPIO配置函数*/
	GPIO_InitTypeDef GPIO_InitStruct;
	/*UART ->TX ->PA9*/
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2024-02-27 15:37:20
                            
                                442阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            标准库:基于按键中断,中断不声明不调用第一步时钟、中断源配置,中断结构体配置void Exit_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource0); //Sys中断配置
	SYSCFG_EXTI            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2024-02-27 17:11:59
                            
                                420阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录1 前言2 准备部分2.1 关于STM32F103VET62.2 HAL固件库下载2.3 安装STM32F1的Pack2.4 STM32CubeF1固件包说明2.4.1 HAL固件库2.4.2 部分少用的文件说明2.4.3 Middlewares文件夹的子文件夹说明2.4.4 Drivers文件夹的子文件夹说明2.4.5 Projects文件夹3 库函数版工程模板的创建——HAL库版本3.1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-19 10:22:36
                            
                                164阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            此次测试是基于正点原子STM32精英版,芯片为STM32F103ZET6基于HAL库的配置预分频后为单位时间。Time for one bit 为时间段1和时间段2再加单位时间。时间段1和时间段2为单位时间的整数倍。在上图中为4+4+1倍,即9倍。图片中配置为2000ns,即波特率为500Kbps。 若是想要中断接收数据,还需要打开中断。完成后生成代码即可CAN过滤器过滤器是需要自己配置的,而且不            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-19 19:24:30
                            
                                649阅读
                            
                                                                             
                 
                
                                
                    