清江风和 2021-07-27 21:31 采纳率: 0%
浏览 25

[ucos] 上位机向单片机通过串口读取任务A的计算结果,如何处理?

上位机通过串口命令协议向单片机发送读【计算结果数据】命令,数据是由一个ADC采样关联任务的计算结果组成,该如何设计呢?

此计算结果在TaskA内部,以前通过裸机写程序时,设置一个全局变量的数组即可,现在用ucos不太明白该怎么发出来此计算结果。

我自己的一个思路是TaskA产生的数组通过邮箱传给TaskB,中断产生的信号量也给TaskB。TaskB先是每30秒接收到数据,然后不定时地等待上位机读数命令,当上位机发送读数命令时进入中断产生信号量以触发TaskB任务。但问题是,TaskB可以这么处理吗,如此处理后TaskB在接收到邮箱数据后执行到【等待中断信号量】这一句时挂起,下一次等收到信号量是否直接从TaskB的中间【等待中断信号量】这一条语句开始执行,另外根本问题是ucos支持这样的处理吗??

  • 写回答

1条回答 默认 最新

  • dceacho 2021-07-28 14:50
    关注

    ucos也可以用全局变量
    和以前一样用全局变量保存结果,TaskA不停的计算不停的刷新结果,TaskB接到指令后直接将结果的全局变量发出去就好
    但多任务多了一个互斥处理,避免A在写结果的过程中B去读结果了,简单点你用2组结果变量交替读写就好

    评论

报告相同问题?

问题事件

  • 创建了问题 7月27日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。