- 博客(20)
- 收藏
- 关注
原创 multiple definition of `xxxx`问题解决(vscode开发stm32)
multiple definition of `xxxx`问题解决(vscode开发stm32),仅需在.c文件中定义变量,再在.h文件中声明一个外部链接(使用extern关键字)
2024-08-11 22:00:00
636
原创 IIC和SPI模块代码(HAL库,直接取用)
HAL库编写的IIC与SPI模块代码,包括start/stop,发送/接收字节,发送/接收应答等。立个flag:本月之前把Veriog的语法写出来!使用时需要根据从机电气属性修改传输速率与延时。Delay函数可用GPT生成。不要忘了根据需求修改IO口。
2024-08-10 16:25:29
312
原创 让无刷电机转起来——换相(BLDC)
说起电机换相,对于普通的直流电机(如舵机,空心杯)来说,只需要向其输入一个方向的PWM波,电机就能按照我们期望的方向与速度旋转。而稍微复杂一点的直流电机,如步进电机与无刷电机,则不能简单地使用一个PWM脉冲就可驱动。本文介绍的,即是常见直流电机中最为复杂的电机——无刷直流电机(Brushless Direct Current Motor,BLDC)的换相方法
2024-04-09 20:37:30
10680
7
原创 PWM波输出-定时器输出比较单元
电平,作为单片机的“肌肉”,承担着实践单片机的“想法“的重要任务。而PWM波,则是电平这个大类的重中之重,可以说,没有PWM波,单片机与外界的复杂信息交换就无法实现。
2024-03-31 15:47:52
1164
17
原创 电平输入检测-定时器输入捕获
输入捕获模块,顾名思义,当外界有电平输入MCU时,定时器的输入捕获模块能够捕获到电平,进而通过时基单元(计数器),记录捕获的电平的时间、占空比等数据。
2024-03-28 20:29:45
1506
3
原创 机器人是怎么计时的(通用定时器 - 时基单元)
智能洗碗机,智能冰箱,智能电饭煲……这些“机器人”(我们姑且这样称呼它们)都有一个共同的功能——计时。你是否有过好奇——它们是如何精确而稳定地计量时间的呢?
2024-03-24 14:51:50
1572
2
原创 摆脱杜邦线——使用USB烧录(STM32)
链接:https://pan.baidu.com/s/1Z7wbR-oR2cyGio6uXVDTSg。1)烧录程序时,需要将BOOT0设置为1,烧录完毕后,将BOOT0设置为0,BOOT1一直为0,不变。2)若想使用软件设置BOOT0,关键词:正点原子一键下载电路。3)关于串口的使用,参考江科大视频。usb,CH340芯片。
2024-03-01 08:53:03
3679
1
原创 寄存器编程基础工程文档建立(STM32)
/此处“合适的环境”包括硬件环境、设置复位处理程序、初始化运行环境、调用main函数等。core_mx.c,此文件包含了与ARM Cortex-M4处理器核心直接相关的实现代码。stm32f4XXX.h文件,包含了当前型号芯片的寄存器信息、外设信息、内存映射等。也就是.s文件,系统上电复位后第一个执行的就是启动文件。将头文件换成stm32f401xe.h后,报错消除。启动文件(startup_XXXXXX.s)头文件(stm32fXXXXX.h)作用为为C语言的运行建立合适的环境。
2024-02-25 13:16:50
779
原创 STM32F401RET6寄存器手册阅读标记
对于时钟树配置,可参考STM32CubeMX中的时钟树配置,STM32CubeMX将基础配置图像化,较为简单。RCC_CR寄存器的HSIRDY位为只读位,当读取值为1时,表示HSI振荡器准备就绪,当HSION位被设置时,HSIRDY会自动设置为低电平。//问题标记:USART配置寄存器信息是如何与USART1/2/3建立联系的(为什么不是三个分别配置)查阅寄存器手册可知,需要配置时钟的模块有:USART1,IO port A。(2)TX配置方法(寄存器手册512页)(4)配置寄存器(寄存器手册548页)
2024-02-24 19:40:46
1097
原创 如何阅读芯片手册(以MPU6050为例)
思路:通过给芯片内的寄存器(Register)中每一个位(Bit)设置电平(0或1),让芯片内部框图中的目标路径实现,从而实现芯片功能(也就是“配置寄存器”)
2024-02-10 17:34:48
1737
1
原创 MOS管与三极管学习记录
1.Drain-Source Breakdown Voltage : 漏源击穿电压,漏极与源极之间的最大电压,超过此电压可能会导致器件损坏。对于PNP,基极有电流流入(基极从右到左的电流,由集电极提供),整个三极管会出现如红色箭头所示的电流。对于P沟道,G极电压 < S极电压,从D极到S极如图方向导通。对于NPN,基极有电流流出(基级从左到右的电流),整个三极管会出现如红色箭头所示的电流。工作条件:对于N沟道,G极电压 > S极电压,从S极到D极如图方向导通;重要参数:(见三级管数据手册,可在嘉立创下载)
2024-02-10 16:58:48
1069
1
原创 NTC热敏电阻(STM32F103C8T6)
通过上式计算出Rntc的值,对照NTC电阻的阻值—温度表,可以查阅此时的温度(可找商家提供)(不理解这里可以看一下。
2024-02-07 10:32:13
1354
2
原创 PID学习记录
其中,OUT为PWM的脉宽;Kp、Ki、Kd为常数,我们所说的“PID调参”,就是修改这三个参数的值,使PID的输出值(OUT)更加接近于我们的期望值(我们的期望值(电机的转速,温度)是通过PWM波控制的);out0是一个常数,可设置为1,以避免Ek = 0时Out也等于0。T为PID计算周期, Ti为积分时间,Td为微分时间(知道即可)。PID的三个分式从左到右分别为,比例控制,积分控制,微分控制。上式为PID的最终输出值。
2024-02-06 22:25:02
852
1
原创 MPU6050辅助IIC(HMC5883L,STM32F103C8T6)
当系统处理器配置完毕时(直通模式),应切换为主模式,这样可以既可以节省IO口,又可以节省MCU的空间(直通模式说明上提及“直通模式下系统处理器也可以访问MPU6050”,不知道这是不是意味着可以用一根总线挂载两个设备)辅助IIC有两种模式,一种是主模式,用于MPU6050读取外部传感器数据;一种是直通模式,用于系统处理器配置外部传感器。本项目使用MPU6050辅助IIC接口,挂载HMC5883L形成九轴传感器(加速度计、陀螺仪、磁力计)MPU6050设置直通模式。(代码,原理图,制版文件,参考文档)
2024-02-03 13:40:48
3456
13
原创 HMC5883L电子指南针(STM32F103C8T6)
项目分为三个步骤,一是通过HMC5883L采集磁场信息,传输到STM32内;二是STM32将角度信息传输到SG90;第三个步骤是将HMC5883L的信息转换为SG90的角度信息。原理:指数移动平均值(Exponential Moving Average,简称EMA)硬件:HMC5883L,STM32F103C8T6,SG90舵机。其中,x,y为磁场矢量在x,y轴上的投影(HMC5883L测量值)项目名称:电子指南针。(2)磁场强度转换角度。
2024-01-30 18:45:03
3516
8
空空如也
使用vscode+STM32CubeMX+EIDE开发stm32f103c8t6
2024-08-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人