草庐IT

STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板载PC13LED闪烁

STM32CubeIDE+HAL+STM32f103C8T6系列教程1---板载PC13LED闪烁引言硬件关于开发板[^2]控制器内置存储器原理图硬件连线硬件连接表硬件连线图软件STM32CubeIDE下载及安装Stm32CubeIDE设置补全快捷键和主题新建一个工程选择开发板核心芯片型号设置工程相关参数STM32CubeMX配置板载灯PC13LED闪烁代码STM32程序和Arduino代码对比代码大致结构对比库函数调用对比闪烁代码下载代码到开发板小结引言之前的系列教程都是基于Arduino的,但是公司招聘51和stm32的开发还是多些,所以特别开了一个stm32的系列。这个系列特点是注重了A

Android Audio HAL 服务

在Android系统中,AudioHAL服务用于管理对音频硬件的访问,AudioFlinger通过AudioHAL服务访问音频硬件。这里以AndroidAutomotive(AAOS)版模拟器为例,来看AudioHAL服务的设计、实现和访问,代码分析基于android-12.1.0_r27进行。AAOS版模拟器的AudioHAL服务的实现位于device/generic/car/emulator/audio/halservice,在android设备中,它将以名为android.hardware.audio.service-caremu的进程存在,这个进程的主函数定义(位于device/gen

【STM32】HAL库 STM32CubeMX——DMA (串口DMA发送接收)

文章目录实验环境一、DMA的基本介绍(1)DMA的定义(2)DMA传输方式(3)DMA传输参数(4)DMA主要特征(5)DMA工作系统框图二、串口DMA通信程序设计三、使用KEIL5完成简单DMA数据发送4.总结实验环境软件:STM32CubeMXKEIL5mcuisp串口通信助手硬件:STM32F103C8Tx杜邦线,面包板,USB转TTL一、DMA的基本介绍(1)DMA的定义DMA,全称DirectMemoryAccess,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。我们知道系统的运作核心是CPU,CPU

STM32HAL库定时器中断、按键中断、串口中断、按键消抖和低通滤波算法详解

本文将详细介绍STM32HAL库中的定时器中断、按键中断、串口中断的使用方法,以及按键消抖和低通滤波算法的实现。希望能对您的STM32开发提供帮助。目录1.定时器中断2.按键中断3.串口中断4.按键消抖5.低通滤波算法一、定时器中断定时器中断是STM32开发中常用的一种中断方式,主要用于定时执行某些任务,例如按键消抖、定时更新显示等。以下为创建定时器中断的步骤:1.配置定时器首先,在STM32CubeMX中配置相应的定时器,并设置对应的时钟和预分频系数。 2.初始化定时器在main.c文件中,调用HAL_TIM_Base_MspInit()函数初始化定时器。```cvoidHAL_TIM_Ba

【STM32】标准库与HAL库对照学习教程十四--CAN总线

【STM32】标准库与HAL库对照学习教程十四--CAN总线一、前言二、准备工作三、CAN协议3.1简介3.2CAN物理层3.2.1闭环总线网络3.2.2开环总线网络3.3差分信号3.3.1简介3.3.2CAN总线上的差分信号3.4CAN协议层3.4.1CAN的波特率3.4.2CAN的同步3.5CAN的通信帧3.6数据帧的结构3.7其它报文的结构四、STM32F103CAN控制器介绍4.1CAN控制内核4.1.1主控制寄存器CAN_MCR4.1.2位时序寄存器(CAN_BTR)及波特率4.2CAN发送邮箱4.3CAN接收FIFO4.4验收筛选器五、标准固件库配置CAN总线5.1配置步骤5.2结

HAL库生成PWM波且占可比可调

这里我的任务即生成一个100HZ的PWM,且占空比可调,通过按键PC13PIN。外部输入8MHz的晶振,使用tim3的时钟,将其总线时钟设置成80MHz,即其时钟树配置成80MHz。时钟树配置自行百度,资料有很多。我使用的是官方核心板如图所示。打开cubmx软件,选择tim3,相关配置如图所示。生成pwm频率Fre=tim总线时钟/预分配数*计数器数 图 cubmx配置界面 生成MDK文件。 在main.c中该软件自动帮你生成定时器3初始化函数,下图为函数声明,初始化在main函数中在stm32l4xx_hal_tim.h库中找到相应的hal库函数来初始化pwm。并编写按键检测程序,按键按下则

STM32系列(HAL库)——F103C8T6驱动WS2812全彩RGB模块(PWM+DMA方式)

1.软件准备(1)编程平台:Keil5(2)CubeMX2.硬件准备(1)某宝买的RGB模块(4个灯珠级联)(2)F1的板子,本例使用经典F103C8T6(3)ST-link 下载器(4)杜邦线若干3.模块资料(1)模块简介:没什么比手册讲得更加清楚了,模块中文数据手册:ws2812b中文资料_数据手册_参数(2)驱动原理:         以上这是数据手册中提到的,WS2812驱动用的是单线归零码的通讯方式。不同占空比的方波代表1码或者0码,这里不同的占空比就是 0码或1码高电平时间/方波周期时间。对于本次例程,我们就是改变PWM的占空比实现0码或1码的传输。(3)PWM+DMA原理:   

cubemx和HAL开发的学习笔记(一)—— GPIO

1.HAL_GPIO_WritePin函数介绍HAL库中提供一个操作GPIO电平的函数:HAL_GPIO_WritePin函数voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinStatePinState函数名HAL_GPIO_WritePin函数作用使得对应的引脚输出高电平或者低电平返回值Void参数1:GPIOx对应GPIO总线,其中x可以是A…I。例如PH10,则输入GPIOH参数2:GPIO_Pin对应引脚数。可以是0-15。例如PH10,则输入GPIO_PIN_10参数3:PinStateGPIO_PIN

cubemx和HAL开发的学习笔记(一)—— GPIO

1.HAL_GPIO_WritePin函数介绍HAL库中提供一个操作GPIO电平的函数:HAL_GPIO_WritePin函数voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinStatePinState函数名HAL_GPIO_WritePin函数作用使得对应的引脚输出高电平或者低电平返回值Void参数1:GPIOx对应GPIO总线,其中x可以是A…I。例如PH10,则输入GPIOH参数2:GPIO_Pin对应引脚数。可以是0-15。例如PH10,则输入GPIO_PIN_10参数3:PinStateGPIO_PIN

HAL库&STM32cubeMX工程软件模拟IIC,改改引脚即可直接使用

HAL库&STM32cubeMX工程软件模拟IIC,改改引脚即可直接使用由于stm32后续的库文件只有hal库了,为了使代码更方便,也做了一个移植性很高的库文件,拿到手之后改改引脚就可以快速使用由于stm32后续的库文件只有hal库了,为了使代码更方便,也做了一个移植性很高的库文件,拿到手之后改改引脚就可以快速使用c文件如下/***@filesoftwareiic.c*@brief适用于STM32HAL库及CUBEMX生成工程的软件模拟IIC*@versionV1.0.0*@authorSundea*@date2023/5/8*/#include"softwareIIC.h"/***@brie