OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2641|回复: 2

求助原子哥:为什么我在任务调度的源程序里加入了初始化lcd程序就不运行了

[复制链接]

81

主题

270

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
452
金钱
452
注册时间
2014-8-11
在线时间
87 小时
发表于 2015-12-2 18:06:14 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include "includes.h" //ALIENTEK战舰STM32开发板实验53 //UCOSII实验1-任务调度 //技术支持:www.openedv.com //广州市星翼电子科技有限公司 /////////////////////////UCOSII任务堆栈设置/////////////////////////////////// //START 任务 //设置任务优先级 #define START_TASK_PRIO 10 //开始任务的优先级设置为最低 //设置任务堆栈大小 #define START_STK_SIZE 64 //创建任务堆栈空间 OS_STK START_TASK_STK[START_STK_SIZE]; //任务函数接口 void start_task(void *pdata); //LED1任务 //设置任务优先级 #define LED1_TASK_PRIO 7 //设置任务堆栈大小 #define LED1_STK_SIZE 64 //创建任务堆栈空间 OS_STK LED1_TASK_STK[LED1_STK_SIZE]; //任务函数接口 void led1_task(void *pdata); //LED2任务 //设置任务优先级 #define LED2_TASK_PRIO 6 //设置任务堆栈大小 #define LED2_STK_SIZE 64 //创建任务堆栈空间 OS_STK LED2_TASK_STK[LED2_STK_SIZE]; //任务函数接口 void led2_task(void *pdata); int main(void) { delay_init(); //延时初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 LED_Init(); //初始化与LED连接的硬件接口 OSInit(); OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务 OSStart(); } //开始任务 void start_task(void *pdata) { OS_CPU_SR cpu_sr=0; pdata = pdata; OSStatInit(); //初始化统计任务.这里会延时1秒钟左右 OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断) OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO); OSTaskCreate(led2_task,(void *)0,(OS_STK*)&LED2_TASK_STK[LED2_STK_SIZE-1],LED2_TASK_PRIO); OSTaskSuspend(START_TASK_PRIO); //挂起起始任务. OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断) } //LED1任务 void led1_task(void *pdata) { while(1) { LED0=0; delay_ms(80); LED0=1; delay_ms(920); }; } //LED2任务 void led2_task(void *pdata) { while(1) { LED1=0; delay_ms(300); LED1=1; delay_ms(300); }; } [/mw_shl_code]
这个是任务调度的源程序,我在main函数里面加入了lcd的初始化程序下载到板子上led就不轮流亮了
[mw_shl_code=c,true]int main(void) { delay_init(); //延时初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 LED_Init(); //初始化与LED连接的硬件接口 LCD_Init(); //往这里看。。。。。。。。。。。。。。。。。。 OSInit(); OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务 OSStart(); }[/mw_shl_code]


最佳答案

查看完整内容[请看2#楼]

在LCD初始化前加个串口初始化函数,或者把LCD初始化里面的输出LCD ID的语句删掉。
我是一只菜鸟,但我会大鹏展翅
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

424

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1020
金钱
1020
注册时间
2014-9-4
在线时间
199 小时
发表于 2015-12-2 18:06:15 | 显示全部楼层
在LCD初始化前加个串口初始化函数,或者把LCD初始化里面的输出LCD ID的语句删掉。
https://github.com/WZTENG
回复

使用道具 举报

81

主题

270

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
452
金钱
452
注册时间
2014-8-11
在线时间
87 小时
 楼主| 发表于 2015-12-2 23:03:20 | 显示全部楼层
回复【2楼】WZTENG:
---------------------------------
谢谢
我是一只菜鸟,但我会大鹏展翅
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 00:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表