当前位置: 首页 > article >正文

RL78/G13单片机定时器外部事件捕获与中断控制LED实践

1. 项目概述与核心思路最近在折腾瑞萨的RL78/G13系列单片机手头正好有块开发板就想用它来实现一个基础的定时器功能。这听起来是个老生常谈的话题但实际动手时你会发现从选型、配置到调试每一步都有不少细节值得琢磨。特别是对于RL78这类资源相对紧凑、外设功能又很丰富的MCU如何高效、准确地使用其定时器单元是嵌入式开发中绕不开的基本功。我这次的目标很明确利用RL78/G13的定时器阵列单元TAU来捕获一个外部下降沿信号并以此触发中断最终控制一个LED灯的状态翻转。听起来像是“Hello World”级别的任务对吧但正是这种基础功能最能检验你对芯片手册的理解、对开发环境的熟悉程度以及调试排错的能力。整个过程涉及定时器工作模式的选择、中断服务程序的编写、I/O口的配置以及如何验证功能是否按预期工作。下面我就把这次从零开始实现的完整过程、踩过的坑以及总结的经验毫无保留地分享出来。2. 硬件平台与开发环境准备2.1 RL78/G13开发板简介我使用的是一块基于R7F0C004L2DFB-C#AA0芯片的RL78/G13入门套件。这块板子资源比较典型主频32MHz内置32KB Flash和2KB RAM外设方面包含了多个定时器阵列单元TAU、串口、I/O端口等。板载了一个用户LED通常连接在某一个GPIO上方便我们进行输出测试。对于外部事件输入我计划使用一个微动开关或者通过杜邦线模拟一个下降沿信号连接到指定的引脚上。2.2 开发工具链搭建瑞萨为RL78系列提供了官方的集成开发环境CS for CCCubeSuite或者更新的e² studio。我个人更习惯使用e² studio因为它基于Eclipse界面友好并且与瑞萨的代码生成器和调试器集成得非常好。首先你需要去瑞萨官网下载并安装e² studio同时记得安装对应的RL78 GCC编译工具链和器件支持包FSP。安装过程比较直观按照向导一步步来即可。创建新工程时选择正确的器件型号R7F0C004L2DFB和工具链RL78 GCC。e² studio的强大之处在于其智能配置器Smart Configurator和代码生成器Code Generator它们可以图形化地配置时钟、外设和引脚并自动生成底层驱动代码和初始化函数这能极大减少我们手动查阅寄存器手册和编写样板代码的工作量。当然为了彻底理解原理我们也会结合手动配置的方式来进行说明。2.3 核心外设定时器阵列单元TAU浅析在开始配置之前有必要简单了解一下RL78/G13的TAU。它不是单一的一个定时器而是一个由多个定时器通道组成的阵列。每个通道都可以独立配置成不同的工作模式比如间隔定时器、PWM输出、外部事件计数器等。通道之间还可以进行联动实现更复杂的功能。我们本次要用到的就是“外部事件计数器”模式。在此模式下定时器不再依赖内部的时钟源进行累加而是变成一个“事件”计数器。每当指定的输入引脚上发生一次有效的边沿事件比如我们需要的下降沿计数器的值就加1或减1。当计数值达到设定值时可以产生中断。更重要的是它可以在每次捕获到事件时立即产生中断这正是我们实现“事件触发即响应”需求的关键。3. 详细配置与实现步骤3.1 引脚功能分析与配置根据项目摘要我们需要使用定时器通道3TI03作为外部事件输入引脚它对应的是P31引脚。同时我们需要配置Port7的第7位P77作为输出用于控制LED。首先在e² studio的引脚配置视图中找到P31引脚。它的功能是复用的既可以作为通用I/O也可以作为定时器输入。我们需要将其功能选择为“TI03”。这个操作实际上是在配置端口模式寄存器PM和端口功能寄存器PF。有些开发板的原理图上P31可能已经连接了上拉电阻和按键如果没有你可能需要自己在外部连接一个上拉电阻和开关到地以产生一个干净的下降沿信号。对于P77则配置为通用输出端口Output port。通常开发板上的LED是低电平点亮阴极接LED阳极接VCC所以我们的程序里需要初始化为高电平LED灭当需要点亮时输出低电平。注意务必查阅你所使用的具体开发板的原理图确认LED的连接方式高电平有效还是低电平有效以及P31引脚外部电路的连接情况。错误的硬件理解会导致软件调试时南辕北辙。3.2 定时器通道3的详细配置流程配置TAU通道3为外部事件计数器模式并使其在下降沿触发中断需要操作一系列寄存器。我们可以通过代码生成器配置但理解其手动配置过程至关重要。停止定时器在修改任何定时器配置之前必须先停止该通道。通过设置定时器通道启动寄存器TT的对应位为0来实现。TAU0EN 0U; /* 停止TAU0单元如果通道3属于TAU0 */选择通道并设置模式我们需要操作通道模式寄存器TnMD。对于通道3就是T3MD寄存器。设置工作模式为“外部事件计数器模式”。查看手册该模式通常由寄存器中的某些位组合决定例如设置MD位为特定值。设置计数时钟源为“TI3n输入引脚”。这意味着计数器由外部引脚信号驱动而不是内部时钟。设置有效边沿为“下降沿”。这通过设置寄存器中的EG位来实现。设置操作模式为“单次”还是“重复”对于捕获事件并翻转LED的需求我们选择“重复模式”这样每次捕获事件后定时器会复位并等待下一个事件持续响应。设置中断使能通道3的计数匹配中断INTTM3。即使我们用的是事件计数在“每次事件触发即中断”的模式下它通常也利用计数匹配中断机制。需要设置定时器中断允许寄存器TMMK的对应位为0允许中断并设置定时器中断请求寄存器TMIF的对应位为0清除可能存在的挂起中断。在中断控制器中设置该中断的优先级。启动定时器配置完成后设置TT寄存器的对应位为1启动通道3。使用e² studio的智能配置器可以可视化完成上述大部分步骤。你只需要在TAU组件中选择Channel 3工作模式选择“External Event Counter” Trigger Edge选择“Falling”并勾选生成中断。工具会自动生成类似下面的初始化代码框架void R_TAU0_Channel3_Create(void) { TAU0EN 0U; // Stop TAU0 TPS03 _00_TAU_CK0_SEL_CK00 | _00_TAU_CK0_DIV_1; // 时钟分频设置事件计数器模式下可能无关 TMR03 _0000_TAU_CLOCK_SELECT_CK00 | _0000_TAU_CLOCK_MODE_MASK | _8000_TAU_COUNTER_START_FLAG; // 模式设置包含启动位 TDR03 0xFFFFU; // 设定比较值在事件计数器模式下此值决定计数多少次后产生匹配中断。若设为1则每次事件都中断。 TOE03 0U; // 禁止定时器输出我们只用输入 TO03 0U; // 输出引脚电平 TS03 0U; // 引脚作为输入 TOL03 0U; // 输出电平控制 TOC03 0U; // 输出控制 /* 中断配置代码由工具生成 */ TAU0EN 1U; // Start TAU0 }关键点TDR03定时器数据寄存器的值在这里非常关键。如果我们希望每次在P31上检测到下降沿就进入一次中断那么应该将TDR03设置为1。这样计数器从0开始第一次事件下降沿使其变为1立即与TDR03匹配从而触发中断然后计数器清零等待下一个事件。这是一种非常常用的“单次事件捕获”配置。3.3 中断服务程序ISR编写中断服务程序是功能实现的核心。当P31引脚上的下降沿事件被捕获MCU就会跳转到我们为通道3编写的中断服务程序中执行。中断函数声明在RL78 GCC中中断函数通常使用#pragma interrupt或__attribute__((interrupt))来声明并指定正确的中断向量号。e² studio生成的代码会处理好这些。#pragma interrupt (r_tau0_channel3_interrupt) void r_tau0_channel3_interrupt(void) { /* 用户代码写在这里 */ }中断内任务我们的任务很简单就是翻转LED的状态。void r_tau0_channel3_interrupt(void) { static uint8_t led_state 0; if (led_state 0) { P7.7 0; // 假设低电平点亮LED led_state 1; } else { P7.7 1; // 高电平熄灭LED led_state 0; } // 非常重要清除中断标志位 TMIF03 0U; }这里有一个至关重要的细节必须在中断服务程序结束前手动清除该通道的中断请求标志位这里是TMIF03。如果不清除MCU会认为中断一直存在导致连续不断地进入中断程序逻辑会混乱甚至可能造成系统瘫痪。这是新手最容易忽略的一点。防抖考虑由于我们使用的是机械开关在触点闭合或断开的瞬间会产生一系列抖动的边沿这可能导致一次按键被误判为多次事件。一个简单的软件防抖方法是在中断内进行延时判断但中断内应尽量避免长时间延时。更好的做法是在中断内只设置一个标志位然后在主循环中检测这个标志位并进行延时防抖和状态翻转。这体现了中断处理“快进快出”的原则。volatile uint8_t ext_event_flag 0; // 全局变量用于中断与主循环通信 #pragma interrupt (r_tau0_channel3_interrupt) void r_tau0_channel3_interrupt(void) { ext_event_flag 1; // 仅设置标志 TMIF03 0U; // 清除中断标志 } void main(void) { // 系统初始化 while(1) { if (ext_event_flag) { // 简单延时防抖约10ms delay_ms(10); // 再次检查引脚状态确认是稳定的低电平下降沿后 if (P3.1 0) { // 翻转LED P7.7 !P7.7; } ext_event_flag 0; // 清除标志 } // 其他主循环任务 } }3.4 主程序框架与初始化顺序一个稳健的主程序需要有清晰的初始化顺序void main(void) { /* 1. 系统时钟初始化由工具生成或手动配置*/ SYSTEM_Init(); /* 2. 端口初始化配置P77为输出P31为输入TAU功能会覆盖部分设置但先配置好*/ PORT_Init(); /* 3. 定时器TAU通道3初始化 */ R_TAU0_Channel3_Create(); /* 4. 全局中断使能 */ EI(); // 或使用 __enable_interrupt() 内联函数 /* 5. 主循环 */ while (1) { // 如果采用标志位法在这里处理事件和LED翻转 // 也可以空循环完全由中断驱动 nop(); } }初始化顺序心得一定要先配置外设如端口、定时器最后再打开全局中断。如果顺序反了在配置过程中可能产生不可预知的中断导致程序跑飞。此外端口初始化时建议将未使用的引脚设置为输出低电平或带上拉电阻的输入以降低功耗和增强抗干扰性。4. 调试技巧与常见问题排查即使代码看起来正确第一次烧录也常常不能如愿工作。下面是我在调试过程中总结的一些排查思路和技巧。4.1 硬件连接检查这是第一步也是最容易出错的一步。LED不亮/常亮用万用表测量P77引脚在程序运行时的电压。当试图翻转LED时电压是否在0V和VCC之间变化如果没有检查端口配置是否正确输出模式检查LED限流电阻是否接好检查LED本身是否损坏。按键无反应用示波器或者逻辑分析仪探头连接到P31引脚。手动按下按键观察波形是否是一个干净的从高电平到低电平的下降沿是否存在严重的抖动或毛刺按键电路的上拉电阻是否接好如果使用杜邦线模拟接触是否良好4.2 软件调试手段仿真调试e² studio配合调试器如E2 Lite可以进行在线仿真。这是最强大的调试工具。设置断点在中断服务程序的第一行设置断点。按下按键看程序是否能停在断点处。如果不能说明中断根本没有被触发。寄存器查看在调试视图中查看TAU相关寄存器TMR03, TDR03, TMIF03等的值是否与你的配置一致TMIF03标志位在按键后是否被置1变量监视监视ext_event_flag这类全局变量看中断是否成功修改了它。“LED法”调试在没有调试器的情况下这是最朴素的调试方法。在主循环中让另一个LED以固定频率闪烁证明程序在跑。在中断服务程序里加入一个短暂的操作比如快速翻转另一个测试LED这样当按键时如果测试LED有反应至少证明中断能进去。这可以帮助你区分是“中断没触发”还是“中断里的逻辑有问题”。4.3 常见问题速查表现象可能原因排查方法按键后无任何反应1. 中断未使能全局或局部2. 定时器通道未启动3. 引脚功能配置错误非TI034. 有效边沿设置错误非下降沿5. 硬件连接问题按键、上拉1. 检查EI()和TMMK寄存器2. 检查TT寄存器或TAU0EN3. 检查P31的PM/PF寄存器4. 检查TMR03中的EG位5. 用万用表/示波器测波形LED状态不翻转1. 中断服务程序中未清除中断标志2. LED控制引脚配置错误非输出3. LED驱动逻辑反了高/低电平有效4. 防抖逻辑过于严格或错误1. 检查ISR中是否有TMIF0302. 检查P77的PM寄存器3. 对照原理图修改输出电平4. 简化防抖先去掉延时判断按键一次LED快速闪烁多次1. 机械按键抖动2. 中断标志清除位置不对过早被其他操作置位3. TDR03值设置过大非单次事件中断1. 增加软件防抖2. 确保只在ISR末尾清除标志3. 检查TDR03是否设置为1程序运行不稳定偶尔跑飞1. 中断服务程序执行时间过长2. 栈空间不足3. 未初始化的变量或指针1. 优化ISR代码仅做标志设置2. 在链接脚本中增加栈大小3. 检查编译器警告确保变量初始化4.4 进阶优化与思考当基础功能实现后可以考虑以下优化低功耗设计在等待外部事件的空闲时段可以让MCU进入休眠模式STOP或HALT。TAU的外部事件计数器模式可以配置成将MCU从休眠中唤醒的中断源这对于电池供电设备至关重要。事件频率测量稍微修改代码利用TAU的捕获功能或者结合另一个定时器可以测量外部事件的脉冲宽度或频率。多通道协作如果需要更复杂的定时或脉冲序列可以研究如何让TAU的多个通道协同工作例如用一个通道的输出作为另一个通道的时钟输入。通过这个简单的项目我们不仅实现了功能更深入理解了RL78/G13定时器的工作机制、中断系统的使用以及嵌入式开发中“配置-调试-优化”的完整流程。记住阅读数据手册永远是第一位的工具只是辅助。亲手配置一遍寄存器比完全依赖代码生成器能让你在遇到问题时更有解决的底气。

