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

GD32E230 RTC报警中断功能使用

GD32E230 RTC报警中断使用


  • GD32E230 RTC时钟源有3个,一个是内部RC振动器产生的40KHz作为时钟源,或者是有外部32768Hz晶振.,或者外部高速时钟晶振分频作为时钟源。

在这里插入图片描述

  • 🔖个人认为最难理解难点的就是有关RTC时钟异步预分频和同步预分频的计算。在对应的用户手册上仅仅潦草一段说明就没有了,这里参考别人有关stm32 相同外设功能的介绍借鉴学习。《STM32如何计算RTC时钟异步预分频和同步预分频》
  • 📑预分频寄存器 (RTC_PSC)
    在这里插入图片描述

  • 🌿EmbeddedBuilder参数配置填写:
    在这里插入图片描述

/* structure for initialization of the RTC */
typedef struct
{uint8_t rtc_year;                                                       /*!< RTC year value: 0x0 - 0x99(BCD format) */hal_rtc_month_enum rtc_month;                                           /*!< RTC month value */uint8_t rtc_date;                                                       /*!< RTC date value: 0x1 - 0x31(BCD format) */hal_rtc_day_of_week_enum rtc_day_of_week;                               /*!< RTC weekday value */uint8_t rtc_hour;                                                       /*!< RTC hour value */uint8_t rtc_minute;                                                     /*!< RTC minute value: 0x0 - 0x59(BCD format) */uint8_t rtc_second;                                                     /*!< RTC second value: 0x0 - 0x59(BCD format) */uint16_t rtc_subsecond;                                                 /*!< RTC subsecond value: 0x0 - 0xFFFF */    uint16_t rtc_factor_asyn;      /*!< RTC asynchronous prescaler value: 0x0 - 0x7F */uint16_t rtc_factor_syn;        /*!< RTC synchronous prescaler value: 0x0 - 0x7FFF */uint32_t rtc_am_pm;                                                     /*!< RTC AM/PM value */uint32_t rtc_display_format;                                            /*!< RTC time notation */
}hal_rtc_init_struct;
  • 🥕参考前面的文章内容,计算方法给出的例程:

若想实现普通计数功能,例如使用频率为 32.768 kHz 的 LSE 获得频率为 1 Hz 的内部时钟 (ck_spre),为了最大程度降低功耗,PREDIV_A=127,则(f ck_spre)
同步预分频=32768Hz/(PREDIV_S+1)x(127+1),
1Hz=32768Hz/(PREDIV_S+1)x(127+1),
计算得,PREDIV_S=255。

  • 🌿如果使用外部32768Hz晶振作为时钟源配置:
.rtc_factor_asyn = 0x7F;// 异步预分频系数
.rtc_factor_syn = 0xff;   //同步预分频系数
  • 🌿如果使用外部40KHz晶振作为时钟源配置:
.rtc_factor_asyn = 0x7f;.rtc_factor_syn = 0x137;//40000//(PREDIV_S+1)x(127+1)
  • ✨如果使用EmbeddedBuilder软件自动配置IRC40K时钟源,生成的代码,

📙使用外部32768晶振硬件电路参考

  • 电路
    在这里插入图片描述
  • 🌿负载电容参数选择参考:
    在这里插入图片描述

🎉贴出来,主要是因为在个人设计的板子上,焊接的12pf电容起振困难,不走时,后面换成了6.8pf才正常走时。

  • 🌿硬件布局参考:
    在这里插入图片描述

📗RTC时间参数数据类型说明

  • 🌿有关结构体:
