完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在原子任务调度源码的基础上加入LCD刷屏幕,但是总是在初始化LCD,屏幕变亮就没反应了,是哪里有问题了?[C] 纯文本查看 复制代码
/////////////////////////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);//任务函数 //LED0任务#define LED0_TASK_PRIO 7 //设置任务优先级#define LED0_STK_SIZE 64//设置任务堆栈大小OS_STK LED0_TASK_STK[LED0_STK_SIZE];//任务堆栈void led0_task(void *pdata);//任务函数//LED1任务#define LED1_TASK_PRIO 6 //设置任务优先级#define LED1_STK_SIZE 64//设置任务堆栈大小OS_STK LED1_TASK_STK[LED1_STK_SIZE];//任务堆栈void led1_task(void *pdata);//任务函数//LCD任务#define LCD_TASK_PRIO5//设置任务优先级#define LCD_STK_SIZE64//设置任务堆栈OS_STK LCD_TASK_STK[LCD_STK_SIZE];//任务堆栈void lcd_task(void *pdata);//LCD任务void lcd_task(void *pdata){while(1){LCD_Clear(BLACK);delay_ms(10);LCD_Clear(WHITE);delay_ms(10);LCD_Clear(BLUE);delay_ms(10);};} |
|
相关推荐
12个回答
|
|
死在这里了
int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch; } 然后搜了论坛说是少了初始化uart_init(9600); 加了之后就可以了, 但是我觉得奇怪,为什么要初始化串口? |
|
|
|
你用串口,不初始化串口,死机很正常。
|
|
|
|
任务堆栈开大一点试试
|
|
|
|
|
|
|
|
改了,不行喔....
|
|
|
|
改了,不行喔...
|
|
|
|
检测下是不是创建任务出问题了
|
|
|
|
int main(void)
{ delay_init(); //延时函数初始化 NVIC_Configuration(); LED_Init(); //初始化与LED连接的硬件接口 LCD_Init();//LCD初始化 OSInit(); //初始化ucosII OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建用户任务start_task //指向任务的指针,传递给任务的参数*,任务堆栈的栈顶指针(增长向下),优先级 OSStart();//启动ucosII } //开始任务 void start_task(void *pdata) { OS_CPU_SR cpu_sr=0; pdata = pdata; OSStatInit(); OS_ENTER_CRITICAL();//进入临界区(无法被中断打断) OSTaskCreate(led0_task,(void *)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO); OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_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();//退出临界区(可以被中断打断) } 我就只是看了任务调度这方面的内容,了解了ucosII各个文件的作用,这个实验的代码能看懂,就想试试加入lcd刷屏,类似三个跑马灯。 源码里ucosII的文件都没修改,不知道是不是延时或者是优先级导致程序跑飞? |
|
|
|
sys.h 下的SYSTEM_SUPPORT_UCOS置 1 了没
|
|
|
|
有的,其实就是在原子实验ucosII任务调度1的源码上添加的...
|
|
|
|
仿真一下,看看死在哪里了啊
|
|
|
|
查查任务里是否有printf。有就要开串口。
|
|
|
|
只有小组成员才能发言,加入小组>>
800 浏览 0 评论
1156 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2714 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1092浏览 3评论
197浏览 2评论
463浏览 2评论
376浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
458浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 05:59 , Processed in 1.375394 second(s), Total 100, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号