草庐IT

HAL_delay

全部标签

STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库)

前言不论是HC05还是HC06,我们用到的都是蓝牙模块的透传功能,只需要用到4个引脚:RXD、TXD、VCC(5V)、GND。HC-05的使用1、HC-05有6个引脚,但是我们只用到4个。2、HC-05正面有一个按键。与HC-06的区别是,它上电之前必须要按住此按键再插入电脑中,才能够进入AT模式。HC-06没有按键,直接插上就进入AT模式,蓝牙模块闪慢灯(1s1次)。3、用一个usb转ttl模块与HC-05连接,usb转ttl模块与电脑连接,使用串口调试助手,在蓝牙模块的AT模式下可以用一些AT指令与蓝牙模块进行交互。蓝牙模块默认波特率是38400,把停止位设置成1,数据位设置成8,校验位设

STM32实现PWM输出与PWM输入捕获(HAL库)

文章目录一.前言二.STM32定时器2.1基本定时器2.1.1功能与框图2.1.2CubeMX配置2.2通用定时器2.2.1功能与框图2.2.2CubeMX配置2.3高级定时器2.3.1功能与框图2.3.2CubeMX配置三.开发环境四.STM32PWM输出五.STM32PWM输入捕获五.实战项目一.前言前段时间,由于项目原因需要驱动四线风扇(电脑CPU用的散热风扇大多就是四线风扇),打算做一块风扇的驱动板。风扇通过输入PWM波来控制电机输出,而风扇内置了霍尔传感器,可以输出PWM信号,通过捕获波形信号可以得到信号的占空比、周期、频率等信息,换算后可以得到风扇的转速,实现对风扇的闭环控制。过程

STM32-HAL库04-PWM输出

STM32-HAL库04-PWM输出所用材料:STM32F103C6T6(最小系统板)STM32cubemx(HAL库软件)MD5(编程软件)示波器(DS100)本节所学内容:通过TIM2定时器输出500HZ频率的PWM波;修改部分参数实现PWM波频率的改变;第一步-新建工程1.选择MCU-F103C6Tx第二步-SYS设置将DEBUG选线设置为SerialWire第三步-RCC设置选择高速外部时钟第四步-PWM配置Timers-TIM2-Channel1-(PWMGenerationCH1)ParameterSettings-CounterSettings-Prescale-(71)Para

STM32-HAL库04-PWM输出

STM32-HAL库04-PWM输出所用材料:STM32F103C6T6(最小系统板)STM32cubemx(HAL库软件)MD5(编程软件)示波器(DS100)本节所学内容:通过TIM2定时器输出500HZ频率的PWM波;修改部分参数实现PWM波频率的改变;第一步-新建工程1.选择MCU-F103C6Tx第二步-SYS设置将DEBUG选线设置为SerialWire第三步-RCC设置选择高速外部时钟第四步-PWM配置Timers-TIM2-Channel1-(PWMGenerationCH1)ParameterSettings-CounterSettings-Prescale-(71)Para

从代码层面分析STM32 标准库和HAL库的差异

  如果用过STM32系列单片机的朋友会比较清楚,一般在开发STM32单片机程序的时候首先要考虑选用那种方式来写代码。常见的有三种方式,寄存器版、标准库版、HAL库版。现在选用后两种的比较多,选择寄存器开发的可能比较少了。而后两种方式到底选用那种好呢?现在都是公说公有理,婆说婆有理,每个人的判断标准都不同。今天我不探讨这两种方式的优缺点,单纯的从代码的角度去分析对比这两种方式写代码的相同点和差异。  为了更有对比性,我选择了功能一模一样的LED灯程序,一个是用标准库写的,一个是HAL库写的。  看到这个文件名字,我想大多数人都比较熟悉了恶,我这里就不多做介绍,直接开始从代码的角度出去,去比较。

【STM32】入门(九):HAL库学习

【STM32】STM32单片机总目录1、简述STD(StandardPeripheralLibraries)标准库:面向过程,仅仅是在寄存器上的一层封装操作HAL(HardwareAbstractionLayer)硬件抽象层:面向对象,将每个外设封装为一个对象,还能通过使用CubeMx软件生成初始化硬件的代码,使用者只需完成业务逻辑即可。运行效率比标准库略低。LL(LowLayer)底层库:为了弥补HAL库效率较低的问题,推出了LL库。与HAL库相同,LL库同样支持CUBEMX生成代码,非常方便。并且,在cubemx工程中,不同外设是可以混合使用HAL和LL库的,两者完全兼容。官方推荐使用HA

Android 硬件抽象层HAL 驱动编写方法演示

概述 HAL是一个抽象层,具有供硬件供应商实现的标准接口。HAL允许Android不了解较低级别的驱动程序实现。使用HAL允许您在不影响或修改更高级别系统的情况下实现功能。HAL 开始语言是HIDL,它是一种接口描述语言,用与指定HAL与用户之间的接口。具体意思就是当你用HIDL语法定义好接口之后,可以自动生成c++接口代码,aosp的开发者就可以按照这些接口开发底层的功能了,而上层framework 也可以按照这个接口调用,换句话说这个就是双方约定好的一个规则,好处就是对于APP开发者来说无论底层硬件如何变化,应用程序是不需要修改的。而对于系统工程师来说,只要按照HIDL实现对应的硬件驱动即

Camera Hal OEM模块 ---- 3dnr算法流程

3dnr,即多帧降噪,在暗环境下拍照,会触发此算法。其设计思想是通过5张图片叠加去跑降噪算法,从而实现暗环境下拍照优化噪点。我们之前介绍了hal3_2v6的内容,hal3_2v6是整个libcamera中最接近上层的部分,主要是管理参数、处理camera的公共操作(open、close)等。相当于是对camera参数及操作请求的上层解析及底层封装。我们还介绍了位于hal_common\multiCamera下的SprdCamera3SinglePortrait.cpp,即人像模式算法的流程。hal_common\multiCamera下面还有其他multiCamera的算法,比如双摄虚化,人脸

[016] [STM32] 串口HAL库轮询、中断、DMA方式传输数据

#mermaid-svg-sNUtGKYdWzcCxToQ{font-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sNUtGKYdWzcCxToQ.error-icon{fill:#552222;}#mermaid-svg-sNUtGKYdWzcCxToQ.error-text{fill:#552222;stroke:#552222;}#mermaid-svg-sNUtGKYdWzcCxToQ.edge-thickness-normal{stroke-width:2px

STM32基于HAL库的读写FLASH

目录FLASH简介 读写基本步骤FLASH简介FLASH,也就是闪存,在stm32里通常被用来放程序代码,而剩余的空间就可以被用户手动去读和写。基于STM32F103ZET6正点原子的大容量产品,512K的FLASH,共256页,每页2K,比起以前用过的51不知道高了多少倍。以下摘抄自正点原子团队的文档 STM32的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等3部分组成。主存储器,该部分用来存放代码和数据常数(如const类型的数据)。对于大容量产品,其被划分为256页,每页2K字节。注意,小容量和中容量产品则每页只有1K字节。从上图可以看出主存储器的起始地址就是0X08000000,