/* structure for initialization of the RTC */
typedef struct
{uint8_t rtc_year;                                                       /*!< RTC year value: 0x0 - 0x99(BCD format) */hal_rtc_month_enum rtc_month;                                           /*!< RTC month value */uint8_t rtc_date;                                                       /*!< RTC date value: 0x1 - 0x31(BCD format) */hal_rtc_day_of_week_enum rtc_day_of_week;                               /*!< RTC weekday value */uint8_t rtc_hour;                                                       /*!< RTC hour value */uint8_t rtc_minute;                                                     /*!< RTC minute value: 0x0 - 0x59(BCD format) */uint8_t rtc_second;                                                     /*!< RTC second value: 0x0 - 0x59(BCD format) */uint16_t rtc_subsecond;                                                 /*!< RTC subsecond value: 0x0 - 0xFFFF */    uint16_t rtc_factor_asyn;                                               /*!< RTC asynchronous prescaler value: 0x0 - 0x7F */uint16_t rtc_factor_syn;                                                /*!< RTC synchronous prescaler value: 0x0 - 0x7FFF */uint32_t rtc_am_pm;                                                     /*!< RTC AM/PM value */uint32_t rtc_display_format;                                            /*!< RTC time notation */
}hal_rtc_init_struct;/* structure for RTC alarm configuration */
typedef struct
{uint32_t rtc_alarm_mask;                                                /*!< RTC alarm mask */   uint32_t rtc_weekday_or_date;                                           /*!< specify RTC alarm is on date or weekday */uint8_t rtc_alarm_day;                                                  /*!< RTC alarm date or weekday value*/uint8_t rtc_alarm_hour;                                                 /*!< RTC alarm hour value */uint8_t rtc_alarm_minute;                                               /*!< RTC alarm minute value: 0x0 - 0x59(BCD format) */uint8_t rtc_alarm_second;                                               /*!< RTC alarm second value: 0x0 - 0x59(BCD format) */uint32_t rtc_alarm_subsecond;                                           /*!< RTC alarm subsecond value: (0x000 - 0x7FFF) */    uint32_t rtc_alarm_subsecond_mask;                                      /*!< RTC alarm subsecond mask */ uint32_t rtc_am_pm;                                                     /*!< RTC alarm AM/PM value */
}hal_rtc_alarm_struct;/* structure for RTC time-stamp configuration */
typedef struct
{uint8_t rtc_timestamp_month;                                            /*!< RTC time-stamp month value */uint8_t rtc_timestamp_date;                                             /*!< RTC time-stamp date value: 0x1 - 0x31(BCD format) */uint8_t rtc_timestamp_day;                                              /*!< RTC time-stamp weekday value */uint8_t rtc_timestamp_hour;                                             /*!< RTC time-stamp hour value */uint8_t rtc_timestamp_minute;                                           /*!< RTC time-stamp minute value: 0x0 - 0x59(BCD format) */uint8_t rtc_timestamp_second;                                           /*!< RTC time-stamp second value: 0x0 - 0x59(BCD format) */uint32_t rtc_timestamp_subsecond;                                       /*!< RTC time-stamp subsecond value: 0x0 - 0xFFFF */    uint32_t rtc_am_pm;                                                     /*!< RTC time-stamp AM/PM value */
}hal_rtc_timestamp_struct;
  • 🌟注意相关注释,有些参数是BCD编码。其中为BCD格式,其余为BIN格式。
  • 🌿有关BCD码转BIN码网上随便一搜即可获得:
// 将BCD格式转换为BIN格式
uint8_t bcd_to_bin(uint8_t bcd_value) {uint8_t tens = bcd_value >> 4;uint8_t ones = bcd_value & 0x0F;return (tens * 10) + ones;
}// 将BIN格式转换为BCD格式
uint8_t bin_to_bcd(uint8_t bin_value) {uint8_t tens = bin_value / 10;uint8_t ones = bin_value % 10;return (tens << 4) | ones;
}
  • 🌿RTC初始化配置代码:
void msd_rtc_init(void)
{/* user code [rtc_init local 0] begin *//* user code [rtc_init local 0] end */hal_rtc_init_struct rtc_init_parameter;hal_rtc_alarm_struct rtc_alarm_parameter;/* enable the RTC */// rcu_periph_clock_enable(RCU_RTC);// hal_rcu_periph_clk_enable(RCU_RTC);//   rcu_periph_clock_enable(RCU_PMU);  //使能PMU电源管理单元时钟//  pmu_backup_write_enable();  //使能电源备份源,RTC需要此备份域if (ENABLE_LXTAL){rcu_osci_on(RCU_LXTAL);rcu_osci_stab_wait(RCU_LXTAL);rcu_rtc_clock_config(RCU_RTCSRC_LXTAL); // 配置RTC时钟源}else{/* enable the IRC40K oscillator */rcu_osci_on(RCU_IRC40K);/* wait till IRC40K is ready */rcu_osci_stab_wait(RCU_IRC40K);/* select the RTC clock source */rcu_rtc_clock_config(RCU_RTCSRC_IRC40K); // 配置RTC时钟源}rcu_periph_clock_enable(RCU_RTC);rtc_register_sync_wait();hal_rtc_struct_init(HAL_RTC_INIT_STRUCT, &rtc_init_parameter);hal_rtc_struct_init(HAL_RTC_ALARM_STRUCT, &rtc_alarm_parameter);hal_rtc_deinit();if (ENABLE_LXTAL){rtc_init_parameter.rtc_factor_asyn = 0x7F;// 高位分频rtc_init_parameter.rtc_factor_syn = 0xff;   //低位分频}else{rtc_init_parameter.rtc_factor_asyn = 0x7f;rtc_init_parameter.rtc_factor_syn = 0x137;}rtc_init_parameter.rtc_display_format = HAL_RTC_24HOUR;rtc_init_parameter.rtc_year = 0x24;//BCD formatrtc_init_parameter.rtc_month = HAL_RTC_SEP;rtc_init_parameter.rtc_date = 0x7; //BCD formatrtc_init_parameter.rtc_day_of_week = HAL_RTC_SATURDAY;rtc_init_parameter.rtc_hour = 10;rtc_init_parameter.rtc_minute = 0x30;//BCD formatrtc_init_parameter.rtc_second = 0x0; //BCD formathal_rtc_init(&rtc_init_parameter);hal_rtc_daylight_saving_time_adjust(HAL_RTC_DAYLIGHTSAVING_NONE, HAL_RTC_RECORD_DAYLIGHTSAVING_RESET);rtc_alarm_parameter.rtc_alarm_mask = HAL_RTC_ALARM_DATE_MASK | HAL_RTC_ALARM_HOUR_MASK | HAL_RTC_ALARM_MINUTE_MASK;rtc_alarm_parameter.rtc_weekday_or_date = HAL_RTC_ALARM_DATE_SELECTED;rtc_alarm_parameter.rtc_alarm_day = 0x7;rtc_alarm_parameter.rtc_alarm_hour = 10;rtc_alarm_parameter.rtc_alarm_minute = 0x30;rtc_alarm_parameter.rtc_alarm_second = 0x09;rtc_alarm_parameter.rtc_alarm_subsecond = 0x0;rtc_alarm_parameter.rtc_alarm_subsecond_mask = HAL_RTC_MASK_SUBSECOND;hal_rtc_alarm_config(&rtc_alarm_parameter);hal_nvic_periph_irq_enable(RTC_IRQn, 1);/* user code [rtc_init local 1] begin */rtc_interrupt_enable(RTC_INT_ALARM);//使能RTC中断rtc_alarm_enable();//使能RTC报警中断/* user code [rtc_init local 1] end */
}
  • 🌿RTC初始化之后就是对中断回调函数进行补充:
volatile uint8_t RTC_ALRM_FLAG = 0; //闹钟标志位
hal_rtc_irq_struct rtc_irq;void RTC_ALRM_Callback(void)//报警中断回调任务,不是RTC中断执行的任务。
{printf("RTC alarm Task\n\r");
}
......rtc_irq.alarm_handle = RTC_ALRM_Callback;hal_rtc_irq_handle_set(&rtc_irq);
  • 🌿RTC中断函数
