硬汉嵌入式论坛

 找回密码
 立即注册
查看: 744|回复: 2
收起左侧

[技术讨论] 求助,如何做到IIC互斥

[复制链接]

19

主题

310

回帖

367

积分

高级会员

积分
367
发表于 2022-8-23 22:37:08 | 显示全部楼层 |阅读模式
IIC一个引脚,接了RTC、触摸屏、串口拓展芯片,使用freertos+emwin,
串口拓展芯片用了IO中断引脚

独立测试串口拓展功能,完全没有问题,
测试RTC+触摸屏,也没有问题(做了信号量互斥)
xSemaphoreTake
xSemaphoreGive



集成使用,好像就会出现莫名其妙的问题,(好像信号量不能放在中断里面?
请问可以做到互斥吗?

目前是
任务1:GUI任务,做一些界面逻辑、刷新(包括按键消息处理、触摸逻辑处理)
任务2:业务逻辑
任务3:外置模块协议解析
任务4:按键任务
任务5:喇叭功能


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2022-8-24 02:00:41 | 显示全部楼层
1、配置了延迟参数的API都是不能在中断里调用的,另外FreeRTOS要使用以FromISR结尾的API才能用于中断。
2、如果他们都是用的一个I2C,推荐专门封装一个任务处理就行,功能要操作就给他发现消息,方便管理。
回复

使用道具 举报

19

主题

310

回帖

367

积分

高级会员

积分
367
 楼主| 发表于 2022-8-24 09:08:55 | 显示全部楼层
eric2013 发表于 2022-8-24 02:00
1、配置了延迟参数的API都是不能在中断里调用的,另外FreeRTOS要使用以FromISR结尾的API才能用于中断。
2 ...

感谢版主,请问有模版参考一下吗,再次谢谢!
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 19:45 , Processed in 0.211575 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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