- 博客(14)
- 收藏
- 关注
原创 stm32 USART串口数据包——江协教程踩坑经验分享
此处主要讲解的是第一种方法,因为第2种破坏了原有的数据,其实不太方便。数据包格式可以是用户根据需求自己规定的,也可以是开发商规定好的,此处定义的是0xFF是数据包开头标志,0xFE是结尾的标志。法二:严格使用固定包长的数据包,这样子包头包尾会对齐数据,在接收的过程中并不会去判断它是不是包头包尾。在HEX中社区都是以原始的字节数据本身呈现的,但是在文本数据包中,它就经过了一层编译。无需担心,因为可以使用的字符数量很多,定义一个少用的包头包尾就好。法三:增加包头包尾的数量,使它呈现出载荷数据出现不了的状态。
2025-06-29 22:19:31
577
原创 stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
※ GPIO的引脚模式,可以看外部模块输出的默认电平,如果外部模块空闲默认为输出高电平,选择上拉输入,默认输入高电平;USARTx 是指向USART外设的指针。USART_WakeUp 是唤醒方式的配置,例如USART_WakeUp_IdleLine(空闲线唤醒)或USART_WakeUp_AddressMark(地址标记唤醒)。NewState 是新的状态,可以是ENABLE(使能)或DISABLE(禁用)。NewState 是新的状态,可以是ENABLE(使能)或DISABLE(禁用)。
2025-06-29 21:44:16
1334
原创 stm32 USART串口协议与外设——江协教程踩坑经验分享
USART支持多种功能配置,包括可配置的数据位长度(8位或9位)、停止位长度(0.5位、1位、1.5位或2位)、可选的校验位(无校验、奇校验或偶校验),以及支持同步模式、硬件流控制、DMA、智能卡、IrDA、LIN等多种通信模式。值得注意的是,第8、9、10次采样点正好位于起始位中间位置,后续数据位的采样也将在此位置进行,确保采样点始终位于数据位中心。:在全双工通信中,需要两根信号线,发送端TX与接收端RX要交叉连接,即设备1的TX连接到设备2的RX,设备1的RX连接到设备2的TX。
2025-06-25 22:18:17
1496
原创 stm32 DMA直接存储器存取——江协教程踩坑经验分享
DNA可以直接访问存储器,包括运行内存SRAM程序存储器,flash和寄存器等。DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源(这里的外设是指外设寄存器,一般是DR数据寄存器【Data Register】,其实也是一种存储器,只不过是被指定了外设而已)(所以DMA的转运都可以理解为从一个地址里面的取内容放到另一个地方)
2025-06-10 22:18:54
1048
原创 stm32 ADC模数转换器——江协教程踩坑经验分享
ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁(ADC读取引脚上的模拟电压,转换为一个数据,存在寄存器里,再把数据读取到变量里面来,就可以进行显示、判断、记录等等操作)※ DAC 数字模拟转换器可以将数字变量转换为模拟电压。但是使用PWM来等效模拟量是比DAC更简单更常用的选择。所以大部分的情况下会倾向于使用PWM,DAC现在主要使用于波形产生。
2025-05-19 23:31:04
1244
原创 stm32 TIM编码器接口——江协教程踩坑经验分享
编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制 CNT 自增或自减,从而指示编码器的位置、旋转方向和旋转速度。
2025-05-19 12:12:16
1271
原创 stm32 TIM输入捕获——江协教程踩坑经验分享
输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中。可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。Step 1RCC开启时钟。TIM外设和GPIO外设的时钟打开Step 2GPIO初始化,把GPIO配置成输入模式,一般选择上拉输入或者浮空输入模式。Step 3配置时基单元+选择时基单元的时钟源,让CNT计数器在内部时钟的驱动下自增运行。Step 4配置输入捕获单元,包括滤。
2025-05-15 12:59:45
904
1
原创 stm32 TIM输出比较——江协教程踩坑经验分享
输出比较模块通过将定时器的计数器值(CNT)与捕获比较寄存器(CCR)中的值进行比较,在匹配时改变输出信号的状态(置1、置0或翻转),从而输出一定频率和占空比的 PWM 波形。(电路是底下图示中粉色框内的)※相关简称介绍:Input Compare,输入捕获Capture/Compare,输入捕获和输出比较单元寄存器故而CCR=CC+R=捕获比较寄存器(输入捕获和输出比较是共用的)1、PWM(Pulse Width Modulation)脉冲宽度调制2、在具有惯性的系统中。
2025-04-29 15:07:31
1159
原创 stm32 TIM定时中断——江协教程踩坑经验分享
定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断。所以定时器其实是一个计数器,而当这个计数器的输入是一个准确可靠的基准时钟的时候,那么他对这个基准时钟进行技术的过程实际上就是计时的过程。而在stm32中定时器的基准时钟一般是主频72MHz,则对72MHz计72个数,那就是1MHz也就是1us的时间。不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器通用定时器(最常用)基本定时器。
2025-04-22 17:14:43
1120
原创 stm32 EXTI外部中断——江协教程踩坑经验分享
EXTI可以监测指定GPIO口的电平信号,当其产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序,而当中断程序处理完成后还可以返回主程序中断的位置继续执行主程序。(这个返回后能够继续进行主程序是因为之前保护了现场以及回来后可以成功还原现场,这个工作C语言帮我们做了)支持的触发方式上升沿(从低电平变到高电平的瞬间触发中断)/下降沿(从高电平变到低电平的瞬间触发中断)/双边沿(电平变化)/软件触发。
2025-04-19 23:24:10
1366
原创 触发中断和触发事件的区别是什么
响应方式:中断是异步的,处理器需要暂停当前任务来响应;事件是同步的,通常由DMA或其他硬件逻辑直接处理。上下文保存:中断需要保存和恢复任务上下文;事件不需要。优先级:中断有优先级,可以打断其他中断;事件没有优先级。应用场景:中断用于需要快速响应的事件;事件用于需要同步的操作。在STM32中,中断和事件通常通过NVIC(嵌套向量中断控制器)和EXTI(外部中断/事件控制器)来配置和管理。正确使用中断和事件可以提高系统的响应速度和处理效率。
2025-04-19 15:41:32
601
原创 stm32 GPIO输出与输入——江协教程踩坑经验分享
library->rcc.h,在h文件的最下面时库函数所有函数的声明常用的有三种:第一个参数是选择哪个外设。第二个参数是使能enabled或失能disable。//第一个参数是选择哪个外设。第二个参数是使能enabled或失能disable。//RCC AHB外设时钟控制//RCC APB2外设时钟控制//RCC APB1外设时钟控制(输入输出函数在后续输入输出部分分开写)//将指定的GPIO端口恢复到默认状态。//将AFIO复位到默认状态。
2025-04-18 15:16:03
1098
原创 stm32芯片命名规则、外设介绍——江协教程踩坑经验分享
标红色的是电源相关的引脚,标蓝色的是最小系统相关引脚,标绿色的是IO口、功能口的引脚。有FT的代表它能容忍5V的电压,无的最多3.3V,无FT的要接5V的电平就需要加装电平转换电路。主功能是上电后默认的功能,一般和引脚名称相同。默认复用功能是IO口上同时连接的外设功能引脚。配置IO口的时候可以选择是通用IO口还是复用功能。重定义功能的作用是如果有两个功能同时复用在了一个IO口上,而确实同时需要使用这两个功能,可以把其中一个复用功能重映射到其他端口上引脚号引脚名称功能解释1VBAT。
2025-04-16 22:30:34
1592
原创 stm32开发方式、安装、上传程序——江协教程踩坑经验分享
stm32的的开发方式主要有基于寄存器基于标准库基于HLA库的方式;1、基于寄存器:用程序直接配置寄存器,最底层、最直接、效率高,but stm32的寄存器太多、结构复杂,不推荐;2、基于标准库:使用ST官方提供好的封装好的函数,通过调用这些函数来间接地配置寄存器,ST对寄存器封装的比较好,所以此法既能满足对寄存器的配置,也比较易开发,有利于提高开发效率;3、基于HLA库:可以用图形化界面快速配置stm32,快速上手但是隐藏底层逻辑。
2025-04-14 12:06:24
1113
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