void RTC_IRQHandler(void)
{/* user code [RTC_IRQn local 0] begin *//* user code [RTC_IRQn local 0] end */hal_rtc_irq();
//   if(RESET != rtc_flag_get(RTC_STAT_ALRM0F)){
//        rtc_flag_clear(RTC_STAT_ALRM0F);
//        exti_flag_clear(EXTI_17);
//         gpio_bit_toggle(GPIOC, GPIO_PIN_13);
//    }/* user code [RTC_IRQn local 1] begin */RTC_ALRM_FLAG =1;gpio_bit_toggle(GPIOC, GPIO_PIN_13);/* user code [RTC_IRQn local 1] end */
}
  • 🔖每分钟中断一次打印:
    在这里插入图片描述

在这里插入图片描述

  • 🌟需要注意:在使用RTC报警中断时,也是会触发RTC中断,报警中断需要执行的任务函数可以通过下面来传递执行:(具体书写看上面贴出的完整代码)
    rtc_irq.alarm_handle = RTC_ALRM_Callback;//传递任务句柄hal_rtc_irq_handle_set(&rtc_irq);

在这里插入图片描述

也可以报警中断需要执行的任务放在RTC中断函数中调用或者置标记位。

void RTC_IRQHandler(void)
{/* user code [RTC_IRQn local 0] begin *//* user code [RTC_IRQn local 0] end */hal_rtc_irq();
//   if(RESET != rtc_flag_get(RTC_STAT_ALRM0F)){//判断报警类型
//        rtc_flag_clear(RTC_STAT_ALRM0F);
//        exti_flag_clear(EXTI_17);
//         gpio_bit_toggle(GPIOC, GPIO_PIN_13);
//    }/* user code [RTC_IRQn local 1] begin */RTC_ALRM_FLAG =1;gpio_bit_toggle(GPIOC, GPIO_PIN_13);/* user code [RTC_IRQn local 1] end */
}
  • 🌿配置时间打印函数:
/*!
\brief      display the current time
\param[in]  none
\param[out] none
\retval     none
*/
void rtc_show_time(void)
{hal_rtc_init_struct rtc_init;uint32_t time_subsecond = 0;uint8_t subsecond_ss = 0;hal_rtc_current_time_get(&rtc_init);/* convert the subsecond value into fractional format */time_subsecond = rtc_init.rtc_subsecond;subsecond_ss = (1000 - (time_subsecond * 1000 + 1000) / 400) / 100;// subsecond_ts = (1000 - (time_subsecond * 1000 + 1000) / 400) % 100 / 10;// subsecond_hs = (1000 - (time_subsecond * 1000 + 1000) / 400) % 10;printf("Current Date: 20%0.2d-%0.2d-%0.2d T:%0.1d \n\r", \bcd_to_bin(rtc_init.rtc_year), rtc_init.rtc_month, bcd_to_bin(rtc_init.rtc_date), rtc_init.rtc_day_of_week);printf("Current Time: %0.2d:%0.2d:%0.2d.%d \n\r", \rtc_init.rtc_hour, bcd_to_bin(rtc_init.rtc_minute), bcd_to_bin(rtc_init.rtc_second), \subsecond_ss);
}

-🌿 测试代码在《GD32E230程序烧录和开发环境使用介绍》文中。

相关文章:

GD32E230 RTC报警中断功能使用

GD32E230 RTC报警中断使用 GD32E230 RTC时钟源有3个&#xff0c;一个是内部RC振动器产生的40KHz作为时钟源&#xff0c;或者是有外部32768Hz晶振.,或者外部高速时钟晶振分频作为时钟源。 &#x1f516;个人认为最难理解难点的就是有关RTC时钟异步预分频和同步预分频的计算。在对…...

