- 博客(91)
- 收藏
- 关注
原创 基于STM32L4XX 、HAL库的TMP144YFFR数字温度传感器驱动应用C语言程序设计
define TMP144_ADDRESS 0x00 // 默认为全局地址,用于单器件或MDA命令。#define TMP144_CMD_READ_TEMP 0x00 // 读取温度寄存器命令。if (temp_raw & 0x800) { // 判断第11位(符号位)
2026-01-08 15:33:30
2
原创 基于STM32L4XX 、HAL库的TMP103AYFFR数字温度传感器驱动应用C语言程序设计
此外,该接口还支持多器件存取(MDA)命 令,允许主控器与总线上的多个器件同时进行通信,从 而不必向总线上的每个TMP103个别发送命令。#define TMP103_I2C_ADDR (0x48 << 1) // HAL库要求地址左移1位。// 使用Mem_Read,它会自动处理“发送寄存器地址-重复启动-读取数据”的时序[citation:4]* @retval HAL状态 (HAL_OK / HAL_ERROR)// TMP103返回的8位数据即为有符号的温度值。
2026-01-08 15:26:56
4
原创 基于STM32F1XX 、HAL库的OPT3002DNPR环境光传感器驱动应用C语言程序设计
凭借内 置的满量程设置功能,无需手动选择满量程范围即可在 1.2nW/cm2至10mW/cm2范围内进行测量。= 0x3002) { // OPT3002的固定器件ID。// 设置为单次模式。
2026-01-08 15:16:56
3
原创 基于STM32F1XX 、HAL库的OPT4001-Q1环境光传感器驱动应用C语言程序设计
OPT4001-Q1 的输出是半对数 的,具有 9 个二进制对数满量程照度范围,每个范围内具有高度线性响应,使得 PicoStar™ 型号的测量能力为 312.5μlux 至 84klux,USON 型号的测量能力为 400µlux 至 107klux。// 禁用中断(示例)
2026-01-08 15:10:03
312
原创 基于STM32F1XX 、HAL库的STK3311-X环境光传感器驱动应用C语言程序设计
define STK3311_REG_ALS_DATA0_LOW 0x08 /* 通道0数据低字节 */#define STK3311_REG_ALS_DATA0_HIGH 0x09 /* 通道0数据高字节 */#define STK3311_REG_ALS_DATA1_LOW 0x0A /* 通道1数据低字节 */#define STK3311_REG_ALS_DATA1_HIGH 0x0B /* 通道1数据高字节 *//* 设置默认校准系数,实际需校准 */
2026-01-08 09:10:49
138
原创 基于STM32F1XX 、HAL库的VEML6030环境光传感器驱动应用C语言程序设计
/ 例如:if (dev->gain == VEML6030_GAIN_1 && dev->it == VEML6030_IT_100MS) resolution = 0.0036;#define VEML6030_CONF_ALS_SD (0x0001) // 1:关断, 0:使能。// 3. 应用高光补偿公式(当使用1/4或1/8增益且lux>1000时)[citation:3]// 默认值 (增益x1, 100ms)// 1. 计算分辨率 (lx/count),基于增益和积分时间。
2026-01-06 09:59:55
209
原创 基于STM32F1XX 、HAL库的VEML7700-TT环境光传感器驱动应用C语言程序设计
define VEML7700_I2C_ADDR (0x20 << 1) // 七位地址为0x20,HAL库需要左移一位。#define VEML7700_ALS_SD_MASK 0x0001 // 关机位 (1=关机, 0=运行)#define VEML7700_ALS_INT_EN_MASK 0x0002 // 中断使能。/* 增益 (ALS_GAIN) 选项 - 对应寄存器位[12:11] *//* 积分时间 (ALS_IT) 选项 - 对应寄存器位[9:6] */
2026-01-06 09:53:58
7
原创 基于STM32F1XX 、HAL库的VEML6040A3OG环境光传感器驱动应用C语言程序设计
/ 1. 硬件初始化 (HAL_Init, SystemClock_Config, MX_GPIO_Init, MX_I2C1_Init...)#define VEML6040_CONF_SD (0x01 << 0) // 关断模式 (与AF位相同,功能相反)#define VEML6040_CONF_IT_40MS (0x00 << 4) // 积分时间40ms。#define VEML6040_CONF_AF (0x01 << 0) // 自动测量模式。
2026-01-06 09:48:08
8
原创 基于STM32F1XX 、HAL库的VCNL4040M3OE环境光传感器驱动应用C语言程序设计
define VCNL4040_ALS_CONF 0x00 // ALS配置寄存器。#define VCNL4040_ALS_DATA 0x09 // ALS数据寄存器。#define VCNL4040_PS_DATA 0x08 // PS数据寄存器。#define VCNL4040_ALS_THDH 0x01 // ALS高阈值。#define VCNL4040_ALS_THDL 0x02 // ALS低阈值。// 配置数据高字节: 开启ALS。
2026-01-06 09:41:51
91
原创 基于STM32F1XX 、HAL库的VEML3328环境光传感器驱动应用C语言程序设计
define VEML3328_REG_IR_DATA_H 0x10 // 红外数据高字节。#define VEML3328_REG_IR_DATA_L 0x11 // 红外数据低字节。#define VEML3328_REG_R_DATA_L 0x09 // 红色数据低字节。#define VEML3328_REG_G_DATA_L 0x0B // 绿色数据低字节。#define VEML3328_REG_B_DATA_L 0x0D // 蓝色数据低字节。
2026-01-06 09:34:40
10
原创 基于STM32F4XX 、HAL库的FHT31-TR温湿度传感器驱动应用C语言程序设计
/ 接收缓冲区: 温度高/低/CRC, 湿度高/低/CRC。#define FHT31_CMD_MEAS_MEDREP 0x2C0D // 中等重复性测量命令。#define FHT31_CMD_MEAS_HIGHREP 0x2C06 // 高重复性测量命令。#define FHT31_CMD_MEAS_LOWREP 0x2C10 // 低重复性测量命令。#define FHT31_CMD_READ_STATUS 0xF32D // 读状态寄存器。// 低字节 (LSB)
2026-01-04 10:06:25
9
原创 基于STM32F4XX 、HAL库的SHT30-DIS-B2.5KS温湿度传感器驱动应用C语言程序设计
与前代产品相比,SHT3x-DIS在智能性、可靠性和精度方面均有提升,具备增强的信号处理能力、两个独特且用户可选的I2C地址以及最高1MHz的通信速度。// 4. CRC校验(校验前2字节的CRC是否等于第3字节;#define SHT30_I2C_ADDR (0x44 << 1) // 默认地址,ADDR接GND。// 根据数据手册公式转换:T = -45 + 175 * raw_temp / (2^16 - 1)// 3. 读取6字节数据(温度高、低、CRC;// CRC校验失败,数据不可靠。
2026-01-04 09:59:39
14
原创 基于STM32F4XX 、HAL库的FHT30-TR温湿度传感器驱动应用C语言程序设计
define FHT30_I2C_ADDR (0x44 << 1) // 常见地址之一,以0x44为例。// 组合原始数据(假设数据格式:字节0:温度高8位,字节1:温度低8位,字节2:CRC)#define FHT30_CMD_MEAS_HIGH 0x2C06 // 高重复性测量命令。#define FHT30_CMD_READ_STATUS 0xF32D // 读状态寄存器命令。#define FHT30_CMD_SOFT_RESET 0x30A2 // 软复位命令。
2026-01-04 09:52:35
290
原创 基于STM32F4XX 、HAL库的 AHT20-F温湿度传感器驱动应用C语言程序设计
AHT20-F,新一代温湿度传感器在尺寸与智能方面建立了新的标准:它嵌入了适。于回流焊的双列扁平无引脚SMD封装,底面3 x 3mm ,高度1.0mm。一个经过改进的MEMS半导体电容式湿度传感元件和一个标准的片上温度传感元件,其性能已经大大提升甚至超出了前一代传感器的可靠性水平,增加了PTFE防水透气。广泛应用于消费电子、医疗、汽车、工业、气象等领域,例如:暖通空调、除湿器和冰。// 每2秒读取一次。// 初始化失败处理。膜大大提高了在恶劣环境下的性能。
2026-01-04 09:44:21
9
原创 基于STM32F4XX 、HAL库的 SHT20-TR-1.5KS温湿度传感器驱动应用C语言程序设计
define SHT20_CMD_TRIG_RH_MEASUREMENT_NHM 0xF5 // 触发湿度测量(非保持主模式)#define SHT20_CMD_TRIG_T_MEASUREMENT_NHM 0xF3 // 触发温度测量(非保持主模式)#define SHT20_CMD_TRIG_T_MEASUREMENT_HM 0xE3 // 触发温度测量(保持主模式)#define SHT20_CMD_TRIG_RH_MEASUREMENT_HM 0xE5 // 触发湿度测量(保持主模式)
2025-09-23 10:19:37
65
原创 基于STM32F4XX 、HAL库的GXHT30C温湿度传感器驱动应用C语言程序设计
define GXHT30C_STATUS_WRITE_CHK (1 << 0) // 写数据校验状态。#define GXHT30C_STATUS_HUMI_TRACK (1 << 11) // 湿度跟踪报警。#define GXHT30C_STATUS_TEMP_TRACK (1 << 10) // 温度跟踪报警。#define GXHT30C_STATUS_CMD_STATUS (1 << 1) // 命令执行状态。
2025-09-23 10:13:06
79
原创 基于STM32F4XX 、HAL库的 SHT30-DIS-B10KS温湿度传感器驱动应用C语言程序设计
define SHT30_I2C_ADDR_READ ((0x44 << 1) | 0x1) // 读地址。#define SHT30_I2C_ADDR_WRITE (0x44 << 1) // 写地址。printf("SHT30温湿度传感器测试程序启动...\r\n");printf("CRC校验错误\r\n");printf("读取SHT30数据失败\r\n");printf("SHT30初始化成功\r\n");printf("SHT30初始化失败\r\n");
2025-09-23 10:00:47
86
原创 基于STM32F4XX 、HAL库的 SHT40-AD1B-R2温湿度传感器驱动应用C语言程序设计
define SHT40_I2C_ADDR_READ ((0x44 << 1) | 1) // 读地址: 0x89。#define SHT40_I2C_ADDR_WRITE (0x44 << 1) // 写地址: 0x88。#define SHT40_CMD_MEAS_HIGH_PREC 0xFD // 高精度测量命令。// 6. 将湿度值限制在0-100%RH的合理范围内:cite[2]// 3. 读取6个字节的数据(温度、湿度原始值及CRC校验)// SHT40的I2C地址定义。
2025-09-23 09:56:38
195
原创 基于STM32L4XX 、HAL库的A3916GESTR-T-1步进电机驱动器软硬件应用设计
/ 定时器通道 (e.g., TIM_CHANNEL_1)* @param dir: 方向 (A3916_DIR_CW 或 A3916_DIR_CCW)MX_TIM2_Init();// 对于高速应用,应使用HAL_Delay_us()或使用定时器实现非阻塞延迟。
2025-09-22 14:17:41
415
原创 基于STM32L4XX 、HAL库的SY6702DFC步进电机驱动器软硬件应用设计
/ nSLEEP GPIO端口 (可选,如果使用睡眠功能)// IN1 GPIO引脚,如 GPIO_PIN_0。// nSLEEP GPIO引脚 (可选)// 根据真值表,IN1=H, IN2=H 或 IN1=L, IN2=L 均可刹车。// IN2 GPIO端口。// IN2 GPIO引脚。MOTOR_CCW // CounterClockwise 逆时针/反向。// CubeMX生成的函数。MOTOR_CW // Clockwise 顺时针/正向。
2025-09-22 13:51:00
60
原创 基于STM32L4XX 、HAL库的DRV8428RTER步进电机驱动器软硬件应用设计
该器件使用内部 PWM 电流调节方案,该方案能在 智能调优和混合衰减选项之间进行选择。智能调优可通 过自动调节实现出色的电流调节性能,并对电机变化和 老化效应进行补偿和减少电机的可闻噪声。借助简单的 STEP/DIR 接口,可通过外部控制器管理 步进电机的方向和步进速率。凭借专用 nSLEEP 引脚,该器件可提供一种低功耗睡眠模式, 从而实现超低静态待机电流。• 每个电桥的电流容量:1.7A 峰值、1A 满量程、 0.7A rms。• 可配置关断时间 PWM 斩波– 7μs、16μs 或 32μs。
2025-09-22 13:37:10
399
原创 基于STM32L4XX 、HAL库的DRV8837DSGR-JSM步进电机驱动器软硬件应用设计
{0, 0}, // A- B- (可选,通常用 {1, 0} -> {0, 1} -> {1, 0} -> {0, 1})// 200步 = 1圈(1.8°步进电机)DRV8837_STEP_QUARTER = 4, // 1/4步进。DRV8837_STEP_FULL = 1, // 全步进。DRV8837_STEP_HALF = 2, // 半步进。DRV8837_DIR_CW = 0, // 顺时针。DRV8837_DIR_CCW = 1 // 逆时针。
2025-09-22 13:18:02
90
原创 基于STM32L4XX 、HAL库的TMC2208-LA-T步进电机驱动器软硬件应用设计
/ 2.2 设置电流 (示例: IHOLD=5, IRUN=15, IHOLDDELAY=6)// TMC2208的UART地址,默认是0。// IRUN: 运行电流系数 (0-31), IHOLD: 保持电流系数 (0-31)// MRES=4: 256微步, 3:128, 2:64, 1:32, 0:16。
2025-09-22 11:02:05
79
原创 基于STM32L4XX 、HAL库的A4988SETTR-T步进电机驱动器软硬件应用设计
是Allegro公司生产的一款带转换器和过流保护的DMOS微步进驱动器。: 使能引脚(低电平有效)。可接MCU控制电机脱机,也可直接接地保持常使能。: 逻辑电源(3.3V或5V),STM32L4为3.3V,可直接连接。内置转换器,可提供全步、1/2、1/4、1/8和1/16步进模式。每相最高可达2A(需配备足够大的散热片),可通过电位器调节。每个脉冲信号驱动电机移动一个微步。包含过热关断、欠压锁定和交叉电流保护。高电平和低电平分别控制正转和反转。: 逻辑地,必须与MCU共地。: 电机电源(8-35V)。
2025-09-22 10:40:26
84
原创 基于STM32L4XX 、HAL库的DRV8825PWPR步进电机驱动器软硬件应用设计
一、简介:DRV8825是德州仪器(TI)推出的一款高性能步进电机驱动器模块。它集成了微步进分度器、MOSFET H桥以及过流、欠压锁定和过热保护电路。主要特性:驱动能力: 最高电压45V,每相最大电流2.5A(需配合足够散热)。微步进: 支持全步、1/2、1/4、1/8、1/16、1/32微步模式,通过M0, M1, M2三个引脚控制。控制接口: 非常简单,只需要两个核心信号:(脉冲输入):每个上升沿脉冲驱动电机移动一个微步。(方向控制):高电平/低电平决定电机旋转方向。使能端: (睡眠模式,低电平有效)
2025-09-22 10:13:37
188
原创 基于STM32L4XX 、HAL库的ATD5984步进电机驱动器软硬件应用设计
一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动
2025-09-19 15:56:54
94
原创 基于STM32L4XX 、HAL库的AT8833CT步进电机驱动器软硬件应用设计
/ 初始化TIM2为PWM模式,ARR=999,频率=时钟/(PSC+1)/(ARR+1)// 假设系统时钟80MHz, 80MHz/(79+1)=1MHz。* @param DutyCycle: 占空比 (0 - ARR的值,例如如果ARR=999,则范围是0-999)// 1MHz / 1000 = 1kHz PWM频率。// 使用LL库或者HAL库函数停止PWM输出,这里以HAL_TIM_PWM_Stop为例。// 延迟控制速度,5ms一步,即200步/秒。// 占空比,0-999。
2025-09-19 15:07:32
465
原创 基于STM32L4XX 、HAL库的TMC2209-LA-T步进电机驱动器软硬件应用设计
/ R/W=0 表示写。uint32_t gconf_value = (0 << 0) // I_scale_analog: 禁用,使用UART控制电流。uint32_t ihold_irun = (8 << 0) // 保持电流 8/31 最大值。
2025-09-19 13:46:07
310
原创 基于STM32L4XX 、HAL库的HR4988E步进电机驱动器软硬件应用设计
/ 当前微步模式 (1, 2, 4, 8, 16)// DIR引脚号 (e.g., GPIO_PIN_0)* @param mode: 微步进模式 (1-全步, 2-1/2, 4-1/4, 8-1/8, 16-1/16)支持全步、1/2、1/4、1/8 和 1/16 微步模式,通过三个控制引脚(MS1, MS2, MS3)进行选择。
2025-09-19 11:22:31
382
原创 ICM-20600(姿态传感器)简介、应用硬件设计、Android驱动框架设计
/ 指定GPIO0_A5为中断引脚,上升沿触发。| AD0/SDO | GND 或 VDDIO | 选择I²C地址(GND:0x68, VDDIO:0x69) |// IO电源(可选)| ICM-20600引脚 | 连接到RK3566引脚 | 备注 || SCL | I²Cx_SCL | 例如,I2C2_SCL || SDA | I²Cx_SDA | 例如,I2C2_SDA || INT | GPIOy_z | 例如,GPIO0_A5 || CS | VDDIO (接高电平) | 选择I²C模式 |
2025-09-17 14:14:06
170
原创 SD卡简介、应用硬件设计
(原名TF卡):尺寸最小(15mm x 11mm x 1.0mm),是目前最主流的类型,广泛应用于智能手机、无人机、运动相机、行车记录仪等设备。:UHS-I, UHS-II, UHS-III(总线接口速度更快),以及U1和U3(表示最低写入速度,U1为10MB/s,U3为30MB/s)。:其名称中的“安全”来源于最初的设计中包含了数字版权管理(DRM)功能,虽然此功能现在较少使用,但卡片仍支持写保护开关。,即安全数字存储卡。:相较于早期的存储介质(如CF卡),SD卡体积更小,便于便携设备使用。
2025-09-17 13:55:31
436
原创 RK809-5(PMIC)简介、应用硬件设计、Android驱动设计
是瑞芯微(Rockchip)推出的一款高性能、高集成度的电源管理单元(PMIC),专为其旗下的应用处理器(如 RK3566, RK3568, RK3399 等)设计。通过 I2C 接口,软件可以动态地配置各路电源的输出电压、上电时序、开关状态等,以实现功耗优化和电源管理策略(如动态电压频率调节 DVFS)。当有事件(如电源键按下、过热、RTC警报)发生时,RK809-5 通过此引脚向 CPU 发起中断请求。| 这些是电源输出引脚,连接到 SoC、DDR、eMMC、其他外设的电源引脚。| 电源键输入信号。
2025-09-17 13:49:35
1181
原创 SZ18201 以太网收发器 硬件及驱动程序应用设计
define PHY_BCR_100MBPS ((uint16_t)0x2000) // 速度选择 (0=10M, 1=100M)#define PHY_BCR_DUPLEX_MODE ((uint16_t)0x0100) // 双工模式 (0=半, 1=全)*buff = (uint8_t *)memp_malloc(MEMP_POOL_BUFFER);#define PHY_BSR_LINK_STATUS ((uint16_t)0x0004) // 链接状态 (1=已建立)
2025-09-05 15:03:54
728
原创 基于STM32L4XX 、HAL库的DRV8317三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 假设 T_ck_psc = 1/80MHz = 12.5ns -> 500ns / 12.5ns = 40 -> DTG = 39。: 使用6个PWM输入(INH_A, INL_A, INH_B, INL_B, INH_C, INL_C)直接控制每个半桥的上管和下管。// 计算公式:T_dts = T_ck_psc, DT = (DTG[7:0] + 1) * T_dts。
2025-09-05 13:30:21
62
原创 基于STM32L4XX 、HAL库的DRV8332-HT三相无刷直流电机(BLDC)驱动应用C语言程序设计
可通过硬件引脚或SPI配置为6个独立的PWM输入、3个PWM输入(带使能)、1个PWM输入(带PH/EN方向控制)等。// 更常见的做法是使用 HAL_TIM_PWM_Start 和 HAL_TIMEx_PWMN_Start 配对。// 也可以使用 HAL_TIM_PWM_Start 来启动高侧,但Ex版本通常一起配置。// 这是一个简化的示例,实际应用中需要更精细的控制(例如关闭所有输出后再开启新的)// 使用HAL_TIMEx_PWMN_Start是启动互补通道(低侧)的关键。
2025-09-05 13:25:55
100
原创 基于STM32L4XX 、HAL库的DRV8329三相无刷直流电机(BLDC)驱动应用C语言程序设计
支持硬件(H/W)模式(直接使用 PWM 输入)和串行外设接口(SPI)模式。SPI 模式可以灵活配置芯片参数、读取故障状态和运行数据。包括欠压锁定(UVLO)、过流保护(OCP)、过温保护(OTSD)、短路保护(SCP)、击穿保护(SHoot-Through)等。DRV8329 是德州仪器(TI)推出的一款集成度高、功能强大的三相无刷直流电机驱动器。内置三个半桥,驱动电流能力强(峰值可达 65A),减少了外部元件数量和PCB面积。支持三相中的两相或三相电流采样,无需外部运放。
2025-09-05 13:21:44
104
原创 基于STM32L4XX 、HAL库的DRV8161三相无刷直流电机(BLDC)驱动应用C语言程序设计
/ 设置PH/EN模式。{TIM_CHANNEL_5, TIM_CHANNEL_6} // Phase C: PH=CH5, EN=CH6 (可能需要高级定时器TIM1/TIM8)// 三相的PH和EN通道 [Phase][0:PH, 1:EN]* @param dir: 方向 (MOTOR_DIR_CW 或 MOTOR_DIR_CCW)// 用于电流检测的ADC句柄。
2025-09-05 13:17:13
57
原创 基于STM32L4XX 、HAL库的DRV8311三相无刷直流电机(BLDC)驱动应用C语言程序设计
是德州仪器(TI)推出的一款针对三相无刷直流(BLDC)电机或永磁同步电机(PMSM)的集成驱动器芯片。:集成了三个半桥MOSFET、门极驱动电路、电荷泵(支持100%占空比)、稳压器以及多种保护电路。:工作电压最高可达,持续输出电流可达,峰值电流可达。:通过引脚直接控制每个半桥的PWM和使能。这种方式需要MCU输出6路信号,控制更灵活。:通过SPI总线配置内部寄存器,仅需PWMA/B/C三路PWM信号即可控制电机。可以读取故障状态、配置参数(如死区时间、电流保护阈值等),是更常用和推荐的方式。
2025-09-02 13:59:39
367
原创 基于STM32L4XX 、HAL库的DRV8376三相无刷直流电机(BLDC)驱动应用C语言程序设计
ADC1_INx | CSA_OUT, CSB_OUT, CSC_OUT | 相电流检测 | 可选,用于FOC或过流检测 || GPIO Output | nSLEEP | 芯片使能 | 高电平有效,用于启动/关闭驱动器 || SPIx_MISO | SDO | SPI 数据输出 | 用于读取故障寄存器 |: 使用SPI总线配置寄存器并控制驱动器,提供更精细的控制和诊断功能。| SPIx_MOSI | SDI | SPI 数据输入 | || SPIx_SCK | SCLK | SPI 时钟 | |
2025-09-02 13:54:01
128
### 基于深度学习的茶叶种类识别系统设计与应用摘要 本文
2025-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