相关文章:

RL78/G13单片机定时器外部事件捕获与中断控制LED实践

1. 项目概述与核心思路最近在折腾瑞萨的RL78/G13系列单片机,手头正好有块开发板,就想用它来实现一个基础的定时器功能。这听起来是个老生常谈的话题,但实际动手时,你会发现从选型、配置到调试,每一步都有不少细节值得琢…...

深入解析瑞芯微RK3399/RK3288平台ISP驱动:从V4L2框架到Camera Sensor联动

1. 项目概述 在嵌入式Linux开发,特别是涉及多媒体处理的项目中,图像信号处理器(ISP)驱动的理解往往是打通摄像头应用链路的关键一环,也是很多开发者感觉“黑盒”最多的地方。最近在调试基于瑞芯微RK3399和RK3288平台的…...

手把手教你为AK7739音频芯片移植TDM接口(基于Linux ALSA框架)

手把手教你为AK7739音频芯片移植TDM接口(基于Linux ALSA框架) 在嵌入式音频系统开发中,TDM(Time Division Multiplexing)接口因其高带宽和多通道支持能力,成为专业音频设备的首选方案。AK7739作为一款高性能…...

手持设备串口屏应用指南:从架构解析到实战开发

1. 项目概述:为什么手持设备需要一块“聪明”的屏幕?在手持设备这个领域摸爬滚打了十几年,从早期的黑白点阵屏到后来的TFT彩屏,再到如今各种智能交互界面,我深刻感受到一个趋势:设备越来越“聪明”&#xf…...

