一、实验说明:

  本例程移值入uC/OS-II,建立三个任务,红色和绿色LED分别以固定频率闪烁,并且打开串口工具,

输出浮点数据。

二、源代码下载链接:

链接:https://pan.baidu.com/s/1o9pY0uI 密码:5roo

三、核心代码:

/*
* Name : main
* Description : ---
* Author : zh.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
/*实验现象:
红色和绿色LED灯分别以固定的频率闪烁,并且打开串口工具,可以看到有数据输出。
*/
int main(void)
{
system_clock.initialize(); //系统时钟初始化
led.initialize(); //LED初始化
usart6.initialize(); //串口初始化 OSInit(); //UCOS初始化
OSTaskCreate(start_task, //创建开始任务
(void*), //任务参数
(OS_STK*)&START_TASK_STK[START_STK_SIZE-], //任务堆栈
START_TASK_PRIO); //任务优先级
OSStart(); //开启UCOS
}
/*
* Name : start_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void start_task(void *pdata)
{
OS_CPU_SR cpu_sr; OSStatInit();//初始化统计任务 OS_ENTER_CRITICAL();//关中断 OSTaskCreate(led0_task,(void*),(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-],LED0_TASK_PRIO);//创建LED0任务
OSTaskCreate(led1_task,(void*),(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-],LED1_TASK_PRIO);//创建LED1任务
OSTaskCreate(usart_task,(void*),(OS_STK*)&USART_TASK_STK[USART_STK_SIZE-],USART_TASK_PRIO);//创建usart任务
OSTaskSuspend(OS_PRIO_SELF);//挂起start_task任务 OS_EXIT_CRITICAL();//开中断
}
/*
* Name : led0_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void led0_task(void *pdata)
{
while()
{
LED_RED_ON; //红灯亮
OSTimeDlyHMSM(,,,); //延时500ms
LED_RED_OFF; //红灯灭
OSTimeDlyHMSM(,,,); //延时500ms
}
}
/*
* Name : led_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void led1_task(void *pdata)
{
while()
{
LED_GREEN_ON; //绿灯亮
OSTimeDlyHMSM(,,,); //延时1000ms
LED_GREEN_OFF; //绿灯灭
OSTimeDlyHMSM(,,,); //延时1000ms
}
}
/*
* Name : usart_task
* Description : ---
* Author : liu.
*
* History
* --------------------
* Rev : 0.00
* Date : 07/12/2017
*
* create.
* --------------------
*/
void usart_task(void *pdata)
{
double f=0.1; while()
{
f+=0.1f; //浮点型运算
usart6.printf("float f=%.4f\r\n",f); //串口输出
OSTimeDlyHMSM(,,,); //延时500ms
}
}

iCore4链接:

最新文章

  1. HTML 学习笔记 JQuery(DOM 操作2)
  2. Web应用网络模型
  3. SDL2.0的几何图行绘画
  4. spring mvc源码解析
  5. 设计模式----代理模式(Proxy)
  6. IO模型总结
  7. C++中malloc/free和new/delete 的使用
  8. UVA11396-Claw Decomposition(二分图判定)
  9. C#用WebClient下载File时操作超时的问题
  10. --@angularJS--一个简单的UI-Router路由demo
  11. js之Math对象
  12. 关于 httpUrlConnection 的 setDoOutput 与 setDoInput的区别
  13. [bzoj]2962序列操作
  14. Mysql使用规范文档 20180223版
  15. GIL全局锁测试
  16. Dynamics 365 Online-Microsoft Flow
  17. 修改Docker默认的网段
  18. Linux(Ubuntu-CentOS)
  19. Java与JavaScript之间关于JSON的是非恩怨
  20. HI3516EV100 RTMP添加音频

热门文章

  1. 前后端通过API交互
  2. H5与Native交互之JSBridge技术
  3. 现阶段如何开始使用v-ray for unrealengine
  4. python基础一 ------linux某目录下批量的为特定文件加入可执行权限
  5. python数据类型及基本运算符
  6. BZOJ3736 : [Pa2013]Karty
  7. C#扩展方法实现
  8. Jupyter Notebook 快捷键和技巧
  9. __getitem__函数
  10. 阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)