纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 4575|回复: 1

拿USB-I2C做外部开关及多线程安全的问题.

[复制链接]
发表于 2015-1-22 11:34:44 | 显示全部楼层 |阅读模式
本帖最后由 Anker_Xue 于 2015-1-22 13:13 编辑

有没有这样的应用方案,拿USB-I2C的IO做外部检测开关,当IO为低电平时触发上位机的程序事件.
就像RS232口的OnDSR之类的事件一样.
目前官方函数库里好像没有这样的功能.
开一个监控线程,每50ms左右去读一次特定IO的话,这个读操作经常跟其它线程中的I2C操作等冲突,造成驱动程序崩溃.
要重新插拔USB线重认设备才可以.
就算给所有的I2C操作全部加上了线程lock保护机制也一样有机率造成驱动崩溃.

请问官方提供的API是线程安全的吗?
官方有没有考虑过开发IO事件的功能?

回复

使用道具 举报

发表于 2015-1-26 11:15:55 | 显示全部楼层
你好,非常感谢使用我们的产品
目前我们I2C的库函数内部没有加线程保护机制,所以在实现多线程编程的时候需要自己做线程保护,你说的触发功能,对USB设备来说是很难实现的,目前比较好的方式可能只有通过定时检测IO口状态来实现
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 10:05 , Processed in 0.046683 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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