从‘桥接模式’到‘Pimpl惯用法’:一个被C++编译器逼出来的设计智慧

从‘桥接模式’到‘Pimpl惯用法’:一个被C编译器逼出来的设计智慧 在面向对象编程的演进历程中,设计模式往往是对语言缺陷的优雅补偿。当Java和C#开发者享受着接口天然的"编译防火墙"时,C社区却不得不发明Pimpl这种看似笨拙实则精妙…...

CTP接口实战:从零构建量化交易系统(附完整源码)

1. CTP接口入门:量化交易的第一块基石 第一次接触CTP接口时,我盯着那堆C代码发呆了半小时——这玩意儿比我想象的复杂多了。后来才发现,其实把它理解成期货市场的普通话就简单了。就像我们用普通话跟人交流,程序用CTP接口跟期货交…...

用FM收音机也能玩双声道?手把手教你复刻电赛G题双路语音同传系统(48.5MHz频点)

用FM收音机玩转双声道:48.5MHz双路语音同传系统实战指南 在电子设计竞赛中,双路语音同传系统一直是考验学生综合能力的经典题型。但你知道吗?这套看似专业的无线收发系统,其实可以用身边最常见的FM收音机来验证和体验。本文将带你…...

从逻辑门到加法器:Verilog实现半加器与全加器的三种抽象层级

