- 博客(3762)
- 收藏
- 关注
原创 [单片机芯片] 基于CH579驱动OPT300X环境光传感器
本文介绍了如何驱动OPT3001环境光传感器模块。作者通过分析模块电路,采用CH579开发板和软件模拟I2C实现了对传感器的控制。文章详细说明了I2C通信的初始化、起始/停止信号、数据收发等底层驱动函数,并提供了OPT3001的寄存器配置、数据读取及光照强度计算的具体实现。调试过程中发现ADDR引脚必须接地才能正常工作,最终通过设置高低阈值成功获取光照数据。作者建议使用硬件I2C以提高效率,并强调理解模块原理图和正确配置地址的重要性。完整的驱动代码已通过测试,可用于环境光检测应用。
2026-06-19 08:05:47
7
原创 RTOS 线程为什么几乎都要写延时?——从“饿死”现象到优先级抢占的本质理解
摘要: 本文探讨了RTOS中常见的低优先级任务“饿死”现象,指出高优先级任务若未主动让出CPU(如调用vTaskDelay()或阻塞等待),会永久霸占资源,导致低优先级任务无法执行。核心原因在于RTOS调度机制——优先级抢占优先于时间片轮转,时间片仅在同优先级任务间生效。 通过裸机与RTOS的对比,分析while(1)无延时的危害,并列举三种典型饿死场景:无限循环、高频短延时、忙等待外部事件。提出解决策略:高优先级任务应尽量采用阻塞式等待(如队列/信号量),低优先级任务必须主动延时。文中还给出了优先级分层建
2026-06-19 08:04:38
112
原创 两根线的命运分水岭:为什么CAN必须仲裁,而UART几乎不需要,I2C的仲裁又形同虚设
本文对比分析了UART、I2C和CAN三种两线制通信协议在仲裁机制上的本质差异。UART采用点对点单向通信,物理上避免冲突;I2C允许多主但实际多采用单主模式,仲裁机制简单但很少触发;CAN作为真正的多主总线,将非破坏性位仲裁作为核心机制,通过优先级确保高实时性需求。文章从物理层逻辑、拓扑结构、冲突处理策略、应用场景等维度揭示:UART通过物理隔离避免冲突,I2C被动处理冲突,而CAN主动设计冲突解决机制,这种差异源于各自适用场景对实时性和可靠性的不同要求。
2026-06-19 08:02:18
106
转载 如何选用pic单片机?pic单片机或运算符如何使用
本文介绍了PIC单片机的选型与位操作应用。在选型方面,建议初学者选用资源丰富、资料齐全的PIC16F系列,如PIC16F887,其具有256字节EEPROM、A/D转换等功能,适用于多种应用场景。在编程应用方面,针对PIC单片机缺乏位取反指令的问题,通过XOR异或运算指令实现了位取反操作,并展示了在时钟程序中的应用实例,体现了PIC指令的灵活性和强大功能。
2026-06-19 08:00:48
4
原创 [开发工具] APM32 RCC模块中晶振Ready标志位的硬件实现原理与LSE起振的备份域写保护机制深度解析
本文深入解析了APM32微控制器时钟树系统中RCC模块的关键机制。重点探讨了两个核心问题:1. 时钟源就绪标志位(如HSIRDY、LSERDY)的硬件判定逻辑,指出其采用"幅度检测+连续合格周期计数+稳定观察期"的多阶段策略,而非简单脉冲计数;2. LSE晶振启动必须解除备份域写保护(DBP位)的设计原因,揭示了这是厂商为确保RTC在掉电后仍能工作而采取的安全架构设计。文章通过对比不同时钟源的启动特性,阐明了硬件设计对可靠性和安全性的优先考量,为嵌入式开发者提供了底层硬件实现的深入理解。
2026-06-19 07:59:58
130
原创 [经验知识] HX711称重系统空载AD值偏大问题分析及处理
本文记录了一个电子秤称重系统开发过程中遇到的HX711 ADC前端信号异常问题的分析与解决过程。系统采用HX711芯片采集应变式称重传感器信号时,发现空载状态下AD值偏高导致量程压缩。经过排查确认问题源于传感器桥路不平衡,最终通过在桥臂并联100kΩ电阻进行硬件调零补偿,有效恢复了ADC动态范围。该方案相比降低增益等软件处理方法,以低成本硬件调整从根本上解决了模拟信号偏移问题,提高了系统稳定性和测量精度。文章详细描述了问题现象、分析思路和解决过程,为类似惠斯通电桥应用提供了可借鉴的工程实践经验。
2026-06-19 07:58:57
161
原创 单片机编程软件之Keil单片机编程软件常见文件介绍
本文介绍了Keil单片机编程软件中常见文件类型及其作用,帮助开发者有效管理工程文件。主要内容包括:1.工程文件(.uvprojx、.uvoptx等)的重要性;2.源代码文件(.c、.h等)的基础知识;3.链接文件(.map、.lst等)的配置与用途;4.目标文件(.hex、.axf等)的关键作用;5.编译、调试等辅助文件的使用场景。文章重点分析哪些文件必须保留、哪些可删除,并提供了工程文件管理的实用建议,如使用批处理文件清理编译产生的中间文件。
2026-06-19 07:57:58
143
原创 APM32系列的RT-Thread外设驱动适配教程(二)——外设驱动使用教程
本文介绍了如何在RT-Thread操作系统下使用APM32系列MCU的外设驱动。主要内容包括:1)使用ENV工具配置BSP工程开启板载外设(以SPI Flash为例);2)RT-Thread设备驱动框架的三层结构(I/O设备管理层、驱动框架层和驱动层);3)应用程序通过标准接口访问硬件的流程。文章强调官方已适配大部分外设驱动,开发者通常只需通过menuconfig配置即可使用,特殊情况下才需自行编写驱动代码。操作步骤涵盖配置修改、工程生成到下载验证的全流程。
2026-06-19 07:56:43
190
原创 【每周分享】自定义EtherCAT从站节点地址的功能开发和验证
本文详细介绍了EtherCAT从站模块实现自定义节点地址功能的开发过程。通过分析LAN9252芯片手册,确定了关键寄存器(DL控制寄存器和已配置站别名寄存器)的设置方法。开发时需在上电初始化阶段通过MCU读取拨码开关值并写入ESC芯片,同时在主站软件(如TwinCAT或CODESYS)中配置对应地址和勾选"CheckIdentification"。验证阶段确认模块能正确显示配置地址(如170),修改地址会导致运行异常。该功能实现了通过8位拨码开关灵活设置1~65535范围的从站地址,为工
2026-06-19 07:55:55
140
原创 如何解决传感器电子电路设计中的干扰问题
本文主要探讨电子电路设计中的抗干扰技术,从电路布局、屏蔽技术、接地技术、隔离技术等方面提出具体解决方案。在电路布局方面,强调合理的地线、电源布线和元器件布置;在屏蔽技术中介绍了静电屏蔽、电磁屏蔽和低频磁屏蔽的应用;接地技术部分分析了一点接地和多点接地的适用场景;隔离技术则包括电磁隔离和光电隔离等方法。此外还简要介绍了稳压技术、共模干扰抑制和软件补偿等其他抗干扰措施,为电子电路设计中的抗干扰问题提供了较为全面的技术参考。文章内容延续了前文关于抗干扰问题的讨论,形成了完整的解决方案体系。
2026-06-19 07:54:42
213
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】+ 02用户按键实现外部中断
本文介绍了嵌入式系统中的NVIC(嵌套向量中断控制器)和EXTI(扩展中断/事件控制器)的工作原理与应用。NVIC与处理器核心紧密耦合,支持4级优先级、32个可屏蔽中断和10个Cortex-M0+异常处理,采用尾链优化降低延迟。EXTI控制器则增强了GPIO和外围信号的中断处理能力,支持边沿检测和停止模式唤醒。文章包含原理图展示和实际代码示例,演示了如何在回调函数中实现LED控制操作。这些技术能有效提升中断响应速度和系统能效,适用于嵌入式开发场景。
2026-06-18 09:39:16
5
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】+ 03定时器16实现LED的闪烁
摘要:本文介绍了STM32微控制器中通用定时器的功能特性,重点讲解了TIM16定时器的配置与使用。文章分为三部分:1)概述5个通用定时器(TIM2-TIM4为全功能,TIM16/17为中特性)的基本参数和功能;2)使用STM32CubeMX配置TIM16的时钟参数并启用中断;3)提供初始化代码和回调函数实现,通过定时器中断控制LED以1秒间隔闪烁(分频系数63,重装值999)。示例代码展示了如何初始化TIM16并实现周期性任务,最终在开发板上验证了定时功能。
2026-06-18 09:38:38
75
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】+ 04调试板载的串口输出功能
本文介绍了USART串口通信的基础知识与应用实现。USART支持全双工异步通信,可实现115200波特率的8位数据传输,具有灵活配置选项。文章详细展示了STM32串口2的初始化代码,包括波特率设置、数据格式配置和硬件流控制等参数。通过HAL_UART_Transmit函数实现数据传输,并配合LED指示灯进行状态显示。最后通过printf函数验证了串口调试功能,附有实物测试效果图。该实现方案适用于嵌入式系统中的串口通信开发,可作为基础参考模板。(146字)
2026-06-18 09:36:16
79
转载 单片机编程软件之Keil单片机编程软件对ANSIC的扩展学习
本文详细介绍了Keil C51单片机编程软件对标准ANSI C的扩展功能,主要包括8个关键方面:存储类型与区域、存储模式、变量类型声明、位变量与位寻址、特殊功能寄存器(SFR)、指针类型、函数属性以及扩展关键字。内容涵盖8051系列CPU硬件的直接操作特性,如data/idata/xdata等存储区域定义、small/compact/large三种存储模式选择、bit/sbit/sfr等扩展数据类型,以及中断函数声明和可重入函数实现方法。这些扩展功能为8051单片机开发提供了硬件级控制能力,是掌握Keil
2026-06-18 09:34:25
5
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】+ 05硬件IIC驱动OLED屏幕
本文介绍了OLED显示技术的基础知识和STM32硬件驱动实现方法。OLED具有轻薄、省电等优势,2007年后寿命显著提升。文章详细讲解了STM32CubeMX软件配置I2C通信的注意事项,包括引脚设置和电平配置。提供了OLED底层驱动函数代码,包括字节发送、命令/数据写入等功能实现。最后展示了OLED显示中文和字符串的示例代码及实物效果。该内容涉及硬件接口配置和软件驱动开发,适用于嵌入式显示应用开发。
2026-06-18 09:33:27
159
原创 【NUCLEO-WBA65RI 测评】WBAG5RI开发板硬件代码深度分析---------------------作者:current-hu链接:https://bbs.21ic.com
本文深入分析了基于STM32WBAG5RI开发板的硬件驱动代码实现,重点研究了温湿度传感器驱动、蓝牙定时器管理、低功耗配置等核心模块。代码分析展示了开发板的多项特性:双模式I2C驱动设计(硬件/软件I2C)、完整CRC校验、FPU硬件加速浮点运算;高效的定时器管理系统采用AMM内存管理,支持多定时器并发;灵活的低功耗配置方案实现从4.5mA到350nA的全范围功耗控制。测试数据显示开发板具有出色的外设协同能力(零冲突)、稳定的蓝牙连接性能(最大8个并发连接)和优异的中断响应速度(<2μs)。该开发板集
2026-06-18 09:32:28
132
转载 c编译器哪个好?6款c编译器介绍
本文介绍了6款常用的C语言编译器工具,包括Dev-C++、Turbo C、MinGW、WIN-TC、Cygwin和Visual Studio。各编译器特点不同:Dev-C++适合初学者;Turbo C兼容老版本但较陈旧;MinGW是GNU工具集;WIN-TC支持中文界面;Cygwin可模拟Linux环境;Visual Studio功能全面。文章建议根据项目需求和个人编程水平选择合适工具,初学者可优先考虑Dev-C++或WIN-TC,而专业开发推荐Visual Studio或MinGW等现代工具。
2026-06-18 09:31:12
4
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】2、Sequence
摘要:本文介绍了ST蓝牙方案采用的Sequencer技术,这是一种替代RTOS的轻量级任务调度方案。Sequencer通过任务注册、启用、暂停/恢复等机制管理执行流程,最多支持32个任务,具有优先级设置和空闲任务管理功能。文章以NUCLEO-WBA65RI开发板为例,详细演示了Sequencer的配置流程:初始化序列器、注册任务、设置任务触发条件(示例中使用SysTick中断每400ms触发LED切换任务)。Sequencer优化了裸机系统的任务调度,避免了传统while循环实现的竞态问题,特别适合低功耗场
2026-06-18 09:30:27
229
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】1、Peer 2 Peer应用
本文介绍了基于STM32WBA开发板的BLE对等互连(P2P)通信实现。通过BLEp2p_Server和BLEp2p_Client两个DEMO程序,展示了NUCLEO-WBA55CG和NUCLEO-WBA65RI开发板之间的BLE通信,包括LED控制和按键状态通知功能。文章详细说明了P2P配置文件的服务特征定义、开发环境搭建、功能测试过程以及关键代码分析,重点解析了LED特征值写入处理和SWITCH通知机制。该方案采用ST专有的128位UUID,实现了GATT服务器与客户端之间的双向数据通信,可作为BLE直
2026-06-18 09:29:45
146
转载 单片机编程软件之Keil单片机编程软件在线调试
本文主要介绍Keil单片机编程软件的在线调试功能,重点讲解调试工具栏的使用方法。文章详细说明了复位、全速运行、停止运行、单步调试等8个核心调试功能,并配有动画演示效果。同时介绍了调试窗口中常用的watch查看窗口和系统外设窗口,帮助开发者快速定位程序问题。这些功能对于提高单片机开发效率和调试准确性具有重要作用。
2026-06-18 09:28:01
4
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】4、驱动三轴数字陀螺仪
本文介绍了基于ST公司L3G4200D三轴数字陀螺仪的I2C驱动实现方案。该陀螺仪具有±250/500/2000dps可选量程、16位ADC和低功耗特性。文章详细说明了硬件连接(I2C地址由SA0引脚决定)、软件配置(使用STM32 HAL库)和数据处理流程,包括:1)通过定时器触发数据采集任务;2)I2C读写寄存器实现;3)陀螺仪初始化配置;4)原始数据转换为角速度(dps和rad/s)的算法。示例代码展示了如何通过1秒间隔定时采集并打印三轴角速度数据,为后续通过蓝牙传输数据奠定了基础。该方案适用于需要运
2026-06-17 08:58:14
12
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】3、SAI播放声音
本文介绍了基于STM32WBA65I-DK1开发板的音频播放实现方案。主要内容包括:1. SAI外设功能特性,支持多种音频协议和灵活配置;2. 使用MAX98357 D类功放驱动扬声器的硬件连接;3. 通过STM32CuteMX配置SAI和GPDMA参数;4. 详细的程序实现,包含DMA数据传输、缓冲区管理和音频文件处理;5. 音频文件烧录方法。该方案实现了从Flash读取音频数据,通过SAI接口输出到功放播放,展示了STM32 SAI接口的音频应用开发流程。
2026-06-17 08:57:28
67
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】5、BLE发送通知(notify)
本文介绍了BLE通信中NOTIFY和INDICATE的区别,重点阐述了NOTIFY的工作流程及其在STM32 NUCLEO-WBA65RI开发板上的实现方法。NOTIFY是服务器向客户端单向推送数据的机制,无需客户端确认。文章通过杂志订阅的类比解释了NOTIFY的工作原理,并详细展示了在STM32CubeMX中的配置步骤和关键代码实现,包括陀螺仪数据的采集、格式化及通过NOTIFY发送。最后通过手机蓝牙调试工具验证了数据推送功能,实现了每秒接收6字节陀螺仪数据的功能。
2026-06-17 08:56:42
82
转载 5分钟吃透可编程控制器,可编程控制器基本知识介绍
本文介绍了PLC(可编程逻辑控制器)的基础知识,包括其发展历程、基本构成和功能特点。PLC是一种专为工业环境设计的数字运算电子系统,通过可编程存储器执行逻辑运算、顺序控制等功能。文章详细解析了PLC的CPU构成、I/O模块分类、电源模块以及通信联网能力,并对比了PLC与DCS系统的差异。随着工业自动化发展,PLC在顺序控制领域具有不可替代的地位,其通信功能也使其成为现代工业网络的重要组成。
2026-06-17 08:55:35
8
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】点亮 OLED 12864 显示
本文介绍了使用STM32WBA65RIVx芯片通过高速I2C接口(支持1Mbps速率)驱动OLED显示屏的方法。作者分享了硬件连接方案(基于自制的Arduino扩展板)和关键代码实现,包括I2C读写函数和OLED初始化/清屏/绘图函数。重点展示了如何建立10K显示缓存区实现动态显示效果,如波形和图像动画。文章提供了完整的代码示例,包括I2C通信、OLED初始化和图形绘制等功能模块,为开发者实现高速OLED显示提供了实用参考。
2026-06-17 08:54:44
119
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】开箱+环境搭建+点灯
本文介绍了意法半导体NUCLEO-WBA65RI开发板的开箱及基础开发流程。该开发板采用STM32WBA65RIVx芯片(Cortex-M33内核,100MHz主频,2MB Flash,512KB SRAM),板载3个用户按键、USB接口、ST-LINK V3调试器和RGB LED。开发环境支持STM32CubeIDE、Keil等工具,演示了通过STM32CubeMX生成Keil工程并配置GPIO引脚的过程。文章详细展示了LED控制代码实现,包括初始化、点亮/熄灭操作及主循环中的LED流水灯效果,其底层通过
2026-06-17 08:53:43
132
转载 升压芯片很简单之升压芯片电路设计选型方法
本文总结了升压芯片的常见应用场景(移动设备、医疗器械、LED照明等)及典型选型方案,重点介绍了BT1001-BT2014、YD8001/8002等升压DC/DC转换器型号的关键参数(启动电压、输出范围、电流能力等),涵盖固定/可调输出、同步/异步拓扑等类型,为电子设计中升压芯片的选型提供实用参考。全文通过分类列举帮助工程师快速匹配应用需求。(149字)
2026-06-17 08:50:23
9
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】+1.开箱点灯3个LED灯
本文介绍了使用STM32 NUCLEO-WBA65RI开发板实现流水灯效果的步骤。作者通过查看原理图确定LED引脚,使用STM32CubeMX配置32MHz外部时钟,并设置LED1-3引脚。在修改主函数和添加LED控制代码后,成功实现了三个LED的流水灯闪烁效果。整个过程涵盖了硬件识别、开发环境配置和基础GPIO控制编程。(99字)
2026-06-17 08:48:47
149
原创 [STM32WBA] 【NUCLEO-WBA65RI 测评】- BLE测试
本文介绍了基于STM32WBA65RI开发板的BLE功能测试过程。通过CubeMX配置WPAN模块,设置设备名称和广播数据,初始化BLE协议栈并注册任务。代码实现了通过手机APP控制开发板LED灯的功能:发送"1"点亮LED,发送"0"熄灭LED。文章详细描述了从工程配置、代码修改到烧录测试的完整流程,展示了STM32蓝牙低功耗(BLE)通信的基本实现方法。测试使用ST官方BLE Toolbox APP进行连接和控制,验证了BLE通信功能正常工作。
2026-06-17 08:47:40
191
转载 138译码器之74hc138译码器原理+应用方法
本文深入解析74HC138译码器的工作原理及应用方法,重点介绍其在单片机电路设计中的实际应用。文章首先回顾了74HC138的基本功能,即3-8线译码特性,详细说明其6个输入引脚(包括3个使能端)的工作条件。通过LED控制电路实例,阐述了如何利用74HC138配合三极管实现多路LED控制,并给出具体引脚电平设置的真值表。文中还介绍了跳线在电路连接中的重要作用,展示了P1口与ADDR引脚的连接方式。全文通过具体电路分析,帮助读者理解数字逻辑芯片在扩展单片机IO口功能时的应用技巧。
2026-06-17 08:45:04
10
原创 [技术讨论] 手动拆解我的ETC机器,算是发挥他最后的价值了
本文记录了作者拆解旧款ETC设备的详细过程。设备采用太阳能充电,包含两节不同功能的锂电池(3.7V锂电池用于存储芯片供电,3.6V工业电池用于刷卡供电),主控采用博通BK8573高度集成芯片。拆解发现设备具有防拆开关、LCD显示屏、RFID读卡触点等组件,并分析了其电路板结构及功能模块。通过拆解,作者揭示了这款"老古董"ETC的内部构造和工作原理,展现了电子设备拆解的趣味性。该设备虽已淘汰,但拆解过程既满足了技术好奇心,又让其发挥了最后的科普价值。
2026-06-16 09:13:19
14
转载 成就电子电路设计高手,保护电子电路设计上篇
本文介绍了三种电子电路保护设计:1. 继电器保护电路采用TIL117光耦芯片实现电气隔离,配合UA7824稳压芯片提供稳定电源。2. 电热水器缺水保护电路通过水位检测开关触发继电器动作,实现断电保护并发出声光报警。3. MSP430电力系统微机保护电路包含数据采集、CPU处理和开关量I/O系统,采用CS-TA1互感器采集信号,通过有源滤波和限压电路保护单片机。这些设计分别解决了电磁干扰防护、缺水保护和电力系统过载保护等问题。(149字)
2026-06-16 09:11:58
15
原创 【每周分享】UDP协议的报文到底长啥样?不要急,Wireshark抓包告诉你
本文详细解析了UDP协议(用户数据报协议)的报文结构,通过Wireshark抓包实例展示了UDP协议的五个核心字段:源端口(2字节)、目的端口(2字节)、长度(2字节,最大64KB)、校验和(2字节)和可变长度数据载荷。文章对比了UDP与TCP的特性差异,指出UDP适用于实时性要求高、可容忍少量丢包的应用场景(如在线游戏、视频会议),并提供了两种突破UDP 64KB数据限制的方案:数据分段或改用TCP协议。全文以实际抓包数据为例进行字段解析,帮助读者直观理解UDP协议格式。(148字)
2026-06-16 09:08:40
78
原创 [APM32F1] APM32F103的IAP方案
本文介绍了一种基于APM32F103VB单片机的IAP(在应用编程)实现方案。该方案通过Bootloader和App两个程序实现固件更新功能,Boot区固定为3KB,App运行区和下载区各50KB,另有2KB参数备份区。文章详细阐述了Flash分区规划、Boot程序检查升级标志、CRC校验、App程序跳转机制以及串口通讯协议设计等关键技术点,并提供了完整的代码实现和测试流程。方案支持通过上位机进行固件版本查询和升级操作,包含CRC校验保证数据传输可靠性,最后还介绍了配套的PC端工具开发及移植注意事项。
2026-06-16 09:04:52
53
原创 单片机编程软件教学,Keil单片机编程软件配置操作
本文介绍了Keil单片机编程软件中Configuration配置的前三项设置:Editor(编辑器)、Colors & Fonts(颜色与字体)和User Keywords(用户关键字)。重点解析了Editor的五个功能模块:通用编辑设置(编码方式、自动缩进等)、函数显示方式、视觉设置(高亮当前行等)、文件与工程管理以及语法着色配置。文章特别说明Configuration的修改会保存到Keil软件本身,而非工程文件中。通过动画示例展示了关键功能的实际效果,并建议用户尽量保持默认设置。全文以1500余
2026-06-16 09:03:40
166
原创 [电子元器件] 【每周分享】+常用的两种ADC
ADC现在是用的越来越普遍了对于高精端的产品,很多都需要ADC来转换为数字信号来实现现在就来分享两种常见的ADC,与大家一起学习下
2026-06-16 09:00:49
170
原创 [APM32F1] APM32F103的FreeRTOS移植介绍(基于官网资料)
本文介绍了在APM32F103VB MINI板上移植FreeRTOS实时操作系统的详细过程。首先说明了FreeRTOS作为轻量级RTOS的特点及适用场景,并提供了官网资源链接。接着详细阐述了移植步骤:从裸机环境准备、内核文件拷贝(包括必要的.c文件和头文件)、工程配置(头文件路径添加和FreeRTOSConfig.h修改),到关键中断服务函数的处理(PendSV、SVC和SysTick)。此外,还介绍了通过CMSIS-OS2层封装实现中断/非中断环境下API调用的统一化方法。最后通过创建两个LED闪烁任务验
2026-06-16 08:59:37
172
转载 138译码器是什么,74hc138、74ls138译码器区别探讨
本文对比分析了74HC138和74LS138译码器的异同点。从工作原理、引脚功能、逻辑真值表、电气参数等方面详细说明了两者的特性差异:74HC138采用高速CMOS工艺,具有低功耗、高速特性;74LS138采用TTL工艺,驱动能力较强。文章指出,虽然两者功能相同且封装一致,但由于工作电压、功耗等参数存在差异,在要求严格的场合不能直接互换使用,但在一般低速、非精密电路中可以相互替代。最后强调元器件替换需遵循功能相同、封装一致的基本原则。
2026-06-16 08:58:38
12
原创 [APM32F1] APM32F103的I2C驱动(模拟和硬件轮询/DMA方式)
本文介绍了APM32F103微控制器的I2C接口实现方法,包括硬件配置和三种数据传输方式:轮询模式、DMA模式和模拟I2C模式。硬件配置需将GPIO设置为开漏输出模式并外接上拉电阻,DMA模式需注意传输完成标志检测和NACK应答配置。模拟I2C通过GPIO模拟时序,需严格遵循起始/停止信号时序。文章提供了完整的初始化代码和AT24CXX EEPROM测试案例,通过波形对比显示模拟I2C与硬件I2C时序高度一致。三种实现方式的示例代码均已打包提供,适用于不同应用场景的性能需求。
2026-06-16 08:55:30
154
原创 基于AT32F403ACCT7解读一下芯片的硬件CRC模块
本文介绍了雅特力AT32F403A系列MCU内置的CRC硬件模块功能及实际应用测试。该模块支持标准CRC32和CRC32/MPEG-2两种算法模式,具有数据翻转、多项式系数配置等功能。作者通过技术手册解析了CRC模块的寄存器配置,并使用AT32F403ACCT7开发板进行实测验证。测试结果表明,CRC模块的输出数据翻转功能运行正常,计算结果与预期一致。文章还探讨了固件库中未明确定义的多项式位宽配置问题,并邀请雅特力技术支持予以解答。该实验为开发者使用AT32系列MCU的CRC功能提供了实用参考。
2026-06-16 08:46:18
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