- 博客(38)
- 收藏
- 关注
原创 ADS1015驱动流程-软件IIC
/ ADS1015 寄存器地址0x00//转换寄存器,存储最近一次 AD 转换的结果0x01//配置寄存器,用于设置工作模式、采样率、输入通道等核心参数0x02//低阈值寄存器,存储比较器功能的下限阈值0x03//高阈值寄存器,存储比较器功能的上限阈值// ADS1015 的 I2C 设备地址 (ADR接地)0x48。
2026-03-31 10:49:30
393
原创 ADS1015初始化配置
初始化就是写一次配置。你只需要在程序开始时调用一次,芯片就会按照你设定的通道、量程和模式开始工作。之后,你只需要通过函数去读取转换寄存器(地址 0x00)的值即可获取最新的 ADC 数据。
2026-02-28 17:45:45
378
原创 ADS1015IDGSR 芯片
从原理图可见,该芯片具备完整的模拟输入通道(AIN0~AIN3)、I2C 通信接口(SCL/SDA)、电源管理(VDD/GND)及地址配置引脚(ADDR),完全符合外部 ADC 芯片的典型架构。它通过内部集成的可编程增益放大器(PGA)和模数转换内核,将输入的模拟电压精确量化为 12 位数字值,并通过 I2C 总线输出给主控板。,全称为“模数转换器”,它的核心功能正是将 0-5V 的模拟电压信号转换为数字信号,供主控板通过 I2C 接口读取。
2026-02-26 17:16:16
46
原创 配置SPI的NSS,配置参数的选择-硬件NSS/软件NSS?
维度硬件 NSS (软件 NSS (控制方式硬件自动控制引脚电平。软件手动控制 GPIO 电平。时序精度极高(纳秒级),与 SCK 严格同步。低,受中断延迟、代码执行速度限制。引脚灵活性低,必须使用芯片指定的专用 NSS 引脚。高,可以使用任意 GPIO引脚作为片选。多从机支持差,一个 SPI 接口通常只能接一个从机。好,通过多个 GPIO 可以轻松控制多个从机。可靠性高,不易受 CPU 负载影响。低,CPU 忙碌时易导致时序错误或数据丢失。配置复杂度初始化配置简单,但引脚复用要求高。
2026-02-25 16:43:05
756
原创 JLink-Cortex-M Error报错-No Cortex-M SW Device Found和Could not stop Cortex-M device! Please check the
如果你先遇到“找不到设备”,解决接线和供电后,可能会直接连上;如果连上了却报“无法停止”,那就去。
2026-02-08 17:23:19
602
原创 JLink-Cortex-M Error报错-Could not stop Cortex-M device! please check the JTAG cable-解决办法整理
在调试的语境下,“Stop” 指的是调试器试图暂停芯片的运行,以便接管控制权、下载程序或查看变量。现象: 芯片进入了深度睡眠模式,或者进入了硬件错误死循环,导致它无法响应调试器的“暂停”指令。解决: 检查 SWDIO、SWCLK 和 GND 线是否接通,目标板是否供电正常。所以,这句报错的真实含义是:调试器喊“立定”,但芯片根本不理睬,没有停下来。解决: 尝试手动按一下复位键,或者给板子重新上电,再进行连接。总结: 遇到这个报错,先降速,再复位,最后检查线。现象: 调试器发送指令太快,芯片反应不过来。
2026-02-08 17:13:58
516
原创 JLink-Cortex-M Error报错-No Cortex-M SW Device Found-解决办法整理
如果你的串口转 USB 模块(如 CH340)的 DTR 引脚连接到了 MCU 的复位引脚,当打开串口助手时,DTR 信号可能会将 MCU 拉入并保持在复位状态,导致无法连接。降低 SWD 时钟频率: 在 Keil MDK 等 IDE 的调试设置中,尝试将 SWD 时钟频率(SW Clock)从默认的 5MHz 或更高,降低到 1MHz - 2MHz。如果以上方法都无法解决,可能需要考虑芯片是否损坏,或者使用 ISP(在系统编程)等其他方式通过串口重新烧录一个“恢复正常引脚配置”的程序。
2026-02-08 17:04:03
1011
原创 嵌入式-分层架构-回调函数
在嵌入式开发中,使用回调函数的最大好处是解耦。驱动层不需要 #include 应用层的头文件,也不需要知道业务逻辑,它只关心“接口”。应用层不需要修改驱动代码,只需要注册自己的处理函数即可。注意:如果回调是在中断中触发的(如上面的 UART 例子),你的回调函数体()要尽量短小精悍,不要在里面做printf或长时间延时,否则会阻塞整个系统的中断响应。
2026-02-08 16:17:58
592
原创 续集--ESP32S3---WiFi连接时连接不上,报错“wifi:init nvs: failed, ret=101”\“Failed to deinit WI-FI driver(0x3001)“
arduino上擦除选项选择enable。不是硬件问题,可能是工程文件的问题,
2025-08-25 17:57:32
247
原创 使用esptool擦除ESP32S3的Flash区
在遇到问题时,方法1 推荐擦除NVS区,重新烧录代码。这个错误表明ESP32在初始化WiFi时遇到了NVS(Non-Volatile Storage)相关的问题。错误代码101通常表示NVS存储空间不足或损坏。
2025-08-25 16:26:56
2247
原创 ESP32S3-----NVS非易失性存储库
NVS(非易失性存储库)是一种用于在嵌入式系统中存储键值对格式数据的技术,它能够在设备断电或重启后保留数据。综上所述,NVS非易失性存储库为嵌入式系统提供了一种可靠的数据存储解决方案,特别适用于需要数据持久性的应用场景。安全性:虽然NVS本身不直接支持加密,但可以与ESP32的flash加密系统结合使用,实现数据加密存储。键值对存储:数据以键值对形式存储,键是ASCII字符串,值可以是整数、字符串或二进制数据。NVS适合存储较小的数据,对于较大的数据,建议使用文件系统。数据持久性:数据在断电后不会丢失。
2025-08-25 15:03:35
264
原创 ESP32S3---WiFi连接时连接不上,报错“wifi:init nvs: failed, ret=101”\“Failed to deinit WI-FI driver(0x3001)“
首选方案:直接使用 Arduino IDE 的全部擦除工具,然后重新烧录程序。这能解决 99% 的此类问题。预防措施:将方案一中的代码擦除逻辑添加到您的setup()函数里,用于在开发阶段自动修复NVS错误。检查代码:确认您的代码没有在之前就调用任何 WiFi 相关函数。按照以上步骤操作,应该就能解决的错误。
2025-08-25 09:01:41
999
原创 TCP透传--ESP32S3
特点说明数据透明性不解析、不修改传输的数据内容协议无关性可以传输任何协议的数据(HTTP, MQTT, 自定义协议等)低延迟由于无需处理数据,转发速度很快低资源占用ESP32的CPU无需解析数据,负担小。
2025-08-23 11:37:13
2145
原创 DS1302实时时钟---外置RTC
DS1302时钟芯片的工作原理DS1302时钟芯片是一种实时时钟芯片,采用三线串行接口与微处理器相连,可以提供年、月、日、时、分、秒等时间信息。DS1302内部有一个32.768kHz的晶振,可以提供稳定的时钟信号。RTC的晶振频率为什么是32.768kHz(32768Hz)?32768 Hz = 215 即分频15次后为1Hz,周期 = 1s。时钟最准确.DS1302内部有一个时钟计数器,可以记录当前时间信息。时钟计数器可以通过外部电池供电,即使断电也可以保持时间信息。
2025-08-20 11:30:21
359
1
原创 BQ76920---BMS电源管理芯片的数据采集
BMS电池系统应用于智能化管理维护各个电池单元,可以监控电池的状态,防止电池过充电或过放电,从而延长电池的使用寿命,在电动汽车、储能系统、无人机、电动工具等领域使用广泛。BMS电池系统可以通过各种通信接口与外部设备连接,如监控系统、充电桩等,实现数据的传输和管理,以支持对电池组的远程监控和管理。因此,我们可以将其接入工业智能网关,从而实现BMS储能系统的数据采集和远程监控,更好的监测管理电池状态。
2025-08-15 17:04:23
706
原创 引脚复用功能,STM32F407的PD13引脚只支持TIM4(CH2)
蜂鸣器代码有什么错误,为什么驱动不了,基于STM32F407您的代码存在几个关键问题,导致无法驱动蜂鸣器。N如果问题仍存在,建议使用STM32CubeMX生成初始化代码,确保硬件配置正确!引脚只能使用PD13如果硬件设计强制要求使用驱动蜂鸣器,需改用(因为PD13不支持TIM2,但支持TIM4)。STM32F407的,只有TIM4可以!这里使用了定时器4,怎么办如果您的硬件必须使用作为蜂鸣器驱动引脚,同时还需要STM32的定时器可以使用和,只需正确配置即可。
2025-08-15 15:26:31
948
原创 引脚复用、重映像、重映射
在STM32F1中,TIM2可以部分重映射(Partial Remap)或完全重映射(Full Remap),但在STM32F4中,复用:是指一个引脚能够用于多个不同的功能,为了优化64脚或100脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。如果仍有疑问,建议提供具体的外设和引脚需求,我可以给出更针对性的代码示例!,而是直接通过**GPIO复用功能(AF)**来配置外设引脚映射。重映射:是指一个功能可以通过多个引脚去实现。,这些函数是STM32F1系列的用法。在STM32F1中,
2025-08-15 11:36:20
1826
原创 debug运行一次后点击run,运行不了,然后点击单步调试报错“Could not stop Cortex-M device! Please check the JTAG cable.”
报错意思是:无法停止Cortex-M设备!请检查JTAG电缆。
2025-08-12 10:10:16
507
2
原创 debug调试:点击开始,debug开始不了“JLink Breakpoint Error BP could not be set! Probably too many Breakpoints de”
1、JLink Breakpoint ErrorBP could not be set!Probably too many Breakpoints defined?STM32F*/GD32F*在线调试打断点出现 BP could not be set…Probably too many Breakpoints defined?解决办法
2025-08-11 10:03:59
391
原创 MavLink协议(无人机通信协议)
MavLink(Micro Air Vehicle Link)是专为小型无人载具设计的开源通信协议。该协议采用混合发布-订阅与点对点架构,支持地面站与无人机间通信及机载设备数据交互,其消息格式通过XML文件定义并支持多语言代码生成。截至2024年,协议已迭代至2.0版本,新增消息签名等安全机制,广泛应用于PX4、PIXHAWK等主流无人机飞控系统。开发者可利用USB/蓝牙接口实现MAVLink协议数据收发,支持与Mission Planner等地面站进行数据交互。
2025-08-07 09:19:09
706
原创 TTL、RS-232、RS-485的区别
串口:串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。
2025-08-01 16:58:21
202
原创 CAN协议帧
帧结构包括帧起始(SOF)、11位ID、远程传输请求位(RTR)、标识符扩展位(IDE,固定为0)、控制场、数据场(0~8字节)、循环冗余校验码(CRC)、应答位(ACK)和帧结束(EOF)。:标识符长度为29位,由11位基本ID和18位扩展ID组成,范围为0x00000000~0x1FFFFFFF,最多支持536,870,912个不同的标识符。:帧结构在标准帧的基础上,增加了替代远程请求位(SRR,固定为1)和18位扩展ID,IDE位为1表示扩展帧。CAN协议帧总共分为两种:标准帧和扩展帧。
2025-07-30 17:46:16
1018
原创 用JLINK 烧写程序时出现NO Cortex-m device found
原因:在调试程序的过程中,我遇到了无法通过的困境。寻求解决方案时,我尝试参考了网上的示例程序,然而下载的STM32工程与我的板子硬件可能存在不匹配的问题,这导致STM32的flash读写保护被触发。之后,尽管我尝试使用JLink进行连接,但始终无法与STM32建立联系,Keil也无法识别出设备。芯片进入了写保护,那么这种情况下就需要在下载程序时按下复位键进行下载看能否成功,如果行,就先将boot0保持拉高,再按下复位,然后boot0拉低,之后可以正常使用。1、接线问题,接线接错了,排除这个原因。
2025-07-28 11:43:59
535
原创 关于RTC时钟配置错误引发时间不正确案例
配置RTC时钟时,发现时间不正常,具体表现为秒钟计时不准确,出现漂移时钟出现两次计数1、硬件原因如果RTC使用外部晶振作为时钟源,晶振的频率可能不准确或者出现漂移。晶振的准确度和稳定性直接影响RTC的时间精度。可以尝试更换晶振或使用更高精度的时钟源。另外,RTC硬件本身可能存在问题。检查RTC的硬件连接,包括晶振和其它关键部分,确保它们正常工作。2、软件问题: RTC的配置和控制也可能受到软件的影响。确保正确地配置了RTC,并且在需要时进行周期性的时间同步。
2025-07-28 08:37:35
705
原创 本来运行的好好的,突然报一大推错..\CORE\core_cmInstr.h(129): error: #20: identifier “uint32_t“ is undefined
今天下午移植到HAL库时,报错..\CORE\core_cmInstr.h(129): error: #20: identifier "uint32_t" is undefined,所以我就将uint32都改成了u32,结果点了全替换,将文件夹里所有的都替换了。然后就所有工程打开都报这个错误,啊啊啊啊,我就把所有的文件都删了,然后要来了重新发给我的文件,打开后运行还是一样报错,,,
2025-07-11 17:48:58
222
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