C/C++语言基础--从C到C++的不同(上)

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 之前更新的C语言&#xff0c;感谢大家的点赞收藏关注&#xff0c;接下来我们逐步也开始更新C&#xff1b;C语言后面也会继续更新知识点&#xff0c;如内联汇编&#xff1b;本人现在正在写一个C语言的图书管理系…...

自动驾驶自动泊车场景应用总结

自动泊车技术是当前智能驾驶技术的一个重要分支,其目标是通过车辆自身的感知、决策和控制系统,实现车辆在有限空间内的自主泊车操作。目前自动泊车可分为半自动泊车、全自动泊车、记忆泊车、自主代客泊车四种产品形态,其中, 根据搭载传感器和使用场景的不同,全自动泊车又可…...

redis常见的数据类型?

参考&#xff1a;一文读懂Redis五种数据类型及应用场景 - 知乎 (zhihu.com) String 类型 String 类型&#xff1a;Redis 最基本的数据类型&#xff0c;它是二进制安全的&#xff0c;意味着你可以用它来存储任何类型的数据&#xff0c;如图片、序列化对象等。使用场景&#xff…...

TCP Analysis Flags 之 TCP ZeroWindow

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…...

[产品管理-16]:NPDP新产品开发 - 14 - 产品创新流程 - 产品创新流程模型比较:门径、IPD、精益生产、敏捷、系统工程、设计思维、精益创业

目录 一、精益开发与敏捷开发的比较 1、核心理念 2、实践方式 3、应用场景 4、总结 二、门径流程 VS 敏捷方法 1、定义与特点 门径管理流程 敏捷方法 2、应用场景 3、比较 4、总结 三、集成产品开发 VS 系统工程 VS 设计思维 1、集成产品开发&#xff08;IPD&…...

postgresql 导出CSV格式数据

方法一 psql -c 导出 导出的文件存放在执行psql的客户端。 psql -h 127.0.0.1 -p 5432 -U postgres postgres -Atqc "select oid,relname,relnamespace from tmp_t0 " --csv -o /tmp/test.csv方法二 psql -f 导出 导出的文件存放在执行psql的客户端。 如果查询很长…...

【C++】STL--string(上)

前言 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用户自己管理&#xff0c;稍不留…...

【C++】Stack

个人主页~ Stack 一、Stack的介绍和使用1、stack的介绍2、stack的使用3、stack的模拟实现 二、容器适配器1、什么是适配器2、容器适配器的使用 三、deque1、原理介绍2、deque的使用3、deque的缺陷 一、Stack的介绍和使用 1、stack的介绍 stack详细解释 stack是一种容器适配器…...

“药乡”怀化,按下产业向海“加速键”

怀化&#xff0c;这座被火车拖来的城市&#xff0c;拥有什么独特的产业优势吗&#xff1f; 很多人不知道的是&#xff0c;怀化在整个医药领域可是大名鼎鼎的“中国道地药材之乡”&#xff0c;中药材资源蕴藏量居湖南省第一。尤其是怀化靖州&#xff0c;这里年集散茯苓11万吨&a…...

【AWDP】 AWDP 赛制详解应对方法赛题实践 量大管饱

文章首发于【先知社区】&#xff1a;https://xz.aliyun.com/t/15535 一、AWDP概述 AWDP是什么 AWDP是一种综合考核参赛团队攻击、防御技术能力、即时策略的攻防兼备比赛模式。每个参赛队互为攻击方和防守方&#xff0c;充分体现比赛的实战性、实时性和对抗性&#xff0c;对参…...

读构建可扩展分布式系统:方法与实践05分布式缓存

1. 分布式缓存 1.1. 缓存存在于应用程序的许多地方 1.1.1. 行应用程序的CPU具有高速多级硬件缓存&#xff0c;可以减少相对较慢的主内存访问 1.1.2. 数据库引擎可以利用主内存来缓存数据存储的内容&#xff0c;这样在许多情况下查询就可以不用访问速度相对较慢的磁盘 1.2. …...

