- 博客(157)
- 收藏
- 关注
原创 基于STM32L4XX 、HAL库的A4915METTR-T三相无刷直流电机(BLDC)驱动应用C语言程序设计
define SPEED_PWM_CHANNEL TIM_CHANNEL_1 // 使用通道1。// 对于 A4915,换相逻辑由内部实现,MCU只需读取霍尔状态,并在正确的时刻给出方向和使能。#define ENABLE_PIN GPIO_PIN_0 // 使能引脚。#define DIR_PIN GPIO_PIN_1 // 方向引脚。#define BRAKE_PIN GPIO_PIN_2 // 刹车引脚。
2026-04-29 10:47:18
43
原创 基于STM32L4XX 、HAL库的L6234PD013TR三相无刷直流电机(BLDC)驱动应用C语言程序设计
STEP1_U_H_V_L_W_OFF = 0, // 电流从 U 进,V 出。STEP2_U_H_W_L_V_OFF, // 电流从 U 进,W 出。STEP3_V_H_W_L_U_OFF, // 电流从 V 进,W 出。STEP4_V_H_U_L_W_OFF, // 电流从 V 进,U 出。STEP5_W_H_U_L_V_OFF, // 电流从 W 进,U 出。STEP6_W_H_V_L_U_OFF // 电流从 W 进,V 出。
2026-04-29 10:42:27
60
原创 基于STM32L4XX 、HAL库的DRV11873PWPR三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 简化后: RPM = (tmp_count * 60000) / (time_diff * 2)// 计算比较值: (ARR + 1) * duty / 100 = 3200 * duty / 100。// 获取当前转速 (转/分)// 公式: RPM = (脉冲数 / 时间差(秒)) * 60 / (极对数/6)// 2. PWM 引脚配置 (TIM1 CH1, PA8)
2026-04-29 10:38:02
61
原创 基于STM32L4XX 、HAL库的DRV10964FFDSNR三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ PWM定时器句柄。// 初始占空比为0。// 2. 配置 FG 输入捕获 (假设已由CubeMX完成)// FG 回调:计算周期并转为转速 (假设 1 pulse/rev)// 设置速度,duty = 0-1000 对应 0%-100%// 缓慢启动:避免 DRV10964 启动失败。// RPM = 60 / (周期秒数)// 此处做除法需注意数据类型,防止溢出。// 初始化:配置PWM和FG输入捕获。// 1. 配置 PWM 输出。// 读取当前转速 (RPM)// 设置转速 0-1000。
2026-04-29 10:31:18
33
原创 基于STM32L4XX 、HAL库的DRV8306HRSMR三相无刷直流电机(BLDC)驱动应用C语言程序设计
通过额外提供的制动 (nBRAKE) 和方向 (DIR) 引脚可制动BLDC电机和设 置电机方向。// 输入捕获定时器 (读取FGOUT)MX_TIM1_Init();
2026-04-29 10:25:25
56
原创 基于STM32L4XX 、HAL库的SBD63006MUV-E2三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 数组元素: {PWMU_EN, PWMV_EN, PWMW_EN}// FG 捕获定时器。// PWM 定时器。// 3. 配置PWM定时器 (TIM1 CH1/2/3)// 预编译换向表 (索引为 Hall A/B/C 组合值)// 引脚映射 (以STM32L4为例,根据实际电路修改)
2026-04-29 10:18:42
38
原创 基于STM32L4XX 、HAL库的DRV8317HREER三相无刷直流电机(BLDC)驱动应用C语言程序设计
该芯片支持高度可配置性,可通过SPI接口(DRV8317S)或引脚(DRV8317H)进行设置—— PWM 模式、转换速率、电流检测增益均为可配置参数。DRV8317集成了多项保护功能,包括欠压锁定(UVLO)、过压保护(OVP)、电荷泵欠压保护(CPUV)、过流保护(OCP)、过温警告(OTW)及过温关机(OTS),旨在保护器件、电机及系统免受故障影响。// 3. 配置 PWM 输出引脚 (IN_A, IN_B, IN_C)// 电压值 = (adc_value * 3.3 / 4096)
2026-04-29 10:11:13
86
原创 基于STM32L4XX 、HAL库的BD63006MUV-E2三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 这里需根据实际硬件连接,调用 HAL_TIM_PWM 的 Channel 使能/禁用。// U相PWM通道。// 需要根据硬件连接具体定义 UH/UL, VH/VL, WH/WL 的组合。// 霍尔传感器中断回调 (每个引脚上升沿/下降沿触发)
2026-04-29 10:04:34
43
原创 基于STM32L4XX 、HAL库的DRV8316CTRGFR三相无刷直流电机(BLDC)驱动应用C语言程序设计
DRV8316C还集成电源管理电路,包括可调压降压稳压器(3.3V/5V,200mA)和 LDO(3.3V/30mA),可用于为外部电路供电。DRV8316C集成了多项保护功能,包括供电欠压锁定(UVLO)、过压保护(OVP)、电荷泵欠压保护(CPUV)、过流保护(OCP)、过温警告(OTW)及过温关机(OTSD),旨在保护器件、电机及系统免受故障影响。// 1. 配置 SLEEP 和 nFAULT 引脚 (已在 HAL_MspInit 或 MX_GPIO_Init 中)// V相 High。
2026-04-29 09:57:37
348
原创 基于STM32L4XX 、HAL库的MP6540GU-Z三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 对应关系:-500(0% 下管开) -> 0;// 设置三相占空比 (值范围: -TIM_PERIOD/2 至 TIM_PERIOD/2,用于简易矢量控制)// 换算示例 (假设 3.3V 参考,12位 ADC,放大倍数 20,采样电阻 0.01 Ohm)// 将带符号数 (-500 ~ 500) 映射到 PWM 比较值 (0 ~ 1000)// 简单测试:U 相以 50% 占空比导通,V 相接地,W 相高阻(或关闭)// 注意:这只是锁定转子测试,实际运行需要正确的位置反馈(霍尔/无感观测器)
2026-04-29 09:50:16
84
原创 基于STM32L4XX 、HAL库的L6205PD013TR步进电机驱动器驱动程序应用设计
define MOTOR_A_PWM_GPIO_PIN GPIO_PIN_5 // 例如 TIM2_CH1 在 PA5。// PWM 频率 = 80MHz / (Prescaler + 1) / (Period + 1)// 步/秒 (示例)// --- 2. 配置 GPIO (IN1, IN2, EN) ---case MOTOR_FREE: // 慢衰减/自由停止。// --- 3. 配置 PWM 引脚 (用于斩波) ---case MOTOR_CCW: // 反转。
2026-04-28 14:23:26
49
原创 基于STM32L4XX 、HAL库的ATD5833QNN步进电机驱动器驱动程序应用设计
ATD5833支持自动半流锁定功能,在无STEP变化时, 自动减半输出电流,降低系统锁定功耗。// 初始化 GPIO (PA0, PA1 为输出)// 假设我们要正转 2000 步 (对于1.8度电机,2000步是转10圈)// 频率 = 定时器时钟 / (预分频 + 1) / (自动重载 + 1)// 极短的置高延时 (可根据实际情况决定是否加延时)// 使用宏定义封装硬件连接 (以PA0为STEP, PA1为例)// 产生一次步进脉冲 (软件延时法,适用于低速或简单应用)
2026-04-28 14:18:43
127
原创 基于STM32L4XX 、HAL库的MS35774步进电机驱动器驱动程序应用设计
/ 2. 设置速度为60转/分 (电机为1.8度/步,16细分即一圈需3200步)// 设置转动速度 (rpm: 目标转速, micro_steps_per_rev: 电机旋转一圈所需的总步数,即细分数*200)// 3. 正转200圈 (一圈3200步 * 200 = 640,000步)// 每秒脉冲数 (PPS) = (RPM * 电机旋转一圈总步数) / 60秒。芯片集成了过温保护,欠压保护,过流保护,短 地保护,短电源保护。// 每步间隔微秒数 = 1,000,000 / PPS。
2026-04-28 14:13:33
46
原创 基于STM32L4XX 、HAL库的TMC2300-LA-T步进电机驱动器驱动程序应用设计
集成的功率MOSFET采用内置电荷泵技术,即使在低供电电压下也能实现业界领先的RDSon特性,最大可承载1.2A RMS电机电流。// 寄存器地址(4位) + 读写位(RW=0读/1写)// 关键配置:TOFF=4, HSTRT=5, HEND=2, MRES=0(256 细分)// 1. 设置电流:IHOLD=4(20%), IRUN=16(100%), 配置时间等。STEP/DIR接口支持最多256个微步进,实现步进电机平滑运行;支持2相步进电机,最大电流:RMS值≤1.2A,峰值电流≤2A;
2026-04-28 14:09:09
53
原创 基于STM32L4XX 、HAL库的DRV8912QPWPRQ1步进电机驱动器驱动程序应用设计
define DRV8912_REG_PWM0 0x14 /* PWM发生器0占空比寄存器 */#define DRV8912_CMD_WRITE (0x00 << 15) /* 写操作 (RW = 0) */#define DRV8912_CMD_READ (0x01 << 15) /* 读操作 (RW = 1) */#define DRV8912_REG_OCP 0x0C /* 过流保护配置 *//* 读操作时,数据字段通常写0 */
2026-04-28 14:03:14
39
原创 基于STM32L4XX 、HAL库的DRV8834RGER步进电机驱动器驱动程序应用设计
*==================== 微步进模式定义 ====================*//*==================== API函数声明 ====================*//*==================== 私有函数声明 ====================*//*==================== 方向定义 ====================*/
2026-04-28 13:57:25
46
原创 基于STM32L4XX 、HAL库的DRV8818PWPR步进电机驱动器驱动程序应用设计
/ en: 0=使能输出, 1=禁用输出。// ==================== 硬件引脚映射 (根据实际电路修改) ====================HAL_Delay(2);STEP_MODE_QUARTER = 2, // USM1=1, USM0=0 1/4微步进。STEP_MODE_EIGHTH = 3 // USM1=1, USM0=1 1/8微步进。STEP_MODE_FULL = 0, // USM1=0, USM0=0 全步进。
2026-04-28 13:50:37
43
原创 基于STM32L4XX 、HAL库的DRV8424RGER步进电机驱动器驱动程序应用设计
define DRV8424_DIR_PIN GPIO_PIN_1 // 方向控制 (0:正转, 1:反转)// 例如:__HAL_TIM_SET_AUTORELOAD(&htim2, 1000000 / freq_hz);#define DRV8424_STEP_PIN GPIO_PIN_0 // STEP 脉冲输入。
2026-04-28 13:44:53
73
原创 基于STM32L4XX 、HAL库的DRV8833RTYR步进电机驱动器驱动程序应用设计
/ 注:具体计算取决于你的定时器配置,例如 Period=1000, duty_cycle 0-100 -> compare_value = duty_cycle * 10。// 控制电机方向/停止/刹车。//================== 硬件引脚映射 (请根据实际电路修改) ==================
2026-04-28 13:37:34
176
原创 基于STM32L4XX 、HAL库的AT8833CQ步进电机驱动器驱动程序应用设计
/ 例如:delay_ms(2) --> 2ms一步,每秒约500步,即2.5圈/秒。// 让电机正转 512 步(对于20°步距角的电机,一圈一般是200步,此处只是示例)// 延时函数应在应用层调用 Step 函数之间执行,不建议写死在驱动里。// 注意:对于步进电机,每一步之间需要一定的延时(取决于所需的转速)// 所有输出低电平,电机制动释放。
2026-04-28 13:30:29
29
原创 基于STM32F1XX 、HAL库的VEML6031X00环境光传感器驱动应用C语言程序设计
/ 积分时间: 0x0 = 25ms, 0x1 = 50ms, 0x2 = 100ms, 0x3 = 200ms, 0x4 = 400ms, 0x5 = 800ms。// 根据数据手册 Table 4,Gain=x2, IT=100ms 对应 0.0096 lx/step?// 查表或计算得知分辨率 = 0.0034 * (2/2) * (100/100) = 0.0034?// 增益设置: 0x0 = x1, 0x1 = x2, 0x2 = x0.25, 0x3 = x0.5。// I2C外设初始化。
2026-04-27 14:57:22
39
原创 基于STM32F1XX 、HAL库的XYC-ALS21C-K1环境光传感器驱动应用C语言程序设计
define XYC_ALS21C_ENABLE_AEN (1 << 1) // ALS 使能。#define XYC_ALS21C_ENABLE_PON (1 << 0) // 上电。// 设置积分时间 (ATIME = 0xDB, 约 100ms)// 简化实现:等待至少 ATIME 时间 (例如 100ms)// 不同光强范围采用不同系数 (示例,需实际标定)// 检查 ID 是否为预期值 (例如 0x21)
2026-04-27 14:52:59
29
原创 基于STM32F1XX 、HAL库的VEML3235SL环境光传感器驱动应用C语言程序设计
define VEML3235SL_IT_40MS 0x00 // 积分时间 40ms (bit 10:6 具体配置需查手册)#define VEML3235SL_GAIN_1 0x00 // 增益 x1 (bit 11: 0)// 配置系统时钟 (需根据实际板卡编写)// --- 宏定义 --------------------------------// --- 函数声明 ------------------------------
2026-04-27 14:48:03
27
原创 基于STM32F1XX 、HAL库的TCS34727FN环境光传感器驱动应用C语言程序设计
TCS3472彩色传感器应用范围广泛,涵盖RGB LED背光控制、固态照明、健康/健身产品、工业过程控制及医疗诊断设备等领域。其内置的红外阻断滤光片集成于芯片内部,并集中分布于彩色传感光电二极管上,能有效抑制入射光中的红外光谱成分,从而实现精准的色彩测量。•低功耗模式——2. 5μA 睡眠状态 • 65μA 等待状态,可编程等待时间范围为2.4毫秒至7秒以上。• 通过最小化红外(IR)和紫外(UV)光谱成分的影响,可在不同光照条件下实现精确的色彩与光照传感测量。• 支持红、绿、蓝(RGB)及透射光检测。
2026-04-27 14:42:32
36
原创 基于STM32F1XX 、HAL库的OPT4001DNPRQ1环境光传感器驱动应用C语言程序设计
OPT4001-Q1 的输出是半对数 的,具有 9 个二进制对数满量程照度范围,每个范围内具有高度线性响应,使得 PicoStar™ 型号的测量能力为 312.5μlux 至 84klux,USON 型号的测量能力为 400µlux 至 107klux。#define OPT4001_CONFIG_MODE (0x01 << 9) // 模式: 0=待机, 1=连续。#define OPT4001_CONFIG_CT_MASK (0x0F << 5) // 转换时间掩码。
2026-04-27 14:35:48
357
原创 基于STM32F1XX 、HAL库的AS7341-DLGM环境光传感器驱动应用C语言程序设计
/ 实际推荐循环查询: while(AS7341_CheckDataReady() == 0);#define AS7341_CDATA_BASE 0xC0 // 通道 0-7 依次排列。
2026-04-27 14:22:17
312
原创 基于STM32F1XX 、HAL库的TSL25911FN环境光传感器驱动应用C语言程序设计
/ 积分时间系数: 100ms = 1, 200ms = 2, 300ms = 3, 400ms = 4, 500ms = 5, 600ms = 6。// 公式: Lux = ( (C0 - C1) * (1.0 - (C1/C0)) ) / GAIN / INTEGRATION_TIME_FACTOR。// 简化公式或查表法通常使用: Lux = (C0 - C1) * (GAIN_CORRECTION / INT_TIME_CORRECTION)// 全光谱 + IR。
2026-04-27 14:13:35
34
原创 基于STM32F1XX 、HAL库的RPR-0521RS环境光传感器驱动应用C语言程序设计
/ I2C 初始化 (速率 100kHz 或 400kHz)_write_reg(RPR0521RS_SYSTEM_CONTROL, 0x80);#include "stm32f1xx_hal.h" // 根据你的库选择。// 1. 软复位或读取ID检测设备是否存在 (可选)
2026-04-27 14:08:01
40
原创 基于STM32F1XX 、HAL库的LTR-329ALS-01环境光传感器驱动应用C语言程序设计
/ 计算 Lux (典型公式: Lux = (CH0 * 1.0 - CH1 * 4.0) * (1/gain_factor) * (1/int_factor) )LTR329_GAIN_4X = 2, // 4x, 范围 0.25~16k lux。LTR329_GAIN_2X = 1, // 2x, 范围 0.5~32k lux。LTR329_GAIN_1X = 0, // 1x, 范围 1~64k lux。// 设置测量速率和积分时间 (写入 ALS_MEAS_RATE)
2026-04-27 14:02:39
152
原创 基于STM32F1XX 、HAL库的VEML7700-TR环境光传感器驱动应用C语言程序设计
/ 假设这个函数配置了I2C1。// 推荐配置:增益=1,积分时间=100ms,开启传感器。// 另一种方法:手动配置I2C1(外设时钟100kHz)// 读取光照强度 (Lux),若输入指针为NULL则会被忽略。•尺寸(长×宽×高,单位:mm):6.8×2.35×3.0。// 以下寄存器地址定义基于VEML7700数据手册。// 软件关机/开机 (1=关机, 0=开机)// 配置寄存器位掩码 (用于构造配置值)// 初始化失败处理。// 宏定义:用于延时和I2C超时。// 写入16位数据到指定寄存器。
2026-04-27 13:56:42
43
原创 基于STM32L4XX 、HAL库的TMP118MAIYMSR数字温度传感器驱动应用C语言程序设计
TMP118 具有 16 位分辨率,LSB 为 7.8125m°C,无需额外校准即可实现从 20°C to 50°C 的 ±0.1°C (最大精度),有助于满足医疗级电子温度 计的系统级 ASTM E1112 和 ISO 80601 精度标准。// ADDR 引脚接地: 0x48, 接 VDD: 0x49, 接 SDA: 0x4A, 接 SCL: 0x4B。#define TMP118_ADDR_WRITE 0x90 // 7位地址 0x48 左移一位。// 假设使用 I2C1。
2026-04-20 10:11:33
46
原创 基于STM32L4XX 、HAL库的TMP117MAIYBGR数字温度传感器驱动应用C语言程序设计
TMP117 可提供 16 位温度结果,具有 0.0078°C 的分 辨率,且无需校准即可在 -20°C 到 50°C 的温度范围内 实现高达 ±0.1°C 的精度。#define TMP117_CONFIG_MODE_CC 0x0000 // 连续转换模式。#define TMP117_CONFIG_MODE_SD 0x0001 // 关断模式。–-55°C 至 125°C 范围内为 ±0.25°C(最大值)–-55°C 至 150°C 范围内为 ±0.3°C(最大值)
2026-04-20 10:07:04
190
原创 基于STM32L4XX 、HAL库的TMP275AIDGKR数字温度传感器驱动应用C语言程序设计
TMP275AIDGKR是TI推出的高精度数字温度传感器,具有±0.5°C精度,12位ADC分辨率(最低0.0625°C),工作电压2.7-5.5V。该器件支持I²C/SMBus接口,单总线可连接8台设备,提供SOIC-8/VSSOP-8封装。主要特性包括50μA低功耗、-40°C至125°C工作范围,无需外部元件即可实现温度检测。适用于电源监测、热保护、环境控制等场景,支持12位分辨率编程设置。配套驱动代码展示了I2C初始化和温度读取实现方案。
2026-04-20 10:02:45
33
原创 基于STM32L4XX 、HAL库的TMP100NA/3K数字温度传感器驱动应用C语言程序设计
define TMP100_RES_12BIT 0x0060 // 0.0625°C, 转换时间 ~320ms (默认)#define TMP100_ADDR_WRITE 0x90 // 7位地址0x48左移1位 (0x48 << 1)#define TMP100_CONFIG_R0 0x0060 // 分辨率 Bit0 (9/10/11/12位)#define TMP100_CONFIG_TM 0x4000 // 比较器/中断模式选择。
2026-04-13 17:10:30
47
原创 基于STM32L4XX 、HAL库的TMP1075NDRLR数字温度传感器驱动应用C语言程序设计
define TMP1075_CFG_ALERT_MODE (1 << 1) // ALERT模式 (1:比较器模式, 0:中断模式)#define TMP1075_CFG_ALERT_POL (1 << 2) // ALERT引脚极性 (1:高电平有效)#define TMP1075_CFG_CONV_0 (0 << 5) // 27.5 ms (默认)#define TMP1075_CFG_ONE_SHOT (1 << 15) // 单次转换模式。
2026-04-13 17:04:35
44
原创 基于STM32L4XX 、HAL库的LM75BD,118数字温度传感器驱动应用C语言程序设计
* ======================== 寄存器地址定义 ======================== *//* ======================== API函数声明 ======================== *//* ======================== 器件地址定义 ======================== *//* ======================== 结构体定义 ======================== */
2026-04-13 16:59:40
48
原创 基于STM32L4XX 、HAL库的TMP119AIYBGR数字温度传感器驱动应用C语言程序设计
define TMP119_CONFIG_DR_4HZ (0 << 8) // 转换速率 4Hz (默认)#define TMP119_CONFIG_DR_0P5HZ (3 << 8) // 转换速率 0.5Hz。#define TMP119_CONFIG_DR_2HZ (1 << 8) // 转换速率 2Hz。#define TMP119_CONFIG_DR_1HZ (2 << 8) // 转换速率 1Hz。// 初始化串口用于打印。
2026-04-13 16:48:01
364
原创 基于STM32L4XX 、HAL库的TMP112AIDRLR数字温度传感器驱动应用C语言程序设计
TMP112A、TMP112B 和 TMP112Dx 具有 0.5°C 的精度,经优化分别在 3.3V、1.8V 和 ≥1.5V 的工作电压下提供出色的 PSR 性能,而 TMP112N 则 提供 1°C 的精度。–-25°C 至 85°C 范围内 (V+ ≥ 1.5V) 为 ±0.5°C (最大值)// I2C 外设初始化 (速率 100kHz)– 0°C 至 +65°C 范围内 (3.3V) 为 ±0.5°C(最大 值)– 0°C 至 +65°C 范围内 (1.8V) 为 ±0.5°C(最大 值)
2026-04-13 16:41:35
112
原创 基于STM32L4XX 、HAL库的TMP102AIDRLR数字温度传感器驱动应用C语言程序设计
/ 具体配置值需参考数据手册,此处写入 0x60A0 为例 (关闭关机模式,正常转换)// 右移 4 位 (因为低 4 位在标准模式下无用),并乘以分辨率 0.0625。// 指向配置寄存器。#define TMP102_CONFIG_REG 0x01 // 配置寄存器。#define TMP102_TEMP_REG 0x00 // 温度寄存器。// 配置寄存器值:16ms转换时间,12位精度,连续转换模式。// ADD0 接 GND 时,地址为 0x48 (7位地址)// 1. 发送温度寄存器地址。
2026-04-13 16:34:56
319
原创 基于STM32L4XX 、HAL库的TMP117AIDRVR数字温度传感器驱动应用C语言程序设计
define TMP117_CONFIG_ALERT_POL 0x0008 /* ALERT 极性高有效 */#define TMP117_CONFIG_AVG_16 0x2000 /* 位13: 16次平均 */#define TMP117_CONFIG_ALERT_EN 0x0004 /* ALERT 引脚使能 */#define TMP117_CONFIG_AVG_8 0x1000 /* 位12: 8次平均 *//* 每秒读取一次 *//* 清除模式位 */
2026-04-13 16:29:45
63
### 基于深度学习的茶叶种类识别系统设计与应用摘要 本文
2025-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