草庐IT

STM32WBA

全部标签

【FOC无刷电机控制】六步换向、FOC,STM32cubemx从零开始搭建BLDC六步换相代码、FOC代码(基于霍尔传感器)

目录O、前言1个人经验2软硬件介绍一、六步换相1新建cubemx工程2工程基础配置(1)RCC时钟配置(2)SYS调试接口(3)工程设置,生成MDK工程3串口(1)cubemx配置(2)printf重映射(3)测试4霍尔传感器(1)Cubemx配置(2)初始化启动(3)测试定时中断(4)测试霍尔中断4开环控制(1)普通PWMcubemx配置(2)普通GPIO配置(3)开环控制二、FOCO、前言用作备忘录,也希望能帮助正在入门摸索的朋友少走弯路,从外设开始,到开环,到闭环。参考文章代码:正点原子、野火、硬石,三家文档几乎一样。(个人感觉原子文档写的好)1个人经验刚开始学无刷电机控制时是直接去看的

【STM32技巧】HX711称重芯片详细说明

概述HX711模块A通道带有128倍信号增益,可以将5mV的电压放大128倍,然后采样输出24bitAD转换的值,单片机通过指定时序将24bit数据读出如何计算传感器供电电压HX711可以在产生VAVDD和AGND电压,即711模块上的E+和E-电压。该电压通过:VAVDD=VBG(R1+R2)/R2例如:VBG为模块儿基准电压1.25V,R1=20K,R2=8.2K,因此得出VAVDD=4.3V(为了降低功耗,该电压只在采样时刻才有输出,因此用万用表读取的值可能低于4.3v,因为万用表测量的是有效值。)测重原理讲解满量程输出电压=激励电压*灵敏度1.0mv/v例如:供电电压是5V乘以灵敏度1

STM32F103ZET6【标准库函数开发】------04五个串口的详细配置

一、硬件介绍正点原子战舰开发板STM32F103ZET6有5个串口,查看引脚图可以找到对应的IO口分别如下串口USART1USART2USART3UART4UART5输入/输出方式USARTx_TXPA9PA2PB10PC10PC12复用推挽输出USARTx_RXPA10PA3PB11PC11PD2浮空输入USART1挂在APB2下USART2,USART3,USART4,USART5挂在APB1下一、实现目的串口调试助手设置波特率设置115200,停止位1,数据为8,校验位None,以十六进制显示和发送。不勾选DTR和RTS。按下KEY0,串口调试助手接收到十六进制下的41以十六进制发送5a

自制DAPLink -- ARM官方源码以及STM32F103C8T6

【本文发布于https://blog.csdn.net/Stack_/article/details/128771308,未经许可禁止转载,转载须注明出处】一、安装工具并配置环境变量ARM的GitHub有如下说明1、python3【官网】【网盘】链接:https://pan.baidu.com/s/1zW_H_eQlkzX3FkXuClFnTA提取码:fp68安装时会自动添加环境变量。如果电脑已有py2环境变量,安装完后在系统变量中将py3提到py2前面,下面的操作完成后卸载或者恢复到py2后面即可。2、Git【官网】【网盘】链接:https://pan.baidu.com/s/1TBMR6B

STM32串口使用说明(代码示例)

本文展现了STM32串口通信配置流程,及示例。根据串口发送方式的不同,使用的中断不同。发送方式:直接收发、DMA收发。此文只展示直接收发方式。目录一、确认使用的串口与对应的引脚二、进行串口配置1、串口IO初始化2、串口配置3、开启中断4、使能串口5、串口接收与发送串口中断服务函数(接收)发送函数(发送)全部配置完成一、确认使用的串口与对应的引脚串口对应引脚(STM32F4)串口号RXDTXD1PA10(PB7)PA9(PB6)2PA3(PD6)PA2(PD5)3PB11(PC11/PD9)PB10(PC10/PD8)4PC11(PA1)PC10(PA0)5PD2PC126PC7(PG9)PC6

(STM32)PWM输出控制电机旋转并且使用编码器读取脉冲数