【逐行注释】自适应Q和R的AUKF(自适应无迹卡尔曼滤波),附下载链接

文章目录 自适应Q的KF逐行注释的说明运行结果部分代码各模块解释 自适应Q的KF 自适应无迹卡尔曼滤波&#xff08;Adaptive Unscented Kalman Filter&#xff0c;AUKF&#xff09;是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波&#xff08;Unscented Kalman Filter&am…...

OpenCV高阶操作

在图像处理与计算机视觉领域&#xff0c;OpenCV&#xff08;Open Source Computer Vision Library&#xff09;无疑是最为强大且广泛使用的工具之一。从基础的图像读取、 1.图片的上下&#xff0c;采样 下采样&#xff08;Downsampling&#xff09; 下采样通常用于减小图像的…...

Vue中的防抖和节流是什么,它们的作用是什么?

在Vue.js中&#xff0c;防抖&#xff08;debounce&#xff09;和节流&#xff08;throttle&#xff09;是两种常用的性能优化技术&#xff0c;主要用于处理高频事件&#xff0c;如窗口滚动、窗口大小调整、键盘输入等。 **防抖&#xff08;Debounce&#xff09;**&#xff1a;…...

C++的类与对象中(主讲默认成员函数)

目录 1.类的默认成员函数 2.构造函数 1.全缺省构造函数 2.第7点中的对自定义类型的成员变量构造&#xff08;调用编译器自动生成的默认构造函数&#xff09; 3.析构函数 4.拷贝构造函数 5.运算符重载 1.概念 2.赋值运算符重载 6.const成员函数 1.类的默认成员函数 默…...

C#学习系列之Gmap地图界面上的实时绘制问题

C#学习系列之Gmap地图界面上的实时绘制问题 前言总结 前言 在地图控件上增加绘制不规则图形&#xff0c;在之前的经验来看&#xff0c; System.InvalidOperationException:“无法使用 DependencyObject&#xff0c;它属于其父 Freezable 之外的其他线程。” 其实就是ui线程中…...

Spring Boot中实现定时任务的主要方式

文章目录 在Spring Boot中实现定时任务&#xff0c;主要有以下几种方式&#xff1a;1. 使用Scheduled注解2. 使用Quartz调度器使用Quartz调度器(更好的做法)3. 使用TaskExecutor和ScheduledExecutorService4.总结 在Spring Boot中实现定时任务&#xff0c;主要有以下几种方式&a…...

C#使用HttpWebRequest下载文件

