- 博客(54)
- 收藏
- 关注
原创 STM32Ccubemx-H7-24-GPS模块-ATGM336H-5N卫星导航模块
本文介绍了通过串口通讯解析GPS模块数据的实现方法。程序主要处理GNRMC格式的GPS数据包,从中提取经纬度信息。开发过程分为三步:1)使用C语言测试程序验证解析算法,成功从样例数据中提取出经纬度;2)将算法移植到嵌入式系统,通过串口中断接收数据并定时处理;3)最终实现户外GPS定位功能。关键点包括不定长串口数据接收、数据包解析和经纬度计算转换。代码通过缓冲区管理、状态标志位和定时器实现了稳定可靠的数据处理流程,最终验证功能成功。
2025-11-23 11:07:17
300
1
原创 CCS-MSPM0G3507-8-模块篇-超声波测距
摘要:本文介绍了一种基于状态机定时器的超声波测距方案,使用PA13作为发送引脚,PA14作为接收引脚。通过配置100us的定时器中断实现测距功能,避免了远距离时的系统延时问题。代码包含hctr.h和hctr.c文件,实现了超声波发射控制、回波时间测量和距离计算等功能。测试代码通过串口输出测距结果,系统初始化后只需调用相关函数即可获取距离数据。该方案采用状态机设计,提高了系统的稳定性和响应速度。
2025-07-14 14:08:28
451
原创 CCS-MSPM0G3507-7-模块篇-MPU6050的基本使用
摘要:本文介绍了MPU6050传感器的基本使用方法,包括通过IIC协议获取寄存器值。主要内容包含:1)软件IIC框架实现(soft_iic.c/h),提供SCL/SDA引脚控制、数据传输等基础功能;2)MPU6050驱动(MPU6050.c/h),实现初始化、设备ID读取、温度测量及三轴加速度/陀螺仪数据获取;3)主程序测试,通过串口输出传感器原始数据。文章暂未涉及高级滤波算法(如卡尔曼滤波),为后续更新预留空间。硬件建议使用PA0/PA1引脚,采用5V开漏配置。
2025-07-13 21:07:05
664
原创 CCS-MSPM0G3507-6-模块篇-OLED的移植
摘要:本文介绍了将江科大OLED移植到HAL库的方法。首先配置PA16和17为推挽输出(避开PA0/1用于MPU6050),在OLED.h中定义引脚宏和显示函数接口。OLED.c实现I2C底层驱动,包括SCL/SDA引脚控制函数和初始化流程。移植主要涉及修改OLED_I2C_Start等函数,最终完成初始化调用即可使用。全文提供从硬件配置到软件移植的完整解决方案。
2025-07-13 12:22:54
2068
4
原创 CCS-MSPM0G3507-5-基础篇-ADC信号采集
摘要:本文介绍了基于MSPM0G3507微控制器的单通道ADC实现方法。通过配置ADC1通道,设置1ms的转换时间,实现了电压采集功能。硬件配置包括分频设置和引脚选择,软件部分定义了ADC相关宏和获取转换结果的函数adc_getValue()。主程序通过循环读取ADC值并串口输出,实现了每秒一次的采样显示。该方法简洁高效,适用于基本的单通道模拟信号采集应用场景。
2025-07-13 10:52:50
516
原创 CCS-MSPM0G3507-3-基础篇-PWM输出
本文介绍了使用MSPM0G3507微控制器输出PWM信号的方法。首先通过图形化配置工具设置PWM参数,包括频率(分频比越大频率越低)、周期值(1000对应100%占空比),选择向上计数模式并启用PB14引脚(对应定时器12通道1)。接着创建PWM模块的头文件和源文件定义控制接口。最后在主程序中调用PWM设置函数,通过循环改变占空比实现呼吸灯效果,先递增后递减PWM值(0-1000范围),每次变化后延时1ms。该方法演示了从硬件配置到软件实现的完整PWM输出流程。
2025-07-12 17:56:34
638
原创 CCS-MSPM0G3507-1-基础篇-基本工程创建-GPIO的输入输出及精准微秒毫秒延时
本文介绍了MSPM0G3507开发板的工程创建与GPIO配置方法。建议使用CCS而非Keil进行开发,因其兼容性更好、编译更快。详细讲解了工程创建步骤、自定义文件夹路径配置方法,并提供了LED闪烁程序(包括GPIO推挽输出配置、延时函数实现)和按键输入检测的代码实现。通过图形化配置工具简化引脚初始化,给出了完整的led.c/h和key.c/h文件模板。文章强调使用CCS的便捷性,并预告后续将继续更新其他功能模块的开发教程。
2025-07-12 12:44:18
985
原创 STM32Cubemx-H7-23-BH1750光照传感器
摘要:本文介绍了BH1750光照传感器驱动的实现代码,包含头文件bh1750.h和源文件bh1750.c。代码提供了BH1750传感器的初始化、模式设置和光照强度读取功能,支持多种分辨率模式(高/低分辨率、连续/单次测量)。通过I2C接口实现通信,包含完整的I2C底层驱动(起始/停止信号、字节读写、应答处理等)。使用示例展示了如何获取光照强度值(单位lx)。该驱动适用于嵌入式系统环境,可方便地集成到各种应用中。
2025-06-27 14:29:36
254
原创 STM32Cubemx-H7-22-DS18B20获取温度-单总线协议
DS18B20多通道温度传感器驱动 该驱动代码实现了对4通道DS18B20温度传感器的控制,支持以下功能: 多通道管理:通过PB0、PB1、PA6、PA2四个GPIO口连接4个DS18B20传感器 温度采集:提供精确的摄氏温度测量,分辨率0.0625℃ 自动初始化:可一次初始化所有通道并检测有效设备 错误处理:包含温度范围校验和通道有效性检查 关键特性: 使用1-Wire通信协议 提供微秒级精确时序控制 支持温度转换状态检测 返回无效温度值(-999.0)标识错误情况 使用方法简单,初始化后直接调用获取温度
2025-06-22 18:03:11
328
原创 STM32Cubemx-H7-21-AT24C02模块驱动
本文提供了AT24C02 EEPROM芯片的I2C驱动实现方案,基于HAL库开发。代码包含底层I2C时序操作函数(Start/Stop/Ack/Nack等)、字节读写功能,以及AT24C02专用的单字节读写、页写入和连续读取功能。驱动程序采用开漏输出模式配置GPIO,包含完善的地址检查和超时处理机制。通过宏定义简化引脚操作,支持256字节容量和8字节页写入。代码结构清晰,移植性强,适用于STM32等MCU平台,配合5ms写入延时确保数据可靠性。
2025-06-22 17:39:54
299
原创 STM32CubeMX-H7-20-ESP8266通信(下)-双单片机各控制一个ESP8266实现通信
本文提供了ESP8266 WiFi模块与单片机连接的完整代码实现,包含三种工作模式:TCP服务器连接模式、主机模式和从机模式。代码封装了AT命令处理、数据收发、IP配置等核心功能,通过串口通信实现与ESP8266的交互。关键功能包括:模块初始化、模式切换、数据发送(TCP/主机/从机)、数据处理(IPD解析、IP获取)等。代码采用模块化设计,提供清晰的接口定义,支持中断方式处理接收数据,并包含超时重试机制。硬件连接使用USART2串口和TIM2定时器。
2025-06-08 18:45:35
454
原创 STM32CubeMX-H7-19-ESP8266通信(中)--单片机控制ESP8266实现TCP地址通信
上篇文章我们已经能够使用串口助手实现esp8266的几种通信,接下来我们使用单片机控制实现。这篇文章会附带教程,增加.c和,.h,把串口和定时器放到对应的编号,然后调用初始化就可以使用了。先讲解,然后末尾再放源码,也可以先看源码再看讲解。
2025-06-08 00:39:38
1283
1
原创 STM32Cubemx-H7-18-ESP8266通信(上)--ESP8266的几种通信方式,串口助手实现测试
本文介绍了两种基于ESP8266的无线通信方案:一是两个ESP8266直接互连(内网),二是通过外部WiFi连接服务器(外网)。第一种方案详细说明了如何将一个ESP8266设为AP热点,另一个作为STA客户端连接,并建立TCP服务器进行双向数据传输,包括AT指令配置步骤和透传模式设置。第二种方案则简化了流程,重点展示如何让两个设备连接同一外部WiFi后实现通信。最后还演示了ESP8266连接公网服务器的方法,使用Web工具验证数据收发。两种方案都通过串口助手测试,确认了通信可行性,内网方案有距离限制而外网方
2025-06-06 16:31:04
993
原创 STM32Cubemx-H7-17-麦克纳姆轮驱动
我们先看.h,知道哪些函数会有哪些功能和宏定义参数首先 是在.h的宏定义处定义引脚编号,比如tb6612控制方向的引脚,以及设定了哪个定时器作为pwm输出,还有编码计次的中断引脚/* 硬件相关宏定义 *//*1 前进方向往上 42 3*/// TB6612 方向引脚定义/* 定时器相关宏定义 *//* 编码器相关宏定义 */把自己的引脚根据原理图填对应,方向引脚也是,如果发现反转就把对应的引脚定义反过来,编码也是,编码我们用一个引脚就好,都在cubemx配置好。
2025-06-01 23:24:41
1282
原创 电赛TIMSPM0G3507 CCS环境安装在D盘的方法
选择路径下的这个路径都是D盘,说明刚才修改文件已经保存了打开图形画配置要在这个界面打开,要不然会报错可以看见正常打开无误添加个引脚后直接ctlr+s保存回到keil会发现有文件修改,直接修改全部这时候就可以看见我们已经配置的引脚编译无误就说明很正常。
2025-05-31 04:37:04
813
原创 STM32Cubemx-H7-16-FreeRTOS-1-创建工程,实现两个灯的基本亮灭
裸机也是开发到一半快要结束了,接下来开始上操作系统,然后先能使用基本的,后面再讲理论。
2025-04-28 12:02:21
318
原创 在KEIL里C51和MDK兼容以及添加ARM compiler5 version编译器
我们想在一个keil里面可以打开32和51的文件,这样就不需要两个keil了还有就是现在的keil,比如我用的是5,41的,就没有5版本的处理器本篇文章我们来详细讲解如何实现上面说的两个内容。
2025-04-23 13:37:37
2178
原创 STM32CubeMX-H7-15-SPI通信协议读写W25Q64
SPI(Serial Peripheral Interface)通信协议是一种的串行通信协议本篇文章就使用W25Q64模块来学习SPI,包括和。
2025-04-18 16:15:07
1158
原创 STM32Cubemx-H7-14-Bootloader(上)-ST和串口烧录
本文主要研究,如果把ST单片机的SWDIO和SWDCLK引脚改成推挽输出后,我们又应该怎么重新烧录,以及如何使用串口下载。
2025-04-10 17:12:56
384
原创 STM32CubeMX-H7-13-IIC读写MPU6050模块(下)-硬件IIC驱动MPU6050模块
这四个函数的部分参数含义相近,但和多了MemAddress和MemAddSize这两个参数,用于指定从设备内部的寄存器地址及地址大小,以实现对特定寄存器的读写操作。在使用时,需根据具体的 I2C 通信需求准确设置这些参数。中断DMA。
2025-04-05 20:21:11
699
原创 STM32CubeMX-H7-12-IIC读写MPU6050模块(中)-MPU6050模块详解以及软件IIC驱动
我们要对0x6b这个地址给0以唤醒// 唤醒 MPU6050#define SMPLRT_DIV 0x19 // 采样率分频,典型值:0x07(125Hz) */#define CONFIG 0x1A // 低通滤波频率,典型值:0x06(5Hz) */#define GYRO_CONFIG 0x1B // 陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s) */
2025-04-05 01:36:11
992
原创 STM32CubeMX-H7-11-IIC读写MPU6050模块(上)-软件IIC协议的解析、封装,实现基本功能获取MPU6050的ID
用是最好的学,学习了IIC协议的知识,那么我的要去使用他才更方便我们去理解,本篇文章会给出.c和.h的文件,直接复制粘贴,直接修改引脚和主频,就可以直接使用这套代码区读MPU6050。IIC和MPU6050这篇文章有点长,所以我分为上中下篇上篇主要讲解IIC协议和基本使用,获取MPU6050的ID中篇主要讲解MPU6050模块的使用下篇主要是硬件IIC驱动MPU6050IIC协议的优点是两根信号线就可以对多个设备进行通信,缺点是通信速度慢,刚好跟SPI相反。
2025-04-04 16:24:16
1264
原创 STM32CubeMX-H7-10-SPI对W25Q64的读写
下面是豆包给的模块资料,可以看出这个模块存储的容量非常大,但是删除就删除掉一个扇区。
2025-03-18 16:06:42
612
原创 STM32Cubemx-H7-9-串口接受不定长度数据并识别
把tim.h添加到uart.c里面去这里简单讲,结合串口和定时器中断代码就会理解其中buffer是串口缓冲,每次接收一个字符OUT[100]是输出缓存,我设置最大是100个字节flag是发送标志位,只有串口接收到数据后,标志位为1,定时器检测到标志位为1时才能发送length是数据长度,每结束后到一个就++time是时间标志,每10ms++一次,加到10后也就是100ms,如果串口无接收,那么就发送或者执行对应程序。
2025-03-13 18:33:58
598
1
原创 STM32Cubemx-H7-8-维特科技WT61C-TTL陀螺仪获取XYZ角度
定义两个全局变量xyz主要用来传输角度,用作全局变量,到时候要传到主函数buffer[1]主要是用来串口接收一个字符然后在main.c里面也定义成全局变量。
2025-03-11 22:55:51
1485
原创 STM32Cubemx-H7-7-OLED屏幕(直接调用.c.h文件直接可以用)
本文讲解如在hHAL库中使用OLED,其实江科大做的文件好已经很好了只讲操作,不讲废话,默认大家都有32基本操作。
2025-03-11 19:40:48
611
原创 手机app开发3-输入文本、数字、密码
我是在按键那里定义一个接收区,然后把1122字符获取,通过按键刷新。然后就是输入的内容只能是文本,接下来把文本输出。第二次是输入密码,就是输入内容会被隐藏。
2025-02-25 17:58:54
151
原创 手机app开发2-统计点击次数的程序
在 button.setOnClickListener(v -> {textView.setText("成功点击"+count+"次");前面已经把视图弄好了,接下来我们弄按键。这个函数体里面可以添加触发事件。
2025-02-23 06:16:35
228
原创 STM32Cubemx-H7-4.串口通讯
本期主要讲述串口UART1.如何配置2.printf()重定向3.基本收发功能4.配合数据包实现接收整型数据(自认为比较好用)5.DMA收发以及DMA实现数据包算法这个是我自创的一个串口收发数据包,我们通讯都希望获取整型数据,但是串口发送的都只能是字符串,通过调用我的串口函数,可以传输多个整型字符串总得来说你拉屎的时候刷优快云,大脑不用去思考什么时候拉,因为他会自己拉。
2025-01-27 01:40:24
1004
基于openmv红绿灯交通智能小车
2025-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