目录 前言一、pwm输出让电机转 1.电机的接线说明2.驱动的接线说明3.pwm输出代码 pwm.cpwm.h4.输出pwm控制电机旋转二、配置定时器编码器模式1.定时器编码器模式编码器原理编码器相关的概念2.编码器模式——代码部分3.获取脉冲数三、定时读取编码器读取的脉冲数四、计算速度(本篇最重要部分)1.速度计算原理2.速度计算代码 前言正文之前先介绍一下我使用的主控芯片、电机以及驱动。主控芯片是STM32F103C8T6(这个芯片比较普遍、便宜,这款芯片使用熟练之后,我的建议是转到CH32V307VCT6);这里我还想在说一点就是C8T6内的定时器只有4个(TIM1、TIM2、TIM3、

STM32:串口轮询模式、中断模式、DMA模式和接收不定长数据

一.串口轮询模式底层机制:    在STM32每个串口的内部都有两个寄存器:发送数据寄存器(TDR)/发送移位寄存器,当我们调用HAL_UART_Transmit把数据发送出去时,CPU会将数据依次将数据发送到数据寄存器中,移位寄存器中的数据会根据我们设置的比特率传化成高低电平从TX引脚输出。待发送移位寄存器中发数据发送出去后,CPU就会将下一个数据进行相同的发送。        当我们调用HAL_UART_Receive把数据接收过来时,数据会通过RX引脚收到的电平信号进行转化后,会将数据存进接收移位寄存器。接收移位寄存器每接收完1帧就会将数据放到接收数据寄存器。而后CPU会将接收数据寄存器

极度优雅的用stm32串口接收并分析不定长数据的方法(可用于发送和接收浮点数)

极度优雅的用stm32串口接收并分析不定长数据的方法(可用于发送和接收浮点数)应用场景比赛需要ESP-01s原理STM32CUBEMX配置代码编写总结&扩展应用场景比赛需要我准备电赛的时候参加了学校为了准备电赛而举办的的积分赛,队友通过树莓派用给stm32发送执行指令,而我在队里作为写单片机的就需要分析数据包,每一个数据包都比较大也比较复杂,而且不定长,用传统的一个字节一个字节接收数据的方式收串口在代码层面上就显得和很复杂,因此我需要一个能定长接收数据并分析的方法。ESP-01s在我之前用AT指令玩ESP-01s模块的时候,服务器下发的数据往往是不定长的,因此我也需要一个用单片机接收不定长数据

STM32学习----通用定时器的应用(PWM)

STM32的通用定时器STM32单片机的通用定时器,有TIM2、TIM3、TIM4、TIM5这4个。通用定时器的功能,用的比较多的有下面几种:计数功能:向上计数,向下计数,向上/向下计数;输入捕获:测量信号的周期和占空比;输出比较:PWM生成:通用定时器框图通用定时器功能多了,框图也就复杂起来了通用定时器框图分解第一部分:时钟来源时钟来源有很多:CK_INT、TIMx_ETR、ITR0、ITR1、ITR2、ITR3、TI1F_ED、TI1FP1、TI2FP2这9个,可以分下类;CK_INT,就是定时器外设的时钟,比如72MHz,属于内部时钟TIMx_ETR,就是定时器所对应的外部输入,这个外部

STM32 定时器自动重装载寄存器ARR带来的影响,ARPE0和1区别

ARR是啥自动重载寄存器是预装载的。对自动重载寄存器执行写入或读取操作时会访问预装载寄存器。预装载寄存器的内容既可以直接传送到影子寄存器,也可以在每次发生更新事件(UEV)时传送到影子寄存器,这取决于TIMx_CR1寄存器中的自动重载预装载使能位(ARPE)。当>计数器达到上溢值(或者在递减计数时达到下溢值)并且TIMx_CR1寄存器中的UDIS位为0时,将发送更新事件。该更新事件也可由软件产生。计数器时序图,ARPE=0时更新事件,未预装载立刻改变ARR重装载值,计数器从当前值计数到36,而不是原来的FF计数器时序图,ARPE=1时更新事件(TIMx_ARR已预装载)原来ARR的值F5,现在