public static bool HttpDownloadFile(string downloadUrl, string localPath, log4net.ILog log) { bool bFlagDownloadFile false; //log.Debug("HttpDownloadFile--准备以HTTP的方式下载文件&#xff0c;url:[" downloadUrl &…...

Linux: virtual: qemu-kvm: top cpu usage的组成是否包含guest的使用?

文章目录 问题试验mpstat问题 最近看一个问题,看到一个虚拟机分配的cpu是:3-4,27-28 Cpus_allowed: 0000,18000018 Cpus_allowed_list: 3-4,27-28 使用top看qemu-kvm进程的cpu usage是:13.3%: [root@qrms6-host01 14278]# top -p 14278 top - 01:19:35 up 4 days...

扩展你的 RAG:基于 Rust 的 LanceDB 和 Candle 索引管道

原文&#xff1a;towardsdatascience.com/scale-up-your-rag-a-rust-powered-indexing-pipeline-with-lancedb-and-candle-cc681c6162e8?sourcecollection_archive---------2-----------------------#2024-07-11 构建大规模文档处理的高性能嵌入和索引系统 https://medium.co…...

低功耗设计必看:PrimeTime生成.lib文件时PG引脚的正确配置方法(附实例代码)

低功耗设计必看&#xff1a;PrimeTime生成.lib文件时PG引脚的正确配置方法&#xff08;附实例代码&#xff09; 在当今数字IC设计中&#xff0c;低功耗已成为与性能、面积同等重要的关键指标。电源管理架构的复杂性使得时序库中的电源地&#xff08;PG&#xff09;引脚信息变得…...

OpenClaw+Phi-3-vision低成本自动化:自部署多模态模型替代云服务

OpenClawPhi-3-vision低成本自动化&#xff1a;自部署多模态模型替代云服务 1. 为什么选择本地多模态模型 去年我接手了一个自动化内容处理的项目&#xff0c;需要频繁调用多模态API分析图片和文档。当看到第三个月的账单时&#xff0c;我意识到必须寻找替代方案——云服务按…...

哈夫曼编码实战:从电文压缩到代码实现(附完整Python示例)

哈夫曼编码实战&#xff1a;从电文压缩到代码实现&#xff08;附完整Python示例&#xff09; 在数据存储和传输领域&#xff0c;压缩算法始终扮演着关键角色。想象一下&#xff0c;当你需要处理数百万条日志记录&#xff0c;或是传输高分辨率医学影像时&#xff0c;未经压缩的原…...

ML.NET跨平台开发终极指南:machinelearning-samples Linux与macOS部署详解

ML.NET跨平台开发终极指南&#xff1a;machinelearning-samples Linux与macOS部署详解 【免费下载链接】machinelearning-samples Samples for ML.NET, an open source and cross-platform machine learning framework for .NET. 项目地址: https://gitcode.com/gh_mirrors/m…...

OpenClaw硬件监控方案:Qwen3.5-9B实时预警服务器异常状态

OpenClaw硬件监控方案&#xff1a;Qwen3.5-9B实时预警服务器异常状态 1. 为什么需要智能化的硬件监控&#xff1f; 去年夏天&#xff0c;我负责维护的一台GPU服务器突然宕机&#xff0c;导致训练任务中断。排查后发现是内存泄漏问题——但传统的监控系统只在内存耗尽时才发出…...

机械臂速成小指南(十九):圆弧轨迹平滑优化与MATLAB实践

1. 机械臂圆弧轨迹规划基础概念 机械臂的圆弧轨迹规划是工业自动化中的常见需求&#xff0c;比如在焊接、喷涂、装配等场景中&#xff0c;机械臂末端需要沿着圆弧路径运动。与直线轨迹相比&#xff0c;圆弧轨迹需要考虑更多的几何约束和运动连续性。 在实际应用中&#xff0c;圆…...

OpenClaw资源监控方案:Qwen3-14B镜像运行时显存优化技巧

OpenClaw资源监控方案&#xff1a;Qwen3-14B镜像运行时显存优化技巧 1. 问题背景与挑战 去年在尝试用OpenClaw对接本地部署的Qwen3-14B模型时&#xff0c;我遇到了一个典型问题&#xff1a;当连续处理多个复杂任务时&#xff0c;显存占用会逐渐累积&#xff0c;最终导致OOM崩…...

论文精读:突破大模型推理瓶颈:为什么“限制自信”反而能让 AI 更聪明?

论文下载地址&#xff1a;https://arxiv.org/pdf/2502.07154 随着 OpenAI o1 等推理模型的爆火&#xff0c;AI 行业正在经历一场深刻的范式转移&#xff1a;从单纯依赖“扩大训练规模&#xff08;Training-Time Scaling&#xff09;”&#xff0c;正式步入“扩大测试期计算&am…...

manga-image-translator:如何让图片中的文字跨越语言障碍?

manga-image-translator&#xff1a;如何让图片中的文字跨越语言障碍&#xff1f; 【免费下载链接】manga-image-translator Translate manga/image 一键翻译各类图片内文字 https://cotrans.touhou.ai/ (no longer working) 项目地址: https://gitcode.com/gh_mirrors/ma/ma…...