STM32在什么情况下有必要用系统?一般应用感觉裸奔够用

2019-08-14 04:18发布

本帖最后由 newbuff 于 2017-8-26 11:55 编辑

知道如何在STM32 中使用比如RT Thread的系统,最近做个东西,用到3个串口,独立接收不同设备的数据。想着高大上一回,直接用了系统,建了3个任务处理三个串口接收的数据,当然数据是中断里接收的。运行着也没啥问题,但是突然又一想,完全裸奔都可以啊,如下
void main
{
     while(1)
     if(uart1_ok)
     {
         //do work1
     }
     if(uart2_ok)
     {
         //do work2
     }

     if(uart3_ok)
     {
         //do work3
     }

}
可能仅仅是无法区分优先级的劣势了。

到底根据什么需求,选择系统才有优势啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
ZTO13
1楼-- · 2019-08-15 05:47
两个多星期,求解?
笨鸟想飞
2楼-- · 2019-08-15 08:02
当你的需求,对实时性要求较高的时候,用系统会很大帮助。举个例子,跑裸机,while(1){ }
里面肯定有时差,对于某些项目应用(一定时间段需要运行一次的任务)用裸机往往就会照成误差,而且实时响应不及时会造成这个项目的效果差。跑系统,一方面整个逻辑非常清晰,而且项目量大的时候,往往跑裸机的时候逻辑往往很复杂。
小二郎123
3楼-- · 2019-08-15 11:21
 精彩回答 2  元偷偷看……
灼灼其华
4楼-- · 2019-08-15 16:59
那假如你第一次接收的串口数据还没处理完第二份数据就来了该怎么办?(甚至第三份,第四份...)
虾兵蟹将
5楼-- · 2019-08-15 20:25
个人觉得跟资源有关,要是你的内存足够,要不要用OS全凭自己的喜好,如果内存不够,那就只能用裸机了,当然,要是你能力强,能将OS裁剪到到符合内存要求,那也行,用OS还能保持较好的实时性,如果任务逻辑比较复杂,对实时性要求比较高,那采用OS是比较可靠的。
Acuity
6楼-- · 2019-08-16 02:16
说明你以往做的项目都太简单了,只有实际用上了才会知道操作系统的优势是什么。拿这3个串口处理来说,裸机单一任务执行,假设串口1一直有数据,那么就会引起阻塞,下面的处理无法及时执行。

一周热门 更多>