完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在同一个任务中需多次使用串口发送数据。故有多次请求同一互斥信号量,在串口发送完成中断释放互斥信号量。仿真证明,互斥信号量没起到应有的作用。
代码如下,跪求大神解惑!!! [AppleScript] 纯文本查看 复制代码 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);//设置发送遥测帧} |
|
相关推荐
5个回答
|
|
|
|
为啥先OSMutexPend,然后发送Send104
|
|
|
|
pend先获得串口的使用权,send104是串口发送函数,在串口发送完毕后会有post mutex。这样别的串口发送函数才能正常使用串口。否则串口发送数据就乱了,现在的问题是就算我这样写也还是乱的。归根结底是互斥信号量没起到应有的作用
|
|
|
|
发送完的TC中断正常吗?
|
|
|
|
互斥量我的项目里用的好好的啊。估计还是你使用错误了。如果没法送过数据,然后OSMutexPend,那么你的程序不是会超时。
程序打印的东西出来,你这样说互斥信号量没起作用,也不清楚具体哪里出了问题啊。 |
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1071浏览 3评论
194浏览 2评论
456浏览 2评论
369浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
454浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:39 , Processed in 1.165855 second(s), Total 87, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号