完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
小白求教?
按照原子哥的方法把LCD的函数也添加到了任务中,可是为什么没有反应?请高手回答?还有请问有qq群吗?我想加入以下。谢谢。。[C] 纯文本查看 复制代码 #define LCD_TASK_PRIO 9#define LCD_STK_SIZE 64OS_STK LCD_TASK_STK[LCD_STK_SIZE];void lcd_task(void *pdata);OSTaskCreate(lcd_task,(void *)0, (OS_STK*)&LCD_TASK_STK[LCD_STK_SIZE-1],LCD_TASK_PRIO);void lcd_task(void *pdata){ u8 i ;while (1){i = 0 ;i++;if (i > 9 )i = 0 ;switch (i){case 0 : LCD_Clear(RED);break;case 1 : LCD_Clear(WHITE);break ;case 2 : LCD_Clear(YELLOW);break ;case 3 : LCD_Clear(BLACK);break ;case 4 : LCD_Clear(GREEN);break ;case 5 : LCD_Clear(BROWN);break ;case 6 : LCD_Clear(BLUE);break ;case 7 : LCD_Clear(LGRAY);break ;case 8 : LCD_Clear(LBBLUE);break ;}delay_ms(300);}} |
|
相关推荐
11个回答
|
|
|
问题的原因找到了,在LCD_Init();函数中有一句是printf(" LCD ID:%xrn",lcddev.id); 把这段代码屏蔽掉,LCD就有现象了。虽然问题解决了,但是想问一下老师,为什么这段代码会让程序卡在这里?
|
|
|
|
|
|
你前面应该是没有串口初始化,所以串口发送这一句是过不去的。因为串口一次次发送时,会等待发送完成
|
|
|
|
|
|
任务堆栈在开大一点试试
|
|
|
|
|
|
液晶一直是白屏没错吧,你仔细看你的程序逻辑
|
|
|
|
|
|
液晶是一直没有反应的,而且只要把LCD_Init();在main函数中打开,所有的外设都不工作了。请老师明示...
|
|
|
|
|
|
lcd_task中switch (i)处的i一直是1,因为i的初始在while(1)里面
|
|
|
|
|
|
[C] 纯文本查看 复制代码
[C] 纯文本查看 复制代码 [C] 纯文本查看 复制代码 #include "led.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "includes.h"#include "beep.h"#include "lcd.h"/////////////////////////UCOSII?/////////////////////////////////////START ????#define START_TASK_PRIO 10 #define START_STK_SIZE 64OS_STK START_TASK_STK[START_STK_SIZE];void start_task(void *pdata); //#define LED1_TASK_PRIO 7 //#define LED1_STK_SIZE 64//OS_STK LED1_TASK_STK[LED1_STK_SIZE];//void led1_task(void *pdata);//#define LED2_TASK_PRIO 6 //#define LED2_STK_SIZE 64//OS_STK LED2_TASK_STK[LED2_STK_SIZE];//void led2_task(void *pdata);////BEEP ????//#define BEEP_TASK_PRIO 8//#define BEEP_STK_SIZE 64//OS_STK BEEP_TASK_STK[BEEP_STK_SIZE];//void beep_task(void *pdata);#define LCD_TASK_PRIO 4#define LCD_STK_SIZE 200OS_STK LCD_TASK_STK[LCD_STK_SIZE];void lcd_task(void *pdata); int main(void) {delay_init(); NVIC_Configuration(); LCD_Init(); //LED_Init(); //BEEP_Init(); POINT_COLOR=RED; while (1) {OSInit(); OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//???¨????????//(OS_STK *)&START_TASK_STK[START_STK_SIZE-1]?????????????????? OSStart(); } } //????????void start_task(void *pdata){ OS_CPU_SR cpu_sr=0;pdata = pdata; OSStatInit(); 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);//OSTaskCreate(beep_task,(void *)0, (OS_STK*)&BEEP_TASK_STK[BEEP_STK_SIZE-1],BEEP_TASK_PRIO);OSTaskCreate(lcd_task,(void *)0, (OS_STK*)&LCD_TASK_STK[LCD_STK_SIZE-1],LCD_TASK_PRIO);OSTaskSuspend(START_TASK_PRIO);OS_EXIT_CRITICAL();}//void led1_task(void *pdata)//{ //while(1)//{//LED0=0;//delay_ms(80);//LED0=1;//delay_ms(80);//};//}////LED2????//void led2_task(void *pdata)//{ //while(1)//{//LED1=0;//delay_ms(300);//LED1=1;//delay_ms(300);//};//}//void beep_task(void *pdata)//{//u8 i ;//while(1)//{//for( i = 0 ; i <500 ; i++ )//{//delay_ms(1000);//BEEP =!BEEP ;//}//};//}void lcd_task(void *pdata){ u8 i ;i = 0 ;while (1){i++;if (i > 9 )i = 0 ;switch (i){case 0 : LCD_Clear(RED);break;case 1 : LCD_Clear(WHITE);break ;case 2 : LCD_Clear(YELLOW);break ;case 3 : LCD_Clear(BLACK);break ;case 4 : LCD_Clear(GREEN);break ;case 5 : LCD_Clear(BROWN);break ;case 6 : LCD_Clear(BLUE);break ;case 7 : LCD_Clear(LGRAY);break ;case 8 : LCD_Clear(LBBLUE);break ;}delay_ms(3000);};}老师您好,我的问题还是没有解决,这是我的源代码,为什么在我把LCD_Init();屏蔽掉之后,所有的外设都可以按照任务执行,但是一旦加上LCD_Init();之后,就不可以了。整个的硬件都是没有反应的。我一开始考虑的是延时时间过短,然后延时3000,但是还是不行。在调试的时候,程序不会卡在LCD_Init();中。请老师赐教。 |
|
|
|
|
|
我已经改正这个错误了,但是还不行。
|
|
|
|
|
|
谢谢老师的指点。
|
|
|
|
|
|
是这个问题。。。谢谢老师的指点
|
|
|
|
|
|
我觉得吧,估计是串口打印函数重定向这里有问题,因为这里会一直等待数据发送完成,而你没有连串口,数据一直发不出去。后续代码都无法运行。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1064 浏览 1 评论
1885 浏览 0 评论
1865 浏览 1 评论
3286 浏览 5 评论
3614 浏览 9 评论
1068浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1394浏览 1评论
1889浏览 0评论
1208浏览 0评论
1341浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 17:48 , Processed in 1.193193 second(s), Total 96, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1191