Task_Led2_PRIO 8 LED2 闪烁任务
Task_Led3_PRIO 9 LED3 闪烁任务
为了兼顾实时效率及 CPU 的负荷。将 ucosII 的时钟节拍设置为 10ms, ucosII 需要提供周期性信号源,用于实现时间延时和确认超时,时钟节拍的含义就是任务和任务之间最短切换时间。这个节拍也不能设置的非常短,会造成 CPU 负荷过大,会造成任务执行兼顾不周。 某些高优先级任务总是在执行,有些低优先级任务得不到执行。 但节拍也不能设置的非常长,这会造成任务执行的实时性变差。 一般 10-100ms 就可以了。
下面分析一下这个程序的结构。
打开工程,可以在工程结构栏看到这个例程的工程结构(如下图)
Startup 组项:
包含了适用于 STM32F103 高容量系列的启动文件。 这是程序的执行的入口文件。在上电启动时,主要完成了对堆栈的初始设置,设置中断向量表,以及跳转到最终指向 main()函数的 C 库。
APP 组项:
App.c 里包含了任务的建立、各任务的原型以及 ucosII 内核的启动。
Stm32f10x_it.c 里包含了各个中断服务程序。在这个例程中,只用到了两个中断,一个是 systick 中断,一个是串口 1 中断。 Systick 中断为 ucosII 内核提供了 10ms 的时钟节拍。
BSP 组项:
Com.c 包含了串口 1 的初始化。
Bsp.c 包含了对所用到外设的初始化。
FWLIB 组项:
这个组项里包含了例程所用的到的 STM32 的各外设固件库。
Misc.c 是和中断设置有关系的固件库
Stm32f10x_gpio.c 是和通用端口有关系的库
Stm32f10x_rcc.c 是和外设时钟有关系的库
Stm32f10x_usart.c 是和串口有关系的库
组项:
以下的文件都是 ucosII2.86 源码。 这些文件已经移植到 STM32 平台下,可以直接包含到工程里使用。
CM3 组项:
Core_cm3.c 包含了 Coretex-M3 内核的外设访问层源文件。
System_stm32f10x.c 包含了和 Coretex-M3 系统时钟有关系的外设访问层源文件。
3.4 软件程序设计
3.4.1 ADC处理程序
此程序是本课题数据采集设计与实现的主要程序 ARM智能天然气监控终端的数据采集系统的设计+源代码(11):http://www.751com.cn/zidonghua/lunwen_2029.html