硬汉嵌入式论坛

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

[FreeRTOS] 关于freertos 中串口的互斥问题

[复制链接]

10

主题

40

回帖

70

积分

初级会员

积分
70
发表于 2024-10-29 08:56:10 | 显示全部楼层 |阅读模式
请教下大家,freertos系统中UART只能工作在半双工模式,主机在发送完成后从机会返回确认包,同时从机有时会主动上传数据给主机。我现在处理是在接收中断中把接收全局标志置位,在串口接收超时时复位。在发送函数时判断这个全局标志位,如果正在接收就延时等待,freertos中是否可以用互斥锁来做这个处理呢?
回复

使用道具 举报

10

主题

678

回帖

708

积分

金牌会员

积分
708
发表于 2024-10-29 09:32:16 | 显示全部楼层
硬中断+任务+队列。
回复

使用道具 举报

10

主题

40

回帖

70

积分

初级会员

积分
70
 楼主| 发表于 2024-10-29 09:43:31 | 显示全部楼层
hqgboy 发表于 2024-10-29 09:32
硬中断+任务+队列。

我现在就是这样的,
硬中断+任务+接收消息队列。发送直接在中断中,但是在发送前要判断下串口工作状态, 有可能当前串口正在接收。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-10-29 09:56:41 | 显示全部楼层
这个不用FreeRTOS的通信机制更好,将这个变量定义为__IO变量,防止编译器优化,保证每次都是从源地址读取。

发送前继续查询这个变量即可。不放心的话,读取变量前价格开关中断实现临界保护。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 04:43 , Processed in 0.252193 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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