龙芯1B:点亮第一个led灯

导读:本篇文章讲解 龙芯1B:点亮第一个led灯,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

​​​​​​​ ​​​​​​​

 

龙芯1B:点亮第一个led灯
仅供学习

 

文章目录

前言

一、GPIO是什么?

二、新建项目操作步骤(后续文章不再新建项目)

三、点亮LED代码

四、编译调试

由于未带开发板,所有暂时未有实物展示效果,回头补上

总结


前言

大家好!大家点点关注,大家的关注才是我持续更新的动力!

 ba6a16c930e64faaa733031640e9f1de.png

ls1x-drv:开发板设备的通用驱动,包含 LS1B 所有控制器

core:启动文件和 LS1B 的管脚定义

libc:库文件

include:头文件 

以上是对文件夹的简要说明,方便学习!


随着龙芯1B嵌入式芯片的发展,学习之前一定要先看各类文件!

龙芯 1B 芯片是基于 GS232 处理器核的片上系统,具有高性价比,可广泛应用于工业控 制、家庭网关、信息家电、医疗器械和安全应用等领域。

1B 采用 Wire Bond BGA256 封装。

1B 芯片具有以下关键特性:

• 集成一个 GS232 双发射龙芯处理器核,指令和数据 L1 Cache 各 8KB

• 集成一路 LCD 控制器,最大分辨率可支持到 1920*1080@60Hz/16bit

• 集成 2 个 10M/100M 自适应 GMAC

• 集成 1 个 16/32 位 133MHz DDR2 控制器

• 集成 1 个 USB 2.0 接口,兼容 EHCI 和 OHCI

• 集成 1 个 8 位 NAND FLASH 控制器,最大支持 32GB

• 集成中断控制器,支持灵活的中断设置

• 集成 2 个 SPI 控制器,支持系统启动

• 集成 AC97 控制器 • 集成 1 个全功能串口、1 个四线串口和 10 个两线串口

• 集成 3 路 I2C 控制器,兼容 SMBUS • 集成 2 个 CAN 总线控制器

• 集成 61 个 GPIO 端口

• 集成 1 个 RTC 接口

• 集成 4 个 PWM 控制器

• 集成看门狗电路

7a16f4bee0184b408eaebdca66deb276.png

龙芯1B处理器手册下载链接

60a93d65434846538ea41d51e9871d91.png

各类说明都有!!!


此文不讲述寄存器方式代码!!!

一、GPIO是什么?

LS1B0200 具有 61 位 GPIO,支持位操作。

当 GPIO 作为输入时,高电平电压范围是 3.3V-5V, 低电平是 0V;

当 GPIO 作为输出时,高电平是 3.3V,低电平是 0V;

GPIO 对应的所有 PAD 都 是推拉方式。

GPIO 引脚编号:GPIO00~GPIO61,但是没有 GPIO31,共计 61 个引脚。

GPIO寄存器方式以及复用方式在群内文档中有介绍,在此不再赘述。

3741ad51df31495394ce35595bff5570.png

二、新建项目操作步骤(后续文章不再新建项目)

LED内部电路图:

39f6e3e728a04306945e3e3ebde89723.png

新建项目:

第一步:

3241ba38e7ab42959ae6141ef32e06b5.png

第二步:

a490bbe44eaf4358b6f5b48d9ce9163e.png

第三步:

825f805dbabe4737bfc540652d20def5.png

 第四步:

2b3801cd27ac4666b486fc1a6bf35fef.png

 第五步:

16811668f153406eb1d2b57f859c7a14.png

新建项目完成:

decc809a2c8d469c9ee8c3c54083a1a7.png

三、点亮LED代码

#include <stdio.h>

#include "ls1b.h"
#include "mips.h"

//-------------------------------------------------------------------------------------------------
// BSP
//-------------------------------------------------------------------------------------------------

#include "bsp.h"
#include "ls1b_gpio.h"
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------

#define LED1 44
#define LED2 45
#define LED3 46



#define ON  0
#define OFF 1


//LED初始化
 void LED_IO(void)
 {
    //设置GPIO为输出状态
    gpio_enable(LED3,DIR_OUT);
    gpio_enable(LED2,DIR_OUT);
    gpio_enable(LED1,DIR_OUT);
    
    gpio_write(LED3,OFF);
    gpio_write(LED2,OFF);
    gpio_write(LED1,OFF);
 }

//LED测试函数
 void LED_Test(void)
 {
    gpio_write(LED1,ON);
    delay_ms(100);
    gpio_write(LED1,OFF);
    gpio_write(LED2,ON);
    delay_ms(100);
    gpio_write(LED2,OFF);
    gpio_write(LED3,ON);
    delay_ms(100);
    gpio_write(LED3,OFF);
    
 }

int main(void)
{
    printk("\r\nmain() function.\r\n");
    LED_IO();

    for (;;)
    {
        LED_Test();
    }

    return 0;
}

编译完成,无问题。

026e8605f5a1438dba277b92b1622fdb.png

四、编译调试

(1)点击8462b14131ed44d998f09fe7e1cb0cff.png图标进行编译,编译无误后,点击e21c6cf2f3144c09825a1f7b4f4bd8bb.png图标,将程序下载到内存之 中。注意:此时代码没有下载到 nand flash 之中,按下复位键后,程序会消失。

(2)改延时时间,调整 LED 闪烁速度。

(3)修改程序,控制其它 3 个 LED 闪烁。

由于未带开发板,所有暂时未有实物展示效果,回头补上


总结

        要理解GPIO的工作方式以及库函数的编写方式。龙芯写代码让我感觉特别像STM32CubeMX的方式,其实就是感觉初始化起来很简单,用起来很方便,只有推拉方式。

源码链接:龙芯1B:点亮第一个led例程-嵌入式文档类资源-CSDN文库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/73690.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!