搜索
查看: 1194|回复: 2

[求助] freertos 中如何实现软件I2C 不被打断

[复制链接]

该用户从未签到

26

主题

82

帖子

0

蝴蝶豆

中级会员

最后登录
2021-1-6
发表于 2020-12-23 23:12:12 | 显示全部楼层 |阅读模式
有一个 产品 用到 了smbus 的电池芯片,但是由于主控芯片的SDK 提供的 I2C API 不符合 SMBUS 的要求。

导致需要用到 软件模拟的I2C.

但又有一个致命的问题,系统有一个1ms 的定时器,定时器的优先级最高。

当要读取电池多字节信息的时候,  就会不断的被1ms 的定时器打断,导致读取失败。

请问这种情况下应该如何处理。

回复

使用道具 举报

该用户从未签到

1

主题

49

帖子

0

蝴蝶豆

中级会员

最后登录
2021-6-8
发表于 2020-12-24 08:54:38 | 显示全部楼层
定时器中断为什么会打断模拟IIC时序?不行读的时候就关掉中断,
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

26

主题

82

帖子

0

蝴蝶豆

中级会员

最后登录
2021-1-6
 楼主| 发表于 2020-12-24 22:33:00 | 显示全部楼层
_sa 发表于 2020-12-24 08:54
定时器中断为什么会打断模拟IIC时序?不行读的时候就关掉中断,

会啊,因为这个软件IIC是用来 读取BQ4050的电池信息,它不是正规的IIC,是smbus协议, 一旦读取的字节多了, 总是被切成一块一块
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 22:59 , Processed in 0.180101 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表