在线时间910 小时
UID3067179
注册时间2014-10-23
NXP金币3374
TA的每日心情 | 开心 3 天前 |
|---|
签到天数: 1550 天 连续签到: 1 天 [LV.Master]伴坛终老
版主
  
- 积分
- 8887
- 最后登录
- 2025-10-26
|
本帖最后由 TLLED 于 2019-3-31 22:32 编辑
在上一帖子将thread系统运行在开发板上运行,这次将LED点亮程序移植到系统上
一、硬件部分
二、程序部分
2.1、创建两个线程
- #include "platform.h"
- #include "ledt.h"
- //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();
- }
- //初始化线程
- void fun_init_thread_entry(void)
- {
- rt_thread_t uart_thread; //串口线程
- rt_thread_t led_thread; //LED指示灯线程
-
- //创建串口线程
-
- 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);
- }
复制代码
2.2、LED程序
- //led.c
- #include <LPC17xx.H>
- //LED初始化
- void init_led(void)
- {
- LPC_GPIO0->FIODIR = (1<<7);
- }
- //打开LED
- void led_on (void)
- {
- LPC_GPIO0->FIOPIN |= (1<<7);
- }
- //关闭LED
- void led_off (void)
- {
- LPC_GPIO0->FIOPIN &= ~(1<<7);
- }
复制代码 三、运行效果
3.1、串口输出数据
3.2、LED灯点亮
四、程序源码
rt-thread-4.0.0-lpc1768 20190331.part1.rar
(9.5 MB, 下载次数: 8)
|
|