在线时间795 小时
UID3067179
注册时间2014-10-23
NXP金币1047
TA的每日心情 | 开心 2024-4-10 10:22 |
---|
签到天数: 1317 天 [LV.10]以坛为家III
版主
- 积分
- 7570
- 最后登录
- 2024-4-10
|
在rt-Thread系统下,驱动LCD显示屏。
一、硬件电路
2.1、底板LCD部分电路图
2.2、核心板LCD部分电路图
WR引脚底板和核心板上有点区别
二、程序部分
2.1、lcd.c
2.2、创建的线程
- #include "platform.h"
- #include "ledt.h"
- #include "lcd.h"
- #include "stdio.h"
- //LCD线程入口
- static void lcd_thread_entry(void* parameter)
- {
- rt_uint32_t count=0;
- char buff[30];
- while(1)
- {
- rt_kprintf("lcd thread count:%d\n",count++);
- LCD_Set_RowCol(0,0);
- LCD_WR_Str("LPC1768 rt-Thread");
-
- LCD_Set_RowCol(0,1);
- LCD_WR_Str("LCD thread test:");
-
- sprintf(buff,"thread count = %d",count);
- LCD_Set_RowCol(0,2);
- LCD_WR_Str(buff);
-
- rt_thread_delay(50);
- }
- }
- //Uart线程入口
- static void uart_thread_entry(void* parameter)
- {
- rt_uint32_t count=0;
- while(1)
- {
- rt_kprintf("uart thread count:%d\n",count++);
- rt_thread_delay(50);
- }
- }
- //led线程入口
- static void led_thread_entry(void* parameter)
- {
- rt_uint8_t led_bf=0;
- while(1)
- {
- led_bf=~led_bf;
- if(led_bf)
- {
- led_on();
- rt_kprintf("led open\n");
- }
- else
- {
- led_off();
- rt_kprintf("led close\n");
- }
- //rt_kprintf("led thread run");
-
- rt_thread_delay(50);
- }
- }
- //初始化
- void init_board(void)
- {
- init_led();
- LCD_Init(); //初始化
-
- // LCD_Clr_Screen();
- // LCD_Set_RowCol(0,1);
- // LCD_WR_Str("Hello LPC1768 Board!");
- //LCD_WR_Str("zhangxiaohui");
- }
- //初始化线程
- void fun_init_thread_entry(void)
- {
- rt_thread_t uart_thread; //串口线程
- rt_thread_t led_thread; //LED指示灯线程
- rt_thread_t lcd_thread; //LCD显示线程
-
- //创建串口线程
-
- uart_thread = rt_thread_create(
- "uart", //线程名称
- uart_thread_entry, //线程入口函数
- RT_NULL, //线程入口参数
- 256, //线程栈大小
- 19, //线程优先级
- 20); //线程时间片大小
- if(uart_thread != RT_NULL)
- rt_thread_startup(uart_thread);
- //创建LED指示灯线程
- led_thread = rt_thread_create(
- "led", //线程名称
- led_thread_entry, //线程入口函数
- RT_NULL, //线程入口参数
- 256, //线程栈大小
- 18, //线程优先级
- 20); //线程时间片大小
- if(led_thread != RT_NULL)
- rt_thread_startup(led_thread);
- //创建LCD显示线程
- lcd_thread = rt_thread_create(
- "lcd", //线程名称
- lcd_thread_entry, //线程入口函数
- RT_NULL, //线程入口参数
- 256, //线程栈大小
- 17, //线程优先级
- 20); //线程时间片大小
- if(lcd_thread != RT_NULL)
- rt_thread_startup(lcd_thread);
- }
复制代码
三、程序执行结果
3.1、串口输出
3.2、LCD显示
|
|