ucos 系统如何做界面显示_stm32为什么要配置系统时钟

ucos 系统如何做界面显示,stm32为什么要配置系统时钟?

首先,stm32的性能强大,时钟频率快。片上资源丰富,io口多,有i2c,spi,sdio,fsmc,rtc等等。库函数丰富,方便操作。再加上移植了ucos和freertos等操作系统和stemwin图形界面库。绝对能满足大部分需求,而且价格也便宜。

单片机应该怎么学习呢?

单片机是一门很有用的技术,懂单片机可以找一份很好的研发岗工作。所谓万事开头难,在初学入门阶段可能摸不着头脑无从下手,如果有了比较好的学习方法单片机学习起来也是很有趣、很容易的。和大家分享一下单片机以及单片机C语言编程的学习方法。

1.选择一块单片机开发板

不管你是从51单片机开始,还是直接从STM32、AVR开始,建议买一块单片机开发板。切记,在学习单片机的时候不要和学习高数一样天天抱着书看,单片机是一门实践性非常强的课程,如果只看书不动手永远是纸上谈兵。书都不要看,直接买一块开发板,对单片机而言,最好的书就是单片机的数据手册。

2.学习单片机普通GPIO口的配置方式

不管你选择哪个型号的单片机入门,其学习方法都是一致的。首先要学习单片机普通GPIO口的配置方法,这包括单片机GPIO口的输出控制和输入检测。比如学习如何用C语言实现单片机点亮LED灯、如何用C语言控制蜂鸣器发声、如何用C语言控制继电器动作、如何用C语言实现按键电灯、按键使蜂鸣器发声、按键使继电器动作等。

3.学习单片机的定时器、AD转换、中断等片上资源

单片机具有丰富的片上资源,合理的使用这些片上资源可以简化产品的设计使方案最优。所以学习这些片上资源非常重要。这些片上资源包括定时器,可以实现定时功能或计数功能,该功能非常有用。单片机的AD转换功能可以将模拟量转化成数字量,在信号采集方面是非常重要的。使用单片机的中断资源可以节省单片机的资源,提高代码执行效率。

4.学习UART、IIC、SPI、CAN等通讯功能

通讯功能可以实现数据的传输,如wifi、蓝牙、RS485等都是常用的通讯功能,所以这一块一定要学习。现在绝大多数的单片机都带有UART、IIC、SPI甚至CAN通讯功能,其他一些通讯功能可能都是由这几种通讯功能延时出来的,比如说UART功能配合不同的电平转换芯片可以实现RS232、RS485、CAN,甚至蓝牙和wifi通讯等。

5.参与/主导单片机项目

学习的目的是为了以后能够用单片机设计出方案合理、性能稳定的产品,所以要抓住参与项目的机会,在项目中锻炼实践动手能力。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

什么是UIP?

uip是一个开源的微型协议栈,主要用于8位,16位MCU,占用内存少,并且代码少,容易移植。

它既可以用于多任务的操作系统中,如ucos。也能单独存在,传说中的裸奔。

uip主循环中重复做着两件事情。

查看是否收到数据包

查看周期性超时是否发生

如果有数据包到达,则会在主循环中调用输入处理函数,uip_input(),这个函数不会发生阻塞,而是立刻返回。它返回时,相应接收这个数据包的应用程序或协议栈会产生一个或多个将要被发送的回应数据包。如果是这样的话,底层的网络设备驱动会被调用去发送这些数据包。

周期性超时是用于驱动依靠定时器的TCP机制,比如延时确认,重发,估算往返时间。如果主循环中周期性定时发生,uip就会调用定时处理函数uip_periodic.

为什么玉兔号内存只有256MB?

相对于美国阿波罗11号制导计算机的不到4K运行内存,玉兔号的256M内存就已经是相当大了,然而,如今你想找个小于500M内存的手机,估计都要穿越回十年前了。

没错,出乎你的意料,很多先进的航天、航空设备的处理器在我们看来配置相当的低,而它们的价格却高的让你感到吃惊。例如,好奇号火星车上的RAD750处理器芯片,价格在30-40万美元左右,而性能在如今看来不到现在普通手机CPU配置的几百分之一。

很多人感到不理解,耗资上百亿的航天项目,使用配置如此的低处理器能够完成看似高大上的任务吗?要知道,256M内存的手机在如今看来想玩个扫雷的游戏都会卡的。

内存越大越好吗

如今市面上畅销的应用电子产品,内存一般都设计的很大,主要是为了用户使用时不会遇到系统卡死的情况。

像手机、平板、电脑这样的操作系统,为了更加方便的与人交互,除了设计了大量的UI交互界面,还加入了很多动画、声音文件,这些文件都比较大。

同时,很多应用为了让自己加载的更快,运行的更流畅,因此预加载了很多数据包以及插件,这些都会占用很多的内存,这也是目前安卓手机的通病:手机越用越卡,内存设计的必须足够大。

