自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 STM32学习(11)——高级定时器

测量占空比时,一个输入通道TIx需要用到两个捕获通道ICx,经过滤波后的信号分为两路,TI1FP1和TI1FP2,一路配置为上升沿检测,一路配置为下降沿检测,检测到上升沿跳变时CNT的值被锁存在CCR1中,并且CNT清零,检测到下降沿跳变时CNT的值被锁存在CCR2中,此时CNT的值不清零,当再次检测到上升沿跳变时,CNT的值被锁存在CCR1中,CNT清零。PWM输出就是对外输出脉宽(即占空比)可调的方波信号,信号频率由PSC和ARR共同决定,一般调整PSC来改变频率,改变ARR会影响占空比。

2025-03-13 21:49:19 1061

原创 STM32学习(10)——ADC

ADC:Analog To Digital(模拟数字转换器)1、电压输入范围ADC输入范围为:VREF-≤VIN ≤VREF+。设计原理图时一般把VDDA和VREF-接地,把VREF+和VSSA接3V3V,得到ADC输入电压范围为:0~3.3V。若想使输入的电压范围变宽,可以测量负电压或者更高的正电压,可以外加一个电压调节电路把电压调整到0~3.3V内。2、输入通道STM32的ADC多达18个通道,其中有16个外部通道(ADCx_IN0),这16个通道对应不同。

2025-03-06 21:16:48 920

原创 STM32学习笔记(7)——串口通信

标准库函数对每个外设都建立了一个初始化结构体,比如USART_InitTypeDef,结构体成员用于 设置外设工作参数,并由外设初始化配置函数,比如USART_Init()调用,这些设定参数将会设置 外设相应的寄存器,达到配置外设工作环境的目的。USART数据寄存器(USART_DR)只有低9位有效,并且第9位数据是否有效取决于USART控制寄存器1(USART_CR1)的M位设置,当M位为0时表示8位数据字长,当M位为1时表示9位数据字长。在有效数据之后,有一个可选的数据校验位。

2025-02-24 21:07:14 881

原创 STM32学习笔记(8)——DMA

如果外设想通过DMA传输数据,必须先给DMA控制器发送DMA请求,DMA收到请求信号后,控制器会给外设一个应答信号,当外设应答后且DMA控制器收到应答信号之后,就会启动DMA的传输,直到传输完毕。使用从存储器到外设传输时,以串口向电脑端发送数据为例,DMA外设寄存器的地址就是串口数据寄存器的地址,DMA存储器的地址就是自定义的变量的地址,设置外设为目标地址。使用从外设到存储器传输时,以ADC采集为例,DMA外设寄存器的地址就是ADC数据寄存器的地址,DMA存储器的地址就是自定义的变量的地址。

2025-02-24 11:31:42 713

原创 STM32学习笔记(6)——通讯基本概念

串行通讯是指设备之间通过少量数据信号 线(一般是8根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。

2025-02-16 22:13:30 258

原创 STM32学习笔记(5)——SysTick

SysTick——系统定时器属于CM3内核外设,内嵌在NVIC中。是一个24bit的向下递减计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK 等于72M。当重装载数值寄存器的值递减到0的时候,系统定时器就产生一次中断,以此循环往复。因为SysTick是属于CM3内核的外设, 有关寄存器的定义和部分库函数都在core_CM3.h这个头文件中实现。(2)清除当前数值寄存器的值。(1)设置重装载寄存器的值。(3)配置控制与状态寄存器。1、SysTick寄存器。

2025-02-16 21:40:29 224

原创 STM32学习笔记(4)——中断

除了个别异 常的优先级被定死外,其它异常的优先级都是可编程的。标准库函数对每个外设都建立了一个初始化结构体,比如EXTI_InitTypeDef,结构体成员用于设 置外设工作参数,并由外设初始化配置函数,比如EXTI_Init()调用,这些设定参数将会设置外 设相应的寄存器,达到配置外设工作环境的目的。关于中断服务函数的函数名必须跟启动文件里面预先设置的一样,如果写错,系统就在中断向量表中找不到中断服务函数的入口,直接跳转到启动文件里面预先写好的空函数,并且在里面无限循环,实现不了中断。

2025-02-15 20:22:21 934

原创 STM32学习笔记(3)——RCC

HSE 是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率从4-16MHZ不等。这个函数采用库函数编写,函数有个形参RCC_PLLMULL_x,RCC_PLLMULL_x用来设置PLL的倍频因子,在调用的时候形参可以是:RCC_PLLMul_x,x:[2,3,⋯16],这些宏来源于库函数的定义。在主函数中,可以调用HSE_SetSysClock()函数把系统时钟设置成各种常用的时钟,然后通过MCO引脚监控,或者通过LED闪烁的快慢体验不同的系统时钟对同 一个软件延时函数的影响。

2025-02-13 22:40:50 486

原创 STM32学习笔记(2)——GPIO输入输出

1、硬件LED灯的阴极或阳极是连接到STM32的GPIO引脚,只要我们控制GPIO引脚的电平输出状态, 即可控制LED灯的亮灭。对于RGB灯,其内部由红蓝绿三个小构成,使用PWM控制时可以混合成256*256*256种不同的颜色。2、软件main.cLED_Init();LED1_on();i++;bsp_led.h#endifbsp_led.c//初始化LED。

2025-02-11 18:49:37 533

原创 STM32学习笔记(1)——初识固件库

startup_stm32f10x_hd.s:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、调用c库函数_main去到c的世界;system_stm32f10x.c:把外部时钟HSE=8MHz,经过PLL倍频为72MHz,执行该启动文件时已经将系统时钟配置为72MHz,不用再在main函数中配置;stm32f10x.h:实现了内核之外外设的寄存器映射stm32f10x_xxx.c:外设的驱动函数库文件。

2025-02-10 21:06:50 942

原创 STM32学习——操作寄存器点亮LED

部分存储器地址映射表,通过该表可以找到总线的基地址和某一个外设的基地址,例如GPIOA外设是挂载在APB2总线上的,APB2总线的基地址为0x40010000,GPIOA外设的基地址为0x40010800。*(unsigned int *)0x4001080C |= 0xFFFF 从该地址开始往后数16位,均为1,(32:16)为保留位,始终为0。/*对寄存器清零,因为该寄存器的复位值不是0x00,而是0x04,

2025-01-24 21:46:43 907

原创 嵌入式C语言-指针学习笔记

首先,在子函数中,形参定义为指针变量,该指针变量在内存中申请了8个字节的地址,在函数将实参传给形参,此时,形参指针变量的地址中存放的是数组的首地址,array[i]将以此访问数组中的各元素。但是使用指针传参,子函数可以对主函数中的变量进行修改,为了避免子函数对主函数变量的影响,可以在子函数形参的变量类型前加“const”进行修饰,关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变。在内存中,各数据本身是按照小端模式存储的,但是对于数组数据,各数据之间是按顺序进行存储的。

2024-07-31 15:52:32 956

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除