查看: 4620|回复: 0

[原创] LPC1768 Dev kit 开发板 + 11、rt-thread系统点亮LED指示灯

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 1550 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    152

    主题

    3239

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    8887
    最后登录
    2025-10-26
    发表于 2019-3-31 22:29:49 | 显示全部楼层 |阅读模式
    本帖最后由 TLLED 于 2019-3-31 22:32 编辑

        在上一帖子将thread系统运行在开发板上运行,这次将LED点亮程序移植到系统上   
        一、硬件部分
        5.png

       二、程序部分


        2.1、创建两个线程

    1. #include "platform.h"
    2. #include "ledt.h"

    3. //Uart线程入口
    4. static void uart_thread_entry(void* parameter)
    5. {
    6.         rt_uint32_t count=0;
    7.         while(1)
    8.         {
    9.                 rt_kprintf("uart thread count:%d\n",count++);
    10.                 rt_thread_delay(50);
    11.         }
    12. }
    13. //led线程入口
    14. static void led_thread_entry(void* parameter)
    15. {
    16.         rt_uint8_t led_bf=0;
    17.         while(1)
    18.         {
    19.                 led_bf=~led_bf;
    20.                 if(led_bf)
    21.                 {
    22.                         led_on();
    23.                         rt_kprintf("led open\n");
    24.                 }
    25.                 else
    26.                 {
    27.                         led_off();
    28.                         rt_kprintf("led close\n");
    29.                 }
    30.                 //rt_kprintf("led thread run");
    31.                
    32.                 rt_thread_delay(50);
    33.         }
    34. }


    35. //初始化
    36. void init_board(void)
    37. {
    38.         init_led();
    39. }



    40. //初始化线程
    41. void fun_init_thread_entry(void)
    42. {
    43.         rt_thread_t uart_thread;   //串口线程
    44.         rt_thread_t led_thread;   //LED指示灯线程
    45.         
    46.         //创建串口线程
    47.                
    48.                 uart_thread = rt_thread_create(
    49.                                                         "uart",                                                                //线程名称
    50.                                                         uart_thread_entry,                 //线程入口函数
    51.                                                         RT_NULL,                                                        //线程入口参数
    52.                                                         256,                                                                         //线程栈大小
    53.                                                         19,                                                                         //线程优先级
    54.                                                         20);                                                                        //线程时间片大小
    55.     if(uart_thread != RT_NULL)
    56.             rt_thread_startup(uart_thread);

    57.         //创建LED指示灯线程
    58.         led_thread = rt_thread_create(
    59.                                                         "led",                                                                //线程名称
    60.                                                         led_thread_entry,                 //线程入口函数
    61.                                                         RT_NULL,                                                        //线程入口参数
    62.                                                         256,                                                                         //线程栈大小
    63.                                                         18,                                                                         //线程优先级
    64.                                                         20);                                                                        //线程时间片大小
    65.     if(led_thread != RT_NULL)
    66.             rt_thread_startup(led_thread);
    67. }
    复制代码

        2.2、LED程序
       

    1. //led.c
    2. #include <LPC17xx.H>

    3. //LED初始化
    4. void init_led(void)
    5. {
    6.         LPC_GPIO0->FIODIR  = (1<<7);
    7. }

    8. //打开LED
    9. void led_on (void)
    10. {
    11.         LPC_GPIO0->FIOPIN |=  (1<<7);
    12. }

    13. //关闭LED
    14. void led_off (void)
    15. {              
    16.         LPC_GPIO0->FIOPIN &= ~(1<<7);
    17. }
    复制代码
        三、运行效果
      
        3.1、串口输出数据


        6.png
      
        3.2、LED灯点亮
        100.gif


        四、程序源码


        rt-thread-4.0.0-lpc1768 20190331.part1.rar (9.5 MB, 下载次数: 8)
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-10-29 14:47 , Processed in 0.088019 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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