stm32+ucos系统
JiaoCL
平台,数据,算力,算法
展开
-
stm32+ucosII建立串口通信等多任务的实现
关于ucos的知识,目前是边做项目边加深理解,感觉还是有些欠缺,希望能从自己的代码经历中能总结出精髓。个人能力有限,编写边更新,难免有误,还望轻拍. 1、mailbox还是全局变量的问题 一般在任务间传递数据是采用mialbox,全局变量无法实现多任务按照时间片执行的目的。 可就是这个理念,在串口的数据接收过程中,遇到了一些一个小麻烦-----待续!原创 2017-08-23 23:00:59 · 6061 阅读 · 0 评论 -
STM32串口第一个字节丢失问题的分析过程
STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff,0x06丢失。错误依旧。转载 2017-08-29 11:12:59 · 460 阅读 · 0 评论 -
stm32+ucosII+usart串口的接收,重在分析过程
INCLUDE FILES */include include include include include include define TaskStack 100 //各个任务的堆栈大小define APP_CFG_TASK_LEDon_PRIO 3原创 2017-10-11 14:41:12 · 7257 阅读 · 0 评论 -
再读 ucosII源码--时间管理
时间管理 前文描述过, 时钟的中断服务子程序调用节时钟节函数OSTimeTick——该函数用于通知µC/OS-Ⅱ发生了时钟节拍中断。 相关的函数见下文,源码于os_time.c中. 任务延时函数,OSTimeDly() µC/OS-Ⅱ提供了这样一个系统服务: 申请该服务的任务可以延时一段时间,这段时间的长短是用时钟节拍的数目来确定的。实现这个系统服务的函数叫做OSTimeDly(...转载 2018-08-07 08:42:47 · 500 阅读 · 0 评论 -
ucos多任务与linux进程、多线程的比较分析
从最初使用51片机,再到avr、msp430,arm7、arm9裸机,单片机的处理速度越来越快,而产品需求的日新月异,在硬件成本、功耗、体积以及开发周期等的限制下,开发人员倾向于挖掘mcu的各种潜能。实时性多任务就是其一吧。 多任务的重要性不必多说,就相当于一个人同时右手画方左手画圆,想想都觉得牛逼,我办不到,但是用片mcu编程序却可以实现。当然,对于单核的mcu来说,不存在完全的实时多任务,它的...原创 2018-08-21 10:01:46 · 3573 阅读 · 1 评论 -
关于STM32库中 __IO 修饰符(volatile修饰符)
STM32例子代码中会有像这样的代码 static __IO uint32_t TimingDelay; 这里边的__IO修饰符不好理解,单从字面可以看出是为IO相关,查其标准库可以得知这个__IO原来是在Core_cm3.h中被重定义,其实就是volatile,句子如下 /* IO definitions (access restrictions to peripheral regist...转载 2018-08-21 11:11:38 · 5903 阅读 · 0 评论