news 2026/7/28 7:21:23

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/7/25 2:57:50

开发中的测试知识—— 集成测试策略

背景问题: 需要对复杂功能进行集成测试。 方案思考: 使用端到端测试和组件集成测试相结合的策略。 具体实现: 端到端测试配置(Playwright): # 安装 Playwright npm install -D playwright/test npx playwri…

作者头像 李华
网站建设 2026/7/21 5:03:28

MATLAB分形维数计算:1D/2D/3D图形的盒维数实现

一、盒维数计算原理 盒维数(Box-counting dimension)通过统计覆盖分形对象所需不同尺寸的盒子数量,建立盒子尺寸与数量的幂律关系,其分形维数 D满足:其中 N(ϵ)N(ϵ)N(ϵ)为覆盖对象所需边长为 ϵϵϵ的盒子数量。二、…

作者头像 李华
网站建设 2026/7/19 9:40:05

基于STM32的智能家居安防系统

目录 STM32智能家居安防系统概述核心功能模块软件设计要点低功耗优化扩展功能典型硬件选型 源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! STM32智能家居安防系统概述 STM32系列微控制器因其高性能、低功耗和丰富的外设资源&#xff…

作者头像 李华
网站建设 2026/7/20 10:59:09

Python篇---提升Python代码性能

提升Python代码性能:从蜗牛到火箭的秘诀 一、一句话理解 提升代码性能 减少计算机的"工作量" 选择更快的"工具" 就像送外卖: ❌ 一次只送一单,来回跑10次(慢) ✅ 一次规划好路线&#xff0c…

作者头像 李华
网站建设 2026/7/14 12:23:26

Composition 英文单词学习

1️、基本信息 单词:composition 词性:名词 发音: 🇺🇸 /ˌkɑːm.pəˈzɪʃ.ən/🇬🇧 /ˌkɒm.pəˈzɪʃ.ən/ 词源: 来自拉丁语 componere(一起放置 → 组合、构成…

作者头像 李华
网站建设 2026/7/14 10:34:21

导师严选9个AI论文平台,自考学生轻松搞定毕业论文!

导师严选9个AI论文平台,自考学生轻松搞定毕业论文! AI 工具助力论文写作,高效又省心 在当前的学术环境中,越来越多的学生开始借助 AI 工具来辅助论文写作。尤其对于自考学生而言,时间紧张、资料繁杂、写作经验不足等问…

作者头像 李华