1. 项目概述:从逻辑门到加法器的数字世界基石在数字电路和芯片设计的入门路上,加法器是一个绕不开的经典课题。它不仅是算术逻辑单元(ALU)的核心组件,更是理解数字系统如何执行基本运算的关键。今天,我们不…...

ElevenLabs情绪模拟技术落地倒计时:欧盟AI法案生效前最后72小时,必须完成的5项情感输出审计项

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs情绪模拟技术落地倒计时:欧盟AI法案生效前最后72小时,必须完成的5项情感输出审计项 情绪向量合规性校验 欧盟《AI法案》附件III明确将“高风险情感交互系统”纳入严格…...

GPT-Image 2 视觉模型的逻辑跃迁:涌现还是幻觉?

GPT-Image 2 的“涌现能力”:视觉模型是否也会发生“逻辑跃迁”?(2026 深度观察与验证思路) 过去很长一段时间,大家谈“涌现(emergent)能力”,更偏向自然语言模型:从文本…...

ssh 使用问题汇总

本文深入探讨SSH连接失败、密钥管理、权限设置等常见难题,并提供详细的解决方案。通过本文,您将能够轻松应对SSH使用过程中遇到的各类问题,提升SSH操作效率,保障远程连接的安全性。 1. Connection reset by peer 现象 ssh到ser…...

