RTL8762DK 点灯/LED(三)

本文详细介绍了在RTL8762DK开发板上点亮LED的步骤,包括所需的硬件环境(RTL8762DK + 128M Bits Flash),使用keil IDE的软件环境,以及具体的代码修改和创建过程。通过添加rtl876x_gpio.c驱动文件,新建led.c、led.h,并在main.c中进行相应配置,最终实现了LED的点亮。
摘要由CSDN通过智能技术生成

概述

        本示例,只要介绍,如何点亮一盏灯,又离成功进了一步 ^_^。

一、环境

1、硬件  (RTL8762DK + 128M Bits Falsh)

2、软件(keil IDE)

二、点灯/LED

1、基于上一篇基础上修改,即可。

 

 2、打开此工程

添加 rtl876x_gpio.c驱动文件
路径为:SBEE2-SDK-UPPERSTACK-IMAGE-_V1.0.0\src\mcu\peripheral\rtl876x_gpio.c

 3、新建led.c、led.h文件,把他俩放在 led 文件夹即可
       
  1)、led.h

#ifndef _LED_H_
#define _LED_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "rtl876x_gpio.h"
#include "rtl876x_pinmux.h"
#include "rtl876x_rcc.h"
	

void board_led_gpio_init(void);
void driver_led_gpio_init(void);
void gpio_led_demo(void);
	
	
	
	
#ifdef __cplusplus
}
#endif	
	
	
#endif



2)、led.c

#include "led.h"
#include "os_timer.h"
#include "os_sched.h"
#include "locale.h"
#include "data_uart.h"
#include "board.h"


void * m_led_timer = NULL;
static void led_timer_create(void);

/**
  * @brief  Initialization of pinmux settings and pad settings.
  * @param  No parameter.
  * @return void
  */
void board_led_gpio_init(void)
{
    Pad_Config(GPIO_OUTPUT_PIN_2, PAD_PINMUX_MODE, PAD_IS_PWRON, PAD_PULL_NONE, PAD_OUT_ENABLE,
               PAD_OUT_HIGH);

    Pinmux_Config(GPIO_OUTPUT_PIN_2, DWGPIO);
}

/**
  * @brief  Initialize GPIO peripheral.
  * @param  No parameter.
  * @return void
  */
void driver_led_gpio_init(void)
{
    /* Initialize GPIO peripheral */
    RCC_PeriphClockCmd(APBPeriph_GPIO, APBPeriph_GPIO_CLOCK, ENABLE);

    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin    = GPIO_PIN_OUTPUT;
    GPIO_InitStruct.GPIO_Mode   = GPIO_Mode_OUT;
    GPIO_InitStruct.GPIO_ITCmd  = DISABLE;
    GPIO_Init(&GPIO_InitStruct);
}


void gpio_led_demo(void)
{
    /* Configure pad and pinmux firstly! */
    board_led_gpio_init();

    /* Initialize gpio peripheral */
    driver_led_gpio_init();
		
		led_timer_create();
}


static void timerout_handler(void)
{
	/* Light up LED0 */
  GPIO_WriteBit(GPIO_PIN_OUTPUT, (BitAction)(1));
	data_uart_print(">> led on  <<\r\n");
	os_delay(1000);
	/* Lights out LED0 */
  GPIO_WriteBit(GPIO_PIN_OUTPUT, (BitAction)(0));
	data_uart_print(">> led off  <<\r\n");
	os_delay(1000);
}

static void led_timer_create(void)
{
	if (m_led_timer == NULL) {
		os_timer_create(&m_led_timer, "m_led_timer", 1, 500, true, timerou
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ch_champion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值