- 博客(103)
- 资源 (1)
- 收藏
- 关注
原创 TI MSPM0 PWM控制舵机双通道ADC读取
该代码实现了一个基于MSP微控制器的双舵机控制系统,主要包括以下功能: 通过PWM信号控制两个舵机角度(X轴0-270度,Y轴0-180度),支持平滑移动功能 通过UART接收并解析"X=xx,Y=yy"格式的串口指令控制舵机位置 使用ADC采集电位器信号实现闭环控制 包含LED指示灯和按键中断功能 采用PWM脉宽调制(500-2500μs范围)精确控制舵机角度 系统实现了串口指令控制与ADC反馈相结合的混合控制方式,支持舵机角度限位保护,具有中断处理、延时控制等基本功能模块。
2025-07-16 12:47:01
70
原创 MPU6050 和串口中断等一起使用,防止中断打扰时序问题
摘要:文章探讨了MPU6050传感器在使用软件I2C时遇到的问题,特别是中断干扰导致数据读取失败的情况。作者测试了两种解决方案:重新初始化并重置FIFO寄存器,以及修改IIC时序并添加总线等待,但均无法完全避免高频串口中断干扰。文中提供了详细的I2C驱动代码实现,包括起始/停止时序、数据读写等函数。最后提出改进方案:取消MPU6050初始化,添加0x70器件地址支持,并在读取前禁用中断以保证时序稳定性。这些修改使MPU6050能稳定工作,同时不影响中断使用。
2025-07-15 19:38:03
291
原创 TI MSPM0 串口接收控制舵机云台
该代码实现了一个基于MSP430的舵机控制系统,主要功能包括:1. 通过PWM信号精确控制两个舵机角度(setAngle和setAngle1函数);2. 使用串口通信接收X/Y轴控制指令;3. 实现平滑移动算法(smoothMove),使舵机运动更平缓;4. 主循环根据串口接收的偏移量实时调整舵机角度。系统还包含LED指示灯和按键中断处理功能,适用于需要精确控制舵机运动的嵌入式应用场景。
2025-07-13 15:05:08
193
原创 ESP32 蜂鸣器播放小星星改进版
摘要 这是一个基于ESP32的简易音乐播放器程序,通过PWM控制扬声器演奏《小星星》旋律。程序包含标准音高定义(从NOTE_B0到NOTE_C8),使用板载LED提供播放视觉反馈。主要功能包括: 设置PWM通道播放音符 根据乐谱定义旋律和节拍 实现播放/停止控制 自动循环播放 程序采用8位PWM分辨率,通过计算音符持续时间实现节奏控制,并在音符间添加短暂停顿。该示例展示了如何用微控制器实现基础音乐合成功能。
2025-07-13 13:49:30
72
原创 STM32 HAL PWM频率蜂鸣器
本文介绍了STM32中动态调整PWM频率的实现方法。通过解析定时器的PWM频率计算公式,给出了基于HAL库的频率更新函数Tim_Update_PwmFreq(),该函数通过计算新的自动重装载值(ARR)来设置目标频率,并保持50%占空比。文章详细说明了函数执行流程,包括停止PWM、更新ARR值、设置比较值和重启PWM等步骤,并提供了使用注意事项和扩展建议。示例代码展示了如何利用该函数实现简单的音乐播放功能,通过循环调用频率更新函数来输出不同音符。
2025-07-11 17:02:40
347
原创 TI MSPM0 控制舵机 PWM
摘要:配置PWM时需将计数模式改为向上计数,由于TIMG时钟不可分频,需改用高级计时器TIMA。开发环境为Keil。针对不同舵机(180°/270°/360°),需调整PWM参数:50Hz频率下,占空比对应不同角度(如2.5ms脉冲对应180°舵机270°),且转速随方向变化,向下逆转加速,向上顺转加速。参数修改时注意区分舵机类型。
2025-07-10 10:29:23
169
原创 TI DRV8833 驱动代码
DRV8833可以替代TB6612驱动模块使用,但需注意其不具备双PWM控制功能。使用时需要手动调整接线方式,将PWM信号改为IN1/IN2的PWM配置模式。这种替换需要特别注意信号接口的重新配置,虽然功能相似,但在控制方式上存在差异。
2025-07-07 17:03:59
148
原创 ROS 双轮电机速度设定
摘要:本文展示了一个基于ESP32的电机控制系统,包含MPU6050传感器、双编码器、PID控制器和运动学模块。系统通过编码器反馈实现电机闭环速度控制,使用PID算法调节电机转速。主程序包含超声波测距、LED闪烁等基础功能,同时通过串口实时输出电机速度数据。PID控制器类提供了参数设置、误差计算和输出限制功能,运动学模块负责处理轮速与线速度/角速度的转换。整个系统展示了嵌入式环境下电机控制的完整实现方案。
2025-07-05 16:22:02
126
原创 TI DRV8833 平替 TB6612 驱动
该代码实现了基于DRV8833电机驱动芯片的电机控制功能。通过宏定义AIN2_OUT和BIN2_OUT来设置电机方向控制引脚,motor函数根据输入的正负速度值控制左右电机的方向和PWM占空比。当速度为正时设置对应方向引脚为高电平,为负时则设为低电平并取绝对值作为PWM值。该实现适用于两路电机控制,可独立设置每个电机的转速和转向。
2025-07-03 11:36:06
162
原创 TI MSPM0 PID控制角度旋转 走8字
这段代码实现了一个基于PID控制算法的电机控制系统。系统通过传感器检测位置偏差,使用PID算法计算电机转速,实现精确控制。主要功能包括:1)根据flag值切换不同控制模式;2)在模式1中实现角度跟踪和循迹功能;3)在模式2中实现基于位置偏差的循迹控制;4)包含两个PID控制器实现函数,分别用于不同参数需求。系统还包含蜂鸣器提示功能和状态切换逻辑,能够根据传感器反馈自动调整电机转速和方向。
2025-07-03 09:41:04
116
原创 TI MSPM0 轮询MPU6050角度转向八字
该代码实现了一个基于PID控制的智能小车自动循迹系统。系统使用循迹传感器获取位置偏差,通过PID算法计算电机转速调整值(speedA=250+PID_data,speedB=250-PID_data),实现轨迹跟踪。当检测到偏离轨迹时,系统会根据预设目标角度(-35°或-145°)进行转向调整,并通过蜂鸣器提供操作反馈。代码包含两种运行模式(flag=1/2),分别处理直线循迹和角度转向任务,通过状态机(tag变量)管理不同阶段的操作流程,包括传感器检测、电机控制、超时处理等功能模块。
2025-07-03 07:53:24
133
原创 TI MSPM0 循迹示例1
代码片段实现了一个基于PID算法的循迹控制功能。当flag为1时,通过xunji()获取传感器位置偏差,并使用vertical_PID_Turn()计算PID值。根据PID计算结果调整左右电机PWM值(speedA和speedB),其中基准速度为250,通过加减PID_data实现差速控制。最终调用motor_set()执行电机驱动。代码展示了典型的PID控制在轮式机器人循迹中的应用。
2025-07-02 10:27:52
119
原创 MPU6050 模块使用和错误记录
本文介绍了MPU6050传感器使用中的常见问题及解决方法。主要内容包括:1)DMP库下载地址和版本选择(eMD6.12和5.1.3);2)新版模块可能无需初始化,但会出现"Unsupported software product rev"错误,需添加版本7支持;3)I2C通信问题,包括地址应为0x70(新版)或0xD0,以及IIC_Send_Ack函数修改建议;4)调试发现关闭I2C主机模式会导致数据读取失败。文中还提供了相关代码片段和问题参考链接。
2025-07-01 13:44:39
255
原创 TI MSPM0G3507 循迹小车强制寻黑线代码一
一个基于MSPM0微控制器的循迹小车控制系统。系统通过8路循迹传感器检测黑线位置偏差,使用PID算法计算电机控制量。主程序初始化中断、PWM等外设,在按键触发后进入循迹模式。传感器数据处理函数根据检测到的黑线位置返回偏差值(-7到7),PID控制器根据偏差调整左右电机速度。系统还包含限幅处理、中断服务等模块,实现稳定的自动循迹功能。代码结构清晰,展示了嵌入式系统中传感器数据处理、电机控制和PID算法的典型实现方式。
2025-06-28 18:18:25
144
原创 STM32HAL 旋转编码器教程
摘要:该文介绍了一种时钟编码器的读取方法,通过判断TIM计数方向(__HAL_TIM_IS_TIM_COUNTING_DOWN)来调整累计值,顺时针旋转时(0)减少计数器值,逆时针(1)时增加。使用__HAL_TIM_GET_COUNTER获取当前计数值,每次旋转约1-2个计数。可通过__HAL_TIM_SET_COUNTER将计数器重置为0,用于判断单次旋转的计数变化。该方法直接操作定时器寄存器(TIMx->Instance->CNT),实现精确的旋转方向与步数检测。
2025-06-28 18:04:06
248
原创 DHT11 STM32 HAL驱动库 整数
摘要:该代码实现了一个STM32平台下的DHT11温湿度传感器驱动库。主要包含DHT11.h头文件定义数据结构和接口,以及DHT11.c源文件实现具体功能。通过GPIO单总线协议通信,提供初始化(DHT11_Init)和数据读取(DHT11_ReadData)函数,可获取温度(整数℃)和湿度(整数%RH)数据。使用时需自定义微秒延时函数delay_us,并包含超时检测和数据校验机制。示例代码展示了读取数据后根据阈值控制LED和OLED显示的逻辑。该驱动适用于STM32F1/F4系列MCU,需根据具体硬件调整
2025-06-27 15:50:13
174
原创 STM32G070x 单片机项目代码解析:基于 HAL 库的嵌入式系统开发
一个基于STM32的嵌入式系统项目架构。项目采用标准STM32工程结构,包含系统头文件、外设配置、用户变量定义、初始化和主程序等模块。系统配置了外部时钟(HSE)和PLL锁相环,通过SPI、TIM、UART等外设实现功能,包括LED控制、按键检测和OLED显示。主程序采用轮询方式处理LED状态切换、按键输入和显示更新等任务。该架构展示了STM32项目的基本开发流程和常用外设配置方法。
2025-06-25 12:32:08
339
原创 STM32 环境监测与控制系统的设计与实现
本文介绍了一个基于STM32F103微控制器的环境监测与控制系统设计。系统采用DHT11传感器采集温湿度数据,通过OLED显示环境参数,并支持用户通过按键设置阈值参数。系统具备PWM电机控制、状态指示和异常报警功能,可实现自动环境调节。硬件设计包含传感器模块、显示模块和控制模块,软件采用模块化架构实现数据采集、处理和显示功能。系统支持Flash存储阈值参数,具有掉电保护功能。设计重点解决了DHT11时序控制、OLED显示优化和按键处理等技术难点。该系统适用于智能家居、温室大棚等环境监测场景,未来可扩展无线通
2025-06-24 23:21:08
791
原创 STM32F4 RTThread error: macro “Error_Handler“ passed 1 arguments, but takes just 0
摘要:文章指出CubeMX生成的代码与RTThread的函数存在冲突,解决方法是在main.h文件中进行相应修改,然后在main.c中重新引用修改后的main.h文件即可解决冲突问题。该方法通过调整头文件引用顺序和内容来消除函数命名冲突。
2025-06-23 19:29:00
175
原创 RThread Studio STM32F407ZGT6 移植案例
【摘要】在STM32F407ZGT6移植RT-ThreadOS4.0.3时,需在CubeMX生成项目后新建SConscript文件,排除冲突文件并指定构建源文件。通过修改Src目录内容,使用__weak关键词重定义函数,移植其他库时需手动补充缺失的HAL库文件。关键步骤包括配置SConscript构建脚本、调整源文件包含关系及处理库依赖问题。
2025-06-23 17:58:04
320
原创 DS1307实时时钟模块的时间显示
摘要:该代码实现了基于DS1307实时时钟模块的时间显示和RGB灯控制功能。主要包含三个部分:(1) DS1307读写函数封装,支持BCD码与十进制转换;(2) 数码管时间显示处理,将时分秒数据分解为数码管显示缓冲;(3) RGB灯控制逻辑,通过按键切换不同显示模式和亮度档位,使用PWM调节实现呼吸灯效果。系统通过按键SW1-SW4控制LED闪烁模式、时间显示切换和RGB灯状态,具有生日日期循环显示功能。代码采用模块化设计,包含硬件抽象层和应用逻辑层。
2025-06-20 19:53:27
76
原创 STM32 HAL 初始化I2C启动DS1307
本文介绍了一个针对DS1307实时时钟模块的初始化函数,该函数通过验证用户自定义区域的4字节密码决定是否写入初始化数据。初始化配置包含时钟控制(1Hz方波输出)、初始时间(2021年1月1日00:00:00)和预设密码。文章指出原始代码存在时钟振荡器未启动的问题(秒寄存器CH位置1),并提供了改进方案:修改初始值为0x00,并在初始化后强制清除CH位。同时提醒注意用户自定义区域(0x08-0x0F)可能与其他功能的存储冲突风险。该方案兼顾了密码验证和时钟可靠性需求。
2025-06-19 22:22:44
435
原创 TI 巡线小车脱线自动回归
摘要:本文介绍了一个基于MSP430微控制器的智能小车循迹控制系统。系统采用8路红外传感器检测轨迹,通过PID算法实现偏差控制。当检测到偏离轨迹时,程序根据传感器反馈计算位置偏差,并生成相应PWM信号驱动电机进行转向修正。系统还实现了中断处理、电机驱动等功能,通过参数调节可优化循迹性能。代码展示了传感器数据处理、PID控制实现以及电机调速等关键功能模块。 (148字)
2025-06-19 17:21:38
102
原创 DS1307 读取时间示例代码 STM32 HAL
摘要:该代码实现了DS1307实时时钟(RTC)芯片的驱动功能,包含BCD码与十进制转换、初始化配置、时间读取和设置等功能。通过I2C接口通信,定义时间结构体DS1307_Time_t存储秒、分、时、日、月、年等数据。主要函数包括DS1307_Init(初始化)、DS1307_ReadTime(读取时间)和DS1307_WriteTime(设置时间),使用HAL库的I2C接口进行数据传输,并处理BCD格式与十进制格式的相互转换。代码结构清晰,包含头文件保护机制和详细的寄存器定义。
2025-06-11 20:21:59
96
原创 STM32G DMA串口发送接收
本文介绍了基于UART3和DMA的串口通信实现方法。系统通过串口接收RGB颜色命令(格式如"R:255,G:128,B:64"),利用空闲中断(IDLE)触发数据处理,采用DMA方式完成数据传输。解析过程使用sscanf提取RGB值并验证其有效性(0-255范围),成功则存储到rgb_color数组并返回"OK",失败返回"ERROR"。关键技术包括:IDLE中断实现不定长数据捕获、DMA传输降低CPU负载、sscanf格式化解析命令。该系统实现了
2025-06-11 08:42:19
577
原创 ESP12E/F 参数对比
ESP8266启动模式与GPIO功能摘要: ESP8266的启动模式由GPIO0、GPIO2和GPIO15的电平组合决定:正常启动需GPIO0高电平、GPIO2高电平、GPIO15低电平;刷写固件需GPIO0低电平、GPIO2高电平。关键引脚包括RST(复位)、EN(芯片使能)、GPIO16(深度睡眠唤醒)以及SPI/I2C功能引脚。电源为3.3V,注意GPIO0和GPIO15在启动时的特殊电平要求。UART0默认用于通信,部分GPIO复用为特殊功能接口。
2025-06-08 23:08:37
365
原创 DRV8833 电机控制芯片
芯片引脚配置及控制说明:STBY引脚需拉高使能芯片工作;IN1、IN2分为两组分别对应AO、BO输出。两组输入同时拉高可实现刹车功能(慢速衰减模式)。该设计通过电平控制实现电机驱动与制动功能。
2025-06-06 22:39:57
240
原创 嘉立创天猛星MSPM0G3507 简易PID项目示例代码
嘉立创示例需放入SDK目录运行syscfg.bat,该示例支持Keil和CCS开发环境。用户需将示例代码放置在指定位置,通过执行配置文件来启用相关功能。该示例为开发者提供了两种主流IDE(Keil和CCS)的适配方案,便于在不同开发环境中快速测试和使用。运行syscfg.bat可完成必要的环境配置,确保示例程序能够顺利编译和调试。
2025-05-31 23:32:02
309
原创 TI MSPM0G3507 简易PID项目显示和按键控制
摘要:该代码实现了一个基于TI MSP微控制器的嵌入式系统,主要功能包括:1) 初始化系统外设(串口、定时器、编码器、按键等); 2) 实现LED呼吸灯、串口通信、PWM电机控制功能; 3) 包含UI界面显示和编码器数据处理; 4) 使用定时器中断实现精确延时; 5) 通过状态机管理系统运行模式。代码采用模块化设计,包含硬件驱动层和任务应用层,实现了基础外设控制和简单人机交互功能。
2025-05-31 23:26:08
646
原创 【TI MSPM0G3507】 定时器 串口 中断 PWM示例
该代码是德州仪器(TI) MSP微控制器的嵌入式程序,主要功能包括LED呼吸灯控制、串口通信和定时中断处理。程序采用TI提供的底层驱动库(DL)实现硬件操作,包含精确延时、PWM调光、串口收发和中断服务等模块。呼吸灯效果通过调整PWM占空比实现渐变效果,同时支持按键中断和串口中断处理。代码遵循TI软件许可协议,保留所有版权声明和免责条款。程序结构清晰,包含初始化配置、主循环和多个中断服务例程,展示了典型的嵌入式系统开发模式。
2025-05-30 21:35:47
228
原创 Python年快乐!祝福语大全。
Linux被熊孩子rm -rf /*Elasticsearch分片乱飞。Merge Conflict永无解。React疯狂re-render。祝你们硬盘S.M.A.R.T报警。再祝你们Windows开机蓝屏。——来自一个被代码诅咒过的AI。再祝你们gradle下载不上。TensorFlow警告玄学。生产环境全员「我本地没问题」Homebrew源全404。Deadline提前到昨天。兄弟们Python年快乐。Composer内存爆表。Lambda冷启动成永恒。再祝你们空指针,野指针。
2025-05-25 16:37:45
205
原创 C语言学习路线
学习C语言是一个循序渐进的过程,以下是适合初学者的学习路线,结合了基础语法、核心概念、进阶技能和实际应用,帮助你系统掌握这门经典的编程语言。通过系统学习和持续实践,C语言会成为你理解计算机底层原理的强力工具!
2025-05-25 16:34:05
315
原创 《分布式年夜》解析
这篇小说犹如用PyTorch编写的文化DNA重组程序,在张量漩涡中重构了技术人文主义的叙事范式。当最后一个CUDA核心停止波动时,我们终将理解——真正的通用人工智能,或许就藏在那些未被数据清洗掉的拜年短信残片中。《分布式年夜》是一篇极具后现代科技美学的小说片段,将硬核AI研发细节与中国式家庭叙事完美熔铸,呈现出数字时代技术狂人的精神图景。
2025-05-25 16:32:20
669
原创 《分布式年夜》
当表弟炫耀新提的Model X时,你听见父亲轻声说:"我儿子在训练能理解方言的AI..."话音未落就被淹没在碗筷碰撞声里。你盯着包厢墙上的《万里江山图》,突然顿悟了跨模态对齐的真谛——那些山水皴法,不正是自然语言处理中的词向量拓扑?远方传来此起彼伏的"新年快乐",而你的指尖正悬在云端训练容灾系统的重启键上,像按着人类认知边疆的发射按钮。窗外的烟花在玻璃上炸开霓虹色块,映得RTX 8090显卡的呼吸灯忽明忽暗,像某种危险的信号。"你转动着盛满可乐的酒杯,杯壁上凝结的水珠正沿着贝叶斯优化的轨迹滑落。
2025-05-25 16:31:21
192
原创 STM32 CubeMX时钟配置PWM信号输出
PWM(脉宽调制)通过调节方波的占空比控制输出功率。STM32中,定时器与CCR寄存器协同工作实现PWM:定时器计数至ARR值后复位,CCR寄存器存储比较值,当计数值小于CCR时输出高/低电平(取决于PWM模式)。示例代码展示了如何配置TIM3通道1生成50HzPWM,频率由ARR和PSC决定,占空比由CCR/ARR比值控制。通过修改CCR值可动态调整占空比,实现对电机、LED等设备的精确控制。
2025-05-24 00:08:11
930
原创 keil uniFlash烧录出现八字节对齐错误
在2025年5月15日,CORTEX_M0P系统在尝试进行闪存编程时遇到了错误,原因是起始地址或数据长度未按8字节对齐。这一问题在Delay_ms函数中尤为明显,由于前后两次延迟时间不一致,导致了烧录失败。针对此问题,提出了两种解决方案:一是参考TI板keil5编译MSPM0无法下载的解决方法,二是调整程序,将Delay_ms和滴答定时器的延迟整合,直至能够成功烧录。此外,还提到了串口下载报错的解决方法,建议参考立创开发板技术文档中心的相关内容。
2025-05-15 21:22:56
387
原创 嘉立创天猛星使用串口下载代码
下载 UniFlash安装 CH340 驱动运行 UniFlash 并配置器件硬件连接设置下载参数进入升级模式烧录固件
2025-05-15 13:02:35
1492
原创 ROS 2 FishBot PID控制电机代码
本文介绍了一个基于ESP32的电机控制系统,使用了MPU6050传感器、编码器和PID控制器。系统通过MPU6050获取加速度和陀螺仪数据,编码器用于测量电机转速,PID控制器用于调节电机速度。代码中初始化了电机、编码器和MPU6050,并通过定时器控制LED的闪烁。主循环中,系统读取超声波传感器的距离数据,并计算编码器的速度。PID控制器的实现包括误差计算、积分限幅和输出限幅等功能,用于精确控制电机速度。该系统适用于需要精确控制电机速度的应用场景。
2025-05-11 18:30:10
168
原创 MPU6050 六轴姿态 Arduino ESP32 Test
在物联网和嵌入式系统开发领域,Arduino 是一款广受欢迎的开源电子原型平台,它具有简单易用、成本低廉等优点。而 MPU6050 是一款集成了三轴加速度计和三轴陀螺仪的传感器,能够测量物体的运动和姿态信息。本文将详细介绍如何使用 Arduino 与 MPU6050 传感器进行通信,实现传感器数据的采集与处理,同时还会实现一个 LED 定时闪烁的功能,以展示 Arduino 的多任务处理能力。
2025-05-06 15:59:15
466
多功能电子计算软件(eTools)2.67 去广告版以其丰富的功能和清爽的使用体验,成为了电子工程领域不可多得的优秀工具 它简化了复杂的计算过程,提高了工作效率,无论是对于专业工程师还是电子爱好者,都
2025-07-12
STM32G070RBT6 HAL 库BSP支持包
2025-06-18
STM32G070RBT6项目实战:多功能LED+数码管+串口控制
2025-06-04
C51 单片机 定时器时钟Keil项目C语言源码
2025-03-11
C51 单片机 点亮LED Keil工程C语言代码
2025-03-11
C51 单片机按键检测Keil项目源码
2025-03-11
SkinConvertingSheep中文版,我的世界皮肤1.7与1.8格式互转工具
2023-01-16
易语言人手必备三万源码+一千模块
2020-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人