Chrome QRCode插件终极指南:如何在3分钟内实现跨设备无缝内容同步

Chrome QRCode插件终极指南:如何在3分钟内实现跨设备无缝内容同步 【免费下载链接】chrome-qrcode :zap: A Chrome plugin to Genrate QRCode of URL / Text, or Decode the QRcode in website. 一个Chrome浏览器插件,用于生成当前URL或者选中内容的二维…...

Linux 下用火焰图进行性能分析

软件的性能分析,往往需要查看 CPU 耗时,了解瓶颈在哪里。火焰图 (flame graph) 是性能分析的利器。 1. 火焰图简介 很多人感冒发烧的时候,往往会模仿神农氏尝百草的路子:先尝尝抗病毒的药,再试试抗细菌的药&#xff…...

终极英雄联盟换肤工具:R3nzSkin国服特供版完整使用教程

终极英雄联盟换肤工具:R3nzSkin国服特供版完整使用教程 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 想要在英雄联盟国服免费体验所有皮肤…...

STM32移植U8g2库驱动OLED:源码精简与硬件适配实战

1. 项目概述与核心思路之前玩ESP8266的时候,在Arduino环境下用U8g2库驱动OLED,画点线面、显示文字,确实方便。但很多实际项目,尤其是对成本、功耗有要求的,还是绕不开STM32这类更纯粹的MCU。最近有个小项目&#xff0c…...

终极指南:erd实体关系图生成器的社区生态与开源贡献全解析

终极指南:erd实体关系图生成器的社区生态与开源贡献全解析 【免费下载链接】erd Translates a plain text description of a relational database schema to a graphical entity-relationship diagram. 项目地址: https://gitcode.com/gh_mirrors/er/erd 你是…...

ME6206A 系列低压差线性稳压器

概述ME6206A 系列是高精度、低功耗、采用 CMOS 技 术制造的正电压稳压器。这些器件提供大电流,具有显 著的小电压差。 该系列与低 ESR 陶瓷电容器兼容,限流器的折返 电路也作为短路保护输出电流限制器和输出引脚。性能特点高精度输出电压:1%输…...

Taotoken Token Plan套餐在实际开发中的成本控制体感

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken Token Plan套餐在实际开发中的成本控制体感 1. 套餐选择与预算锚定 在项目开发初期,团队或个人开发者面临的…...

Rust异步任务取消机制:从协作式取消到结构化并发实践

