OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2754|回复: 5

ucosiii 互斥信号量 使用问题

[复制链接]

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3761
金钱
3761
注册时间
2015-4-26
在线时间
761 小时
发表于 2016-8-18 17:11:30 | 显示全部楼层 |阅读模式
1金钱
我在同一个任务中需多次使用串口发送数据。故有多次请求同一互斥信号量,在串口发送完成中断释放互斥信号量。仿真证明,互斥信号量没起到应有的作用。
代码如下,跪求大神解惑!!!
[mw_shl_code=applescript,true]if(err == OS_ERR_NONE)//获得消息了
                {
                        res = cmd_receive((u8 *)msg);
                        OSMutexPend(&uart4MUTEX,0,OS_OPT_PEND_BLOCKING,&qts,&err);//阻塞等待usart4发送完成信号量
                        Send104(res,(u8 *)msg);
                }
                if(res == I_GNEREAL_live)//若收到了总召唤激活
                {
                        res = I_GNEREAL_YX;//重设res值,防止错误的进入此判断
                        OSMutexPend(&uart4MUTEX,0,OS_OPT_PEND_BLOCKING,&qts,&err);//阻塞等待usart4发送完成信号量
                        Send104(res,0);//设置发送遥信帧
                        OSMutexPend(&uart4MUTEX,0,OS_OPT_PEND_BLOCKING,&qts,&err);//阻塞等待usart4发送完成信号量
                        Send104(I_GNEREAL_YC,0);//设置发送遥测帧
                }[/mw_shl_code]

我有故事,你有酒吗
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2016-8-18 21:47:25 | 显示全部楼层
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-8-19 14:54:20 | 显示全部楼层
为啥先OSMutexPend,然后发送Send104
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3761
金钱
3761
注册时间
2015-4-26
在线时间
761 小时
 楼主| 发表于 2016-8-19 15:10:49 | 显示全部楼层
ysq7120 发表于 2016-8-19 14:54
为啥先OSMutexPend,然后发送Send104

pend先获得串口的使用权,send104是串口发送函数,在串口发送完毕后会有post mutex。这样别的串口发送函数才能正常使用串口。否则串口发送数据就乱了,现在的问题是就算我这样写也还是乱的。归根结底是互斥信号量没起到应有的作用
我有故事,你有酒吗
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-8-19 15:42:18 | 显示全部楼层
发送完的TC中断正常吗?
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-8-19 15:47:14 | 显示全部楼层
互斥量我的项目里用的好好的啊。估计还是你使用错误了。如果没法送过数据,然后OSMutexPend,那么你的程序不是会超时。
程序打印的东西出来,你这样说互斥信号量没起作用,也不清楚具体哪里出了问题啊。
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 20:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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