news 2026/5/2 19:28:33

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/4/30 22:07:31

基于STM32的智能宠物监控设计与实现

目录 STM32智能宠物监控系统概述硬件设计软件设计功能实现应用案例扩展方向 源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! STM32智能宠物监控系统概述 智能宠物监控系统基于STM32微控制器,结合传感器、摄像头、无线通信模…

作者头像 李华
网站建设 2026/4/22 23:13:42

救命神器2026最新!8款AI论文工具测评:继续教育写作全攻略

救命神器2026最新!8款AI论文工具测评:继续教育写作全攻略 2026年AI论文工具测评:为何值得一看? 随着人工智能技术的不断进步,AI论文工具已成为学术写作中不可或缺的辅助工具。对于继续教育领域的学习者和研究者来说&am…

作者头像 李华
网站建设 2026/4/29 0:41:39

跟我学C++中级篇——Lambda表达式的处理

一、Lambda表达式 Lambda表达式对于了解和应用C11以后的开发者来说,是一个很好用的语法糖。Lambda表达式的特点和应用场景对于开发者来说已经很熟悉了。在前面的分析中,将Lambda表达式简单的定义为函数对象或闭包,这样描述的目的是便于理解和…

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

最全2026攻略Java架构师面试题解析(MySQL/Redis/架构/高并发等)

最全架构师题目将包含如下技术范围:1.Java基础和高级:集合框架: List:ArrayList、LinkedList;Set:HashSet、TreeSetMap:TreeMap/ConcurrentHashMap;Queue:ConcurrentLinkedQueue等泛型、反射、并发编程、JVM、AIO/BIO/…

作者头像 李华
网站建设 2026/4/18 15:22:16

任务导向人工智能应用中认知闭环切片的原理说明

一、问题提出:为何需要“认知闭环切片” 在当下的人工智能工程实践中,AI 模型已被广泛嵌入到各类任务导向系统中,如生产调度、质量诊断、运维决策与流程优化等。然而,大量实践表明,仅将 AI 模型作为独立的分析或预测组…

作者头像 李华
网站建设 2026/5/2 9:48:39

Redis I/O 多线程性能优化报告

目录Redis I/O 多线程性能优化报告1. 执行摘要1.1 项目背景1.2 完成的工作1.3 关键结论2. Redis 实例信息2.1 实例配置2.2 修改前状态2.3 数据库状态3. I/O 多线程技术说明3.1 什么是 I/O 多线程3.2 配置参数3.3 适用场景3.4 激活机制4. 实施过程4.1 配置修改方式4.2 配置同步流…

作者头像 李华