文章目錄
前言
一、GPIO是什麼?
二、新建項目操作步驟(後續文章不再新建項目)
三、點亮LED代碼
四、編譯調試
由於未帶開發板,所有暫時未有實物展示效果,回頭補上
總結
前言
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 控制器
• 集成看門狗電路
各類説明都有!!!
此文不講述寄存器方式代碼!!!
一、GPIO是什麼?
LS1B0200 具有 61 位 GPIO,支持位操作。
當 GPIO 作為輸入時,高電平電壓範圍是 3.3V-5V, 低電平是 0V;
當 GPIO 作為輸出時,高電平是 3.3V,低電平是 0V;
GPIO 對應的所有 PAD 都 是推拉方式。
GPIO 引腳編號:GPIO00~GPIO61,但是沒有 GPIO31,共計 61 個引腳。
GPIO寄存器方式以及複用方式在羣內文檔中有介紹,在此不再贅述。
二、新建項目操作步驟(後續文章不再新建項目)
LED內部電路圖:
新建項目:
第一步:
第二步:
第三步:
第四步:
第五步:
新建項目完成:
三、點亮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;
}
編譯完成,無問題。
四、編譯調試
(1)點擊
圖標進行編譯,編譯無誤後,點擊
圖標,將程序下載到內存之 中。注意:此時代碼沒有下載到 nand flash 之中,按下復位鍵後,程序會消失。
(2)改延時時間,調整 LED 閃爍速度。
(3)修改程序,控制其它 3 個 LED 閃爍。
總結
要理解GPIO的工作方式以及庫函數的編寫方式。龍芯寫代碼讓我感覺特別像STM32CubeMX的方式,其實就是感覺初始化起來很簡單,用起來很方便,只有推拉方式。