1. 项目概述:当异步任务“半途而废”时在Rust的异步编程世界里,我们常常专注于如何让任务“跑起来”——用async/await优雅地处理并发,用Future描述计算,用tokio或async-std这样的运行时来驱动一切。代码逻辑清晰,从A点…...

2026年实测推荐:10款思维导图工具,开发者效率翻倍

作为技术博主,我常年用思维导图拆解需求、梳理架构、记录学习笔记。2026年,工具们卷出了新高度:AI辅助、白板一体化、实时协作成了标配。本文从开发者视角出发,实测了10款热门工具,帮你选出最适合的那把“瑞士军刀”。…...

GetQzonehistory终极指南:三步快速备份QQ空间全部历史说说

GetQzonehistory终极指南:三步快速备份QQ空间全部历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆时代,QQ空间承载了无数用户的青春回忆和成长…...

高速PCB设计中串扰的成因、影响与实战控制策略

1. 项目概述:高速硬件设计中的“隐形杀手”干了十几年硬件设计,从当年画双面板、用万用表调通就行的年代,一路做到现在动辄几十层、信号速率奔着几十Gbps去的复杂系统,感触最深的一点就是:很多问题,以前可以…...

pgwatch2监控指标详解:从基础性能到高级洞察

pgwatch2监控指标详解:从基础性能到高级洞察 【免费下载链接】pgwatch2 PostgreSQL metrics monitor/dashboard 项目地址: https://gitcode.com/gh_mirrors/pg/pgwatch2 pgwatch2是一款功能强大的PostgreSQL metrics monitor/dashboard工具,它能够…...

GO Feature Flag通知系统详解:Slack、Webhook实时告警

GO Feature Flag通知系统详解:Slack、Webhook实时告警 【免费下载链接】go-feature-flag GO Feature Flag is a simple, complete and lightweight self-hosted cloud native feature flag solution 100% Open Source. 🎛️ 项目地址: https://gitcode…...

你的参考文献规范吗?IEEE/Elsevier投稿前必查:LaTeX引用Early Access文章的正确姿势与避坑指南

IEEE/Elsevier投稿实战:LaTeX引用Early Access文献的终极解决方案 在学术出版的快节奏世界里,Early Access(提前在线发布)已成为主流期刊加速知识传播的重要方式。当你在深夜赶完论文最后一稿,突然发现参考文献列表里…...

用HSPICE玩转CMOS反相器:手把手教你分析尺寸、延迟与功耗的权衡

用HSPICE玩转CMOS反相器:手把手教你分析尺寸、延迟与功耗的权衡 在集成电路设计的浩瀚宇宙中,CMOS反相器就像是一颗不起眼却至关重要的基础星体。作为数字电路中最简单的构建模块,它的性能表现直接影响着整个系统的运行效率。对于已经掌握HS…...

终极M3U8视频下载神器:3步搞定加密流媒体!

终极M3U8视频下载神器:3步搞定加密流媒体! 【免费下载链接】m3u8-downloader 一个M3U8 视频下载(M3U8 downloader)工具。跨平台: 提供windows、linux、mac三大平台可执行文件,方便直接使用。 项目地址: https://gitcode.com/gh_mirrors/m3u8d/m3u8-do…...

StarRocks BE启动失败?别急着查网络,先看看你的CPU是不是AVX2指令集

StarRocks BE启动失败?可能是你的CPU在拖后腿 当你兴冲冲地准备部署StarRocks,却发现BE进程像幽灵一样启动即消失,日志文件也神秘失踪,这种挫败感我深有体会。大多数人的第一反应是检查网络配置或服务端口,但今天我要带…...

编程学习时怎么更好归纳自己的笔记

学了一个月,回头翻笔记,发现根本看不懂自己写了什么。 记了满满一本,真要查某个知识点时,翻来翻去找不到。 明明记过,用的时候大脑一片空白。这是不是你?笔记不是记过就算,而是要用得上。本文从…...

如何用Python在5分钟内自动解析简历关键信息?PyResParser终极指南

如何用Python在5分钟内自动解析简历关键信息?PyResParser终极指南 【免费下载链接】pyresparser A simple resume parser used for extracting information from resumes 项目地址: https://gitcode.com/gh_mirrors/py/pyresparser 在招聘高峰期,…...