而不同于应用电子领域,在工业控制领域一个看似很复杂的设计程序,看似动用了十几万行、几百万行的代码,但实际上整个代码文件很小。

只有涉及到一些微操作系统的程序,如uCOS-II系统、Linux操作系统相应的系统代码量可能会大一些。

大多数工业机器人,操作代码只有一些选择性代码和计算方法代码,从而对传感器传递来的数据进行计算,并按一定的规则将指令发送到相应端口,甚至有些不需要绘制图像、涉及声音输出,因此整个程序不需要那么大。

航天工程的处理器为什么配置这么低?

事实上,航天工程的处理器不仅内存小,其运行频率也小得多。

上面提到,阿波罗11号制导计算机的运行内存不到4K,并且其芯片运行速度只有0.43MHz,天宫一号的CPU主频10Mhz,美国好奇号火星车上的CPU主频也只有200Mhz。

那么,这些代表人类最先进技术的航天工程,所使用的处理器为什么配置这么低呢?

首先,信号频率越高,越容易被干扰。宇宙中存在着各种高能射线、带电粒子,这些射线可以穿透芯片,会对芯片内部的晶体管和电容等元气件造成干扰,甚至导致高低电位翻转,也就是我们俗称的位翻转。

即便是在我们生活的环境,我们的电子产品也会受宇宙射线的影响,低概率的出现位翻转现象,这时候我们的电脑可能蓝屏,也可能死机。对于电脑小白来说,解决这个问题最简单的方法就是长按电源键,强制电脑重启了。

到了太空环境,太空辐射相当的严重,同时没有了大气层的保护,芯片受到的影响的概率也就更大,这时候,我们总不能派一个人专门上去将设备重启一下吧。

因此,对于航天设备,系统稳定的运行是第一位的,为防止宇宙中众多的射线辐射干扰,一般航天设备会使用低频信号,这样可以有效减少太空辐射干扰产生的位翻转。

当然,仅仅降低频率不能彻底解决这种问题, 为了解决强辐射照射到芯片内部的电路,导致芯片内部部件物理性质发生改变。航天用的芯片都需要特殊的加固芯片,这是一项技术含量很高的工作,所以航天级的芯片都是天价。

其次,假如航天设备的计算机系统配置太高,那么其芯片功耗就会上升,这既增加了设备的供电系统负担同时也带来了系统散热的问题。由于月球上没有空气的,因此不能像在地球上一样通过风扇、散热片进行散热。

而低配的计算机系统可以起到降低功耗,从而降低系统发热量,进而提高系统可靠性。

宇航级芯片更关注稳定性

就宇航级芯片来说,最关心的莫过于其稳定性了,关系到稳定性指标的,除了上面提到的、抗辐射能力和功耗大小等方面还有抗高温/低温能力、抗干扰能力。

月球由于没有大气,那里的温度取决于太阳的光照,受光面和被光面温差非常大,白天最高温度为160℃,而到了夜间最低可达-180℃。玉兔号为了能在这个温度范围下继续工作,所用芯片的耐温阈值必须达到-180℃到160℃的范围。

很多人会发现冬天出门用手机时会出现手机卡顿的情况,到了夏天放在车里的手机也会出现黑屏等现象。事实上,手机所用的芯片在大约-10°C以下或50°C以上就难以正常工作,当环境温度低于-55℃或高于90℃时,大部分手机就会保护性关机,零下180度的环境下想用手机是不可能的。

月球上没有空气,很多元器件在真空环境会产生真空释气,即元器件的表面涂覆会不断气化、释放,从而降低了对元器件的保护作用。

宇宙级的芯片到底能有多稳定?以NASA在1977年发射的旅行者1号为例,至今它已经飞行了221亿公里,在太空中遨游了40多年,但是到现在还在往地球发送获取的信息。

相对玉兔号的任务,256M内存足够用

玉兔号探测器是我国发射的首辆月球探测车,主要是对月球的多个探测点进行科学探测,执行的任务相对简单,如利用全景相机、测月雷达、红外成像光谱仪、粒子激发X射线谱仪采集探测数据并传回地球供科学家分析。

由此可见,不像我们玩的手机,玉兔号没有没有复杂的交互以及复杂的界面设计,更不需要在月球上玩游戏、看视频。所有的命令都是提前设定好的,绝大多数情况下只需要其任务调度和控制算法就可以了。

另外,由于月球与地球的距离很远,因此会有很大的通讯延迟,因此这些设备对于实时性的要求也不高。

总结

综上所述,256M的内存对于玉兔号来说已经足够用了,配置越高反而不利于其执行月球任务。玉兔号需要的不是超高的配置还是稳定而准确的运行,一句话:慢可以,但不能出错。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者M管理员
    暂无讨论,说说你的看法吧