>操作系统
Jesse_嘉伟
这个作者很懒,什么都没留下…
展开
-
状态机实践入门
状态机实践入门原文转自:http://www.cnblogs.com/pang123hui/archive/2012/02/04/2338275.html 不用怀疑,单片机的万能语言就是状态机。还希望大家不要条件反射式的看到状态机就 以为我要讲什么VHDL的东西——状态机是一种思维模式,是计算机理论的立足之本(不 相信请参考清华大学出版社的《自动机理论与应用》)——转载 2015-01-24 15:41:20 · 602 阅读 · 0 评论 -
stm32的串口空闲中断接收数据
整体的思路是这样的,一开始设置好DMA接收,可以把缓冲区长度设置为帧最大长度,我们可以把RX连接到定时器的管脚输入端,并且一开始设置输入并且使能引脚下降沿中断,当帧的第一个字节发送时,因为起始位为低电平,空闲时UART为高电平,满足条件,进入中断,禁止中断,并且在中断中开启定时器,该定时器工作在复位模式,上升沿复位,并且设置好定时器输出比较值为超时时间,比如20ms,这样,在传输后面字节时,肯定会原创 2014-11-11 16:23:19 · 9416 阅读 · 1 评论 -
STM32串口DMA超时接收方法,可大大节约CPU时间
原文本办法使用定时器定时查询DMA接收到的数据,如果超过设定的周期则认为本次数据包结束,将数据拷贝到缓冲区,交由其他程序处理。可以接收任意大小的数据包,尤其适用于MODBUS等协议,曾经用于GPS、GPRS等接收,很实用。本方法占用CPU时间极少,尤其是波特率很高时,效果更加明显。当某一个串口的数据接收超时以后,定时器中断中将数据拷贝到缓冲区,在主程序中可以判断数据标志UART1_Flag转载 2014-11-10 18:19:33 · 7175 阅读 · 0 评论 -
STM32串口DMA方式接收数据。类似环形FIFO。超省CPU资源!
一直以来都为串口接收数据所困扰:1:如果用接收中断的话,每接收1byte就得中断一次。这样太消耗CPU资源!2:如果用DMA方式接收数据,那么如何确定接收数据的长度又不好确定了。(比如GPRS模块AT命令的接收!)3:DMA方式接收+定时器的超时中断。这样处理也比较复杂,需要开定时器,关定时器。。。。个人不喜欢!(ATMEL的ARM系列的串口倒是有硬件超时中断可以直接使用。我现在用AT转载 2014-11-10 18:29:06 · 14333 阅读 · 2 评论 -
uC/OS-ii 学习步骤及书籍推荐
本人学习uCOSII时间不长。之前对各类8位、16位单片机都有一定的接触,做过很多项目。最近一年里,由于项目的需要一直在用STM32,但是在项目的后期发现对于32位的ARM来讲,如果项目比较复杂的话,对于各个任务的安排调度是整个编程的最大的工作量。于是,我开始接触uCOSII。开始的时候比较迷茫无从下手,在网上看了很多帖子,也在图书馆找了一些书。最后呢经过一段时间的学习,跑跑例程,慢慢就算是入门了转载 2014-09-27 19:03:00 · 3865 阅读 · 0 评论 -
UCOS-II:对于信号量,互斥信号量,事件标志组的个人理解-转
原文地址http://bbs.21ic.com/icview-233903-1-1.html-------------------------------------------------------------------------------------------------------------------------------------------ucos看了也有一周多转载 2014-09-27 19:18:16 · 1685 阅读 · 0 评论 -
浅谈实时操作系统任务调度
一、1、 调度用来确定多任务环境下任务执行的顺序和在获得CPU资源后能够执行的时间长度。 2、 操作系统通过一个调度程序来实现调度功能。 调度程序以函数的形式存在,用来实现操作系统的调度算法。调度程序本身并不是一个任务,是一个函数调用,可在内核的各个部分进行调用。 3、调用调度程序的具体位置又被称为是一个调度点(scheduling point),调转载 2014-11-15 14:39:27 · 6872 阅读 · 0 评论