完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
OS_EVENT *que; //消息队列 的声明
void *myq[message]; //消息缓冲区message=10 //按键扫描的任务 void Taskkey(void *pdata) { u8 key; INT8U *s="ucos-ii",i; while(1) { key=KEY_Scan(); f(key==3) { for(i=5;i OSQPostFront (que,&i); //队列发送消息 后进先出!! printf("消息队列发送消息%dn",i); } } OStimeDly(50); } } //接收消息队列 的任务 void TaskLed(void *pdata) { INT8U err; INT8U *s; while(1) { s=(INT8U*)OSQPend(que,0,&err); //请求等到消息队列 LED0=!LED0; printf("收到的消息s=%dn",*s); OSTimeDlyHMSM(0,0,0,500); } } 而最后下载到板子上运行通过串口打印是这样的: 消息队列发送消息5 消息队列发送消息6 消息队列发送消息7 消息队列发送消息8 消息队列发送消息9 收到的消息s=10 收到的消息s=10 收到的消息s=10 收到的消息s=10 收到的消息s=10 我不明白为什么收到的消息都是10 不应该是9-5吗?? 当这段改为 f(key==3) { for(i=0;i<5;i++) //一次按键就发送5个消息 { OSQPostFront (que,&i); //队列发送消息 后进先出!! printf("消息队列发送消息%dn",i); } } 而最后下载到板子上运行通过串口打印是这样的: 消息队列发送消息0 消息队列发送消息1 消息队列发送消息2 消息队列发送消息3 消息队列发送消息4 收到的消息s=5 收到的消息s=5 收到的消息s=5 收到的消息s=5 收到的消息s=5 这我想不懂,请大家指教一下!!!! |
|
相关推荐
2个回答
|
|
|
|
|
|
谢谢原子!!!明白了.....原来还是对指针不是很了解!!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
382 浏览 1 评论
250 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
230 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
590 浏览 2 评论
615 浏览 2 评论
1345浏览 9评论
STM32F429 U盘IAP升级程序跳转APP异常的原因?
14浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
12浏览 3评论
STM32F103时钟硬件程序会卡在“while((SPI3->SR SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);”导致异常复位的原因?
48浏览 3评论
10浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-19 23:15 , Processed in 0.725643 second(s), Total 70, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号