news 2026/5/1 10:16:38

FreeRtos中I2C操作过程中被任务切换或者中断打断会不会出问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FreeRtos中I2C操作过程中被任务切换或者中断打断会不会出问题

疑问:一直有个疑问就是一些外设的驱动需不需要加临界区,比如i2c,我要写操作,要操作片选,写寄存器地址,写入数据,再操作片选。不加的话在写的中间有别的中断打断导致时序会不会出问题

答:如果是使用 MCU 的硬件外设(无论是 I2C/SPI 还是 UART): 不需要关中断。 因为硬件控制器(Shift Register)独立于 CPU 工作。CPU 被中断打断,只会导致‘两个字节之间’的发送间隔变长,而不会破坏‘一个字节内部’的波形时序。如果是软件模拟 (Bit-Bang):
模拟 I2C/SPI (同步): 不需要关中断。 因为你手里攥着时钟线 (SCL),你停,从机就停,波形只是暂停,不会畸变。
模拟 UART / 1-Wire(异步/时序敏感): 必须关中断! 这些协议靠‘脉冲持续时间’来通信。中断会把脉冲意外拉长,直接导致解码错误。

所以这里我们可以知道,如果是带有时钟线的,比如I2C,SPI这种,只用经过时钟线的调节才能正常接收的,任务切换和中断对他们没有影响,无论硬件I2C还是模拟I2C,不需要去管

但是单线通信的那种,使用的使用必须关中断,必须停止任务切换或者提高任务等级,如果水平不够,尽量不要去使用单总线通信的模块

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 8:17:04

前端——单元测试实践

背景问题: 需要为 Vue3 Vite 项目编写单元测试。 方案思考: 使用 Vitest 作为测试框架,结合 vue/test-utils 进行组件测试。 具体实现: 安装测试依赖: # 安装 Vitest 和 Vue 测试工具 npm install -D vitest vue/test…

作者头像 李华
网站建设 2026/4/28 15:10:51

Vue 3 中的具名插槽仍然完全支持,Vue 2 的旧语法 Vue 3 中已废弃

Vue3中具名插槽的使用方式更加统一和简洁。新版本采用v-slot指令(简写为#)替代Vue2的slot和slot-scope属性,支持默认插槽、具名插槽和作用域插槽。子组件通过name属性定义插槽,父组件使用#插槽名语法插入内容。Vue3还增强了动态插…

作者头像 李华
网站建设 2026/4/30 12:47:43

Roots.ai团队推出GutenOCR:让AI既能读字又能精准定位

这项由Roots.ai团队开展的研究发表于2026年1月的arXiv预印本服务器,论文编号为arXiv:2601.14490v1。有兴趣深入了解技术细节的读者可以通过该编号查询完整论文。 当你用手机扫描一份文件时,是否曾经遇到过这样的困扰:软件能够识别出文字内容&…

作者头像 李华
网站建设 2026/5/1 10:59:31

Parameter Lab团队揭示:微调大模型如何意外引发“隐私坍塌“

当我们把大型语言模型比作一个刚入职的新员工时,微调就像是对其进行岗位培训。原本我们认为这种培训只会让AI变得更专业、更有用,就像教会新员工使用公司特定的软件或遵循特定的工作流程一样。然而,Parameter Lab、图宾根大学、达姆施塔特工业…

作者头像 李华
网站建设 2026/5/1 4:39:49

低分辨率图像目标检测性能验证:YOLOv8集成SPD-Conv的实战评测与优化

文章目录 SPD-Conv:革新低分辨率图像和小目标检测的新型CNN构建块完整教程 引言 1. SPD-Conv 技术背景与核心原理 1.1 传统CNN架构的局限性 1.2 SPD-Conv的设计理念 1.3 SPD-Conv的工作机制详解 步骤1:空间到深度(Space-to-Depth)转换 步骤2:非步长卷积处理 2. 环境配置与…

作者头像 李华
网站建设 2026/5/1 10:18:01

构建行星级AI系统:机器学习决策前沿

构建行星级AI系统:机器学习决策前沿 四月底,全球人工智能科学家齐聚线上,参加国际学习表征会议(ICLR)。该会议聚焦于人工智能、统计学和数据科学的进步,以及计算机视觉、计算生物学、语音识别、文本理解、游…

作者头像 李华