colin工作室
坚韧、向上、善于思考
展开
-
基于STM32、HAL库的CANopen简介及驱动程序设计
它定义了设备之间的通信规则、对象字典(Object Dictionary)以及设备配置文件(EDS/DCF),具有高可靠性、实时性和灵活性。CANopen 使用标准 CAN 帧(11 位标识符)或扩展 CAN 帧(29 位标识符)。// 处理 NMT 命令。// 处理 PDO 数据。// 处理 CANopen 消息。// 处理 NMT 消息。// 处理 SDO 消息。// 处理 PDO 消息。// 初始化 CANopen。// CANopen 对象字典定义。// 配置 CAN 过滤器。原创 2025-02-24 21:01:37 · 70 阅读 · 0 评论 -
基于STM32、HAL库、FM24CL64(I2C接口)驱动程序设计
是Cypress(现为Infineon)推出的64Kb(8KB)串行FRAM(铁电随机存取存储器),采用I2C接口。FRAM结合了RAM和Flash的优点,具有高速写入、低功耗和非易失性等特点。#define FM24CL64_I2C_ADDRESS 0xA0 // FM24CL64的I2C地址。// 假设使用I2C1。// 初始化FM24CL64。// 初始化失败处理。// 检查I2C是否正常。// 写入数据到FM24CL64。// 从FM24CL64读取数据。// 初始化FM24CL64。原创 2025-02-17 21:14:29 · 68 阅读 · 0 评论 -
基于STM32、HAL库、MB85RC16PNF(I2C接口)驱动程序设计
是富士通推出的16Kbit(2K x 8位)FRAM(铁电随机存取存储器),具有非易失性、高读写速度和低功耗特性,常用于数据存储。原创 2025-02-17 20:53:54 · 246 阅读 · 0 评论 -
基于STM32、HAL库、RX8025T(I2C接口)驱动程序设计
/ 配置 I2C 时序,具体值参考 STM32L4 参考手册。#define RX8025T_I2C_ADDRESS 0x32 // RX8025T 的 I2C 地址。// 配置 I2C1 的 SCL 和 SDA 引脚。// 从 RX8025T 读取时间数据。// 处理读取到的时间。// 写入时间数据到 RX8025T。// 写入时间失败处理。提供秒、分、时、日、月、年等时间信息。// 初始化错误处理。// 初始化错误处理。// 初始化错误处理。// 配置 I2C 时序。低功耗设计,适合电池供电的应用。原创 2025-02-17 20:45:45 · 212 阅读 · 0 评论 -
基于STM32、HAL库、W25P80(SPI接口)C语言程序设计
/ 写入数据到第0页。// 读取第0页的数据。// 假设使用SPI1。原创 2025-02-13 20:46:37 · 52 阅读 · 0 评论 -
基于STM32、HAL库、HS12864(ST7920,并行接口)C语言程序设计
/ 8位接口,基本指令集。// 显示开,关光标。// 数据线定义 - 假设使用GPIOA 0-7。原创 2025-02-13 20:41:51 · 172 阅读 · 0 评论 -
基于STM32、HAL库、MPU6050姿态结算C语言程序设计
1、概述: 使用STM32L432和MPU6050进行姿态解算时,通常需要以下几个步骤:读取MPU6050的原始数据、进行姿态解算(如四元数解算)、输出欧拉角,并对数据进行滤波处理。2、硬件链接:MPU6050 通过I2C接口与STM32L432连接。SCL -> PB6SDA -> PB7INT -> PA0 (可选)3、MPU6050初始化:#include "stm32l4xx_hal.h"#include "mpu6050.h"I2C_H原创 2025-02-12 17:37:05 · 89 阅读 · 0 评论 -
基于STM32、HAL库、I2C接口的姿态传感器/陀螺仪之ICM-42670-P驱动 C语言程序设计
/ 设置加速度计和陀螺仪的工作模式。// 读取加速度计和陀螺仪数据。原创 2025-02-12 09:46:10 · 238 阅读 · 0 评论 -
基于STM32、HAL库、I2C接口的姿态传感器/陀螺仪之LIS2DW12TR 驱动 C语言程序设计
LIS2DW12TR的VDD和GND分别连接到STM32的3.3V和GND。LIS2DW12TR的SCL引脚连接到STM32的SCL引脚。LIS2DW12TR的SDA引脚连接到STM32的SDA引脚。四、读取LIS2DW12TR的加速度数据。原创 2025-02-12 09:40:43 · 153 阅读 · 0 评论 -
姿态传感器/陀螺仪之BMI088 驱动程序设计
一、BMI088是一款六轴惯性测量单元(IMU),包含加速度计和陀螺仪。二、BMI088参数结构体定义:// 加速度计相关参数// 加速度计量程范围// 加速度计X轴数据// 加速度计Y轴数据// 加速度计Z轴数据// 陀螺仪相关参数// 陀螺仪量程范围// 陀螺仪X轴数据// 陀螺仪Y轴数据// 陀螺仪Z轴数据// 温度传感器相关参数// 温度数据// 配置参数// 加速度计输出数据速率// 陀螺仪输出数据速率// 加速度计量程范围// 陀螺仪量程范围。原创 2025-02-11 09:41:59 · 85 阅读 · 0 评论 -
基于STM32 、SPWM 、PID、 MPU6050 云台稳定器设计
通过MPU6050获取云台的姿态数据(如俯仰角、横滚角),使用PID算法计算控制量,并通过SPWM生成驱动信号,控制电机使云台保持稳定。// 示例PID参数。SPWM(正弦脉宽调制)用于驱动电机,生成平滑的控制信号。PID控制器用于根据姿态误差计算控制量,驱动电机调整云台姿态。// 假设采样周期为10ms。初始化MPU6050、定时器(PWM)、PID控制器。// 读取MPU6050数据。// 将控制信号映射到PWM占空比。原创 2025-02-11 09:37:52 · 165 阅读 · 0 评论 -
STM32 HAL库 PWM程序(C语言)
/ 自动重装载值(周期 = (999+1)/1MHz = 1ms) htim3.Init.CounterMode = TIM_COUNTERMODE_UP;// 向上计数模式 HAL_TIM_PWM_Init(&htim3);// 启动通道1的PWM输出。原创 2025-02-10 11:15:13 · 811 阅读 · 0 评论 -
STM32 HAL库 ADC程序(C语言)
1、ADC通道GPIO配置: GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOC_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);2、ADC参数配置: ADC_原创 2025-02-10 10:46:22 · 210 阅读 · 0 评论 -
STM32 HAL库 DAC程序(C语言)
/ 启动DAC通道 HAL_DAC_Start(&hdac, DAC_CHANNEL_1);// 对应电压 = 2048/4095 * 3.3V ≈ 1.65V HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, dac_value);原创 2025-02-10 10:34:29 · 457 阅读 · 0 评论 -
STM32 HAL库 I2C通讯(C语言)
/ 7位地址模式 hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;// 主机地址(主模式通常设为0)// 100kHz时钟。// 处理发送完成事件。// 传输完成回调函数。原创 2025-02-10 10:10:30 · 177 阅读 · 0 评论 -
STM32 HAL库 SPI通讯(C语言)
/ 拉低片选 HAL_SPI_TransmitReceive(&hspi1, tx_buf, rx_buf, 2, 100);// SPI初始化函数。原创 2025-02-10 10:00:30 · 239 阅读 · 0 评论 -
STM32 HAL库 UART通讯(C语言)
1、使能UART时钟和GPIO时钟(以USART1为例): __HAL_RCC_USART1_CLK_ENABLE(); // 使能USART1时钟 __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟(假设使用PA9/TX, PA10/RX)2、GPIO配置: GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_9 |原创 2025-02-10 09:50:35 · 253 阅读 · 0 评论 -
STM32 HAL库 CANbus通讯(C语言)
/ 使能CAN时钟// GPIO初始化*/// CAN参数配置// 分频系数// 正常工作模式// 时间段1// 时间段2// 自动重传= HAL_OK)// 配置过滤器(接收所有消息)// 启动CAN// 使能接收中断// CAN发送函数// 标准ID// 扩展ID// 标准帧// 数据帧// 数据长度= HAL_OK)// CAN接收回调函数。原创 2025-02-10 09:34:16 · 302 阅读 · 0 评论 -
姿态传感器/陀螺仪之LIS3DHTR 驱动程序设计
define LIS3DHTR_I2C_ADDRESS 0x19 // LIS3DHTR 的默认 I2C 地址。= 0x33) { // LIS3DHTR 的 WHO_AM_I 值应为 0x33。// +/- 2g 量程,高分辨率模式。// 配置 CTRL_REG1 寄存器以启用传感器并设置数据速率。// 配置 CTRL_REG4 寄存器以设置全量程和分辨率。// 读取 WHO_AM_I 寄存器以确认设备连接。// 发送设备地址、寄存器地址和数据。// 读取 XYZ 轴的加速度数据。原创 2025-02-08 14:54:19 · 151 阅读 · 0 评论 -
PID 算法简介(C语言)
PID是比例、积分、微分三个环节的组合,用来进行反馈控制。每个部分都有对应的系数,也就是Kp、Ki、Kd。PID控制器结构体:包含PID参数(Kp, Ki, Kd);初始化PID控制器部分包含:设置PID参数、重置积分项和误差历史。// 保存当前误差供下次计算使用。// 微分项(误差变化率)// 积分项(累积误差)/* PID控制器结构体 */原创 2025-02-08 17:33:15 · 170 阅读 · 0 评论