【鴻蒙開發】Hi3861學習筆記- GPIO之LED

00. 目錄

文章目錄

    • 00. 目錄
    • 01. GPIO概述
    • 02. 硬件設計
    • 03. 軟件設計
    • 04. 實驗現象
    • 05. 附錄

01. GPIO概述

GPIO(General-purpose input/output)即通用型輸入輸出。通常,GPIO控制器通過分組的方式管理所有GPIO管腳,每組GPIO有一個或多個寄存器與之關聯,通過讀寫寄存器完成對GPIO管腳的操作。

GPIO又俗稱為I/O口,I指的是輸入(in),O指的是輸出(out)。可以通過軟件來控制其輸入和輸出,即I/O控制。

  • GPIO輸入

    輸入是檢測各個引腳上的電平狀態,高電平或者低電平狀態。常見的輸入模式有:模擬輸入、浮空輸入、上拉輸入、下拉輸入。

  • GPIO輸出

    輸出是當需要控制引腳電平的高低時需要用到輸出功能。常見的輸出模式有:開漏輸出、推挽輸出、復用開漏輸出、復用推挽輸出。

02. 硬件設計

讓 LED 燈閃爍,即讓 GPIO 輸出高或低電平,對芯片來說,高電平約 3.3V,低電平約 0V。
在這里插入圖片描述

從網絡標號可知,LED 與芯片的 IO2 管腳連接,當該引腳輸出高電平時,LED點亮,輸出低電平時,LED 熄滅。

03. 軟件設計

bsp_led.h

#ifndef BSP_LED_H
#define BSP_LED_H#include "cmsis_os2.h"
#include "hi_io.h"
#include "hi_gpio.h"//管腳定義
#define LED_PIN         HI_IO_NAME_GPIO_2
#define LED_GPIO_FUN    HI_IO_FUNC_GPIO_2_GPIO#define LED(a)          hi_gpio_set_ouput_val(LED_PIN,a)//函數聲明
void led_init(void);#endif

bsp_led.c

#include "bsp_led.h"//LED初始化
void led_init(void)
{hi_gpio_init();                                            // GPIO初始化hi_io_set_pull(LED_PIN, HI_IO_PULL_DOWN);                  // 設置GPIO下拉hi_io_set_func(LED_PIN, LED_GPIO_FUN);                      // 設置IO為GPIO功能hi_gpio_set_dir(LED_PIN, HI_GPIO_DIR_OUT);                 // 設置GPIO為輸出模式
}

template.c

#include <stdio.h>
#include <unistd.h>#include "ohos_init.h"
#include "cmsis_os2.h"#include "bsp_led.h"//LED任務
osThreadId_t LED_Task_ID; //led任務IDvoid LED_Task(void)
{led_init();//LED初始化while (1) {LED(1); usleep(200*1000); //200msLED(0);usleep(200*1000); //200ms}
}
//LED任務創建
void led_task_create(void)
{osThreadAttr_t taskOptions;taskOptions.name = "LEDTask";            // 任務的名字taskOptions.attr_bits = 0;               // 屬性位taskOptions.cb_mem = NULL;               // 堆空間地址taskOptions.cb_size = 0;                 // 堆空間大小taskOptions.stack_mem = NULL;            // 棧空間地址taskOptions.stack_size = 1024;           // 棧空間大小 單位:字節taskOptions.priority = osPriorityNormal; // 任務的優先級LED_Task_ID = osThreadNew((osThreadFunc_t)LED_Task, NULL, &taskOptions); // 創建任務1if (LED_Task_ID != NULL){printf("ID = %d, Create LED_Task_ID is OK!\n", LED_Task_ID);}
}/*** @description: 初始化并創建任務* @param {*}* @return {*}*/
static void template_demo(void)
{printf("-Hi3861開發板--LED實驗\r\n");led_task_create();//LED任務
}
SYS_RUN(template_demo);

04. 實驗現象

實驗現象:LED 閃爍。

05. 附錄

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73348.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73348.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73348.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

你的完美主義:從缺陷到超能力

所屬專欄&#xff1a;《邏輯辨證系列》 前情回顧&#xff1a; 《完美還是完成》&#xff08;一&#xff09;&#xff1a;完成還是完美—完成大于完美 時間、機會、情緒成本 先完成 … 本期&#xff1a; 《完美還是完成》&#xff08;二&#xff09;&#xff1a;你的完美主…

438.找出字符串中所有字母異位詞

題目&#xff1a; 給定兩個字符串 s 和 p&#xff0c;找到 s 中所有 p 的 異位詞 的子串&#xff0c;返回這些子串的起始索引。不考慮答案輸出的順序。 示例 1: 輸入: s "cbaebabacd", p "abc" 輸出: [0,6] 解釋: 起始索引等于 0 的子串是 "cba&q…

win32匯編環境,對話框程序中創建托盤示例一

;運行效果 ;win32匯編環境,對話框程序中創建托盤示例一 ;托盤&#xff0c;就是電腦桌面右下角那個角落里的圖標&#xff0c;這里展示基本的應用方法。 ;直接抄進RadAsm可編譯運行。重要部分加備注。 ;下面為asm文件 ;>>>>>>>>>>>>>>…

Ansible相關工具:ansible-doc、ansible

文章目錄 管理方式相關工具ansible-doc命令用法案例 ansibleansible主配置文件日志文件主機清單 ansible命令基本格式&#xff1a;選項說明&#xff1a;ansible的Host-pattern或關系邏輯與邏輯非正則表達式 ansible命令執行過程ansible 的執行狀態 管理方式 利用ansible實現管…

LeetCode 熱題 100_前 K 個高頻元素(73_347_中等_C++)(堆)(哈希表+排序;哈希表+優先隊列(小根堆))

LeetCode 熱題 100_前 K 個高頻元素&#xff08;73_347&#xff09; 題目描述&#xff1a;輸入輸出樣例&#xff1a;題解&#xff1a;解題思路&#xff1a;思路一&#xff08;哈希表排序&#xff09;&#xff1a;思路二&#xff08;哈希表優先隊列&#xff08;小根堆&#xff0…

使用Python在Word中生成多種不同類型的圖表

目錄 工具與環境配置 在 Word 中創建圖表的步驟 在Word中創建柱形圖 在Word中創建條形圖 在Word中創建折線圖 在Word中創建餅圖 在Word中創建散點圖 在Word中創建氣泡圖 在 Word 文檔中插入圖表不僅能更直觀地呈現數據&#xff0c;還能提升文檔的可讀性和專業性。常見的…

項目-個人博客測試報告

目錄 一、項目背景 二、項目功能 三、測試計劃 &#xff08;1&#xff09;功能測試 &#xff08;2&#xff09;自動化測試 &#xff08;3&#xff09;性能測試 一、項目背景 1、個人博客系統是一個操作簡單的基于Spring前后端分離的項目&#xff0c;同時使用MySQL數據庫來進…

前端npm包- CropperJS

文章目錄 一、CropperJS**核心特性****官網與文檔****安裝與使用**1. **通過 npm/yarn/pnpm 安裝**2. **HTML 結構**3. **引入 CSS 和 JS**4. **初始化裁剪器** **相關插件/替代方案****適用場景****注意事項** 總結 一、CropperJS cropperjs 是一個輕量級、功能強大的 圖片裁…

楊輝三角形(信息學奧賽一本通-2043)

【題目描述】 例5.11 打印楊輝三角形的前n(2≤n≤20)行。楊輝三角形如下圖&#xff1a; 當n5時 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 輸出&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 【輸入】 輸入行數n。 【輸出】 輸出如題述三角形。n行&#…

圖論入門【數據結構基礎】:什么是圖?如何表示圖?

圖&#xff08;Graph&#xff09; 是一種非線性數據結構&#xff0c;用于表示對象之間的關系。圖由 頂點&#xff08;Vertex&#xff09; 和 邊&#xff08;Edge&#xff09; 組成&#xff0c;其中頂點表示對象&#xff0c;邊表示對象之間的關系。圖廣泛應用于計算機科學、數學…

如何使用HACS一鍵集成米家與果家設備到HomeAssistant玩轉智能家居

文章目錄 前言1. 下載HACS源碼2. 添加HACS商店3. 綁定米家設備 前言 各位科技潮人和智能家居發燒友們&#xff0c;是不是也夢想著把家里變成一個高科技的空間&#xff1f;有了群暉NAS這位得力助手&#xff0c;不僅存儲空間大得嚇人&#xff0c;還能通過Docker輕松安裝各種應用…

《Java對象“比武場“:Comparable與Comparator的巔峰對決》

目錄 引言&#xff1a; 一、認識接口 1.1 Comparable 1.2 Comparator ?編輯 1.3 核心概念對比 二、代碼實現對比 2.1 Comparable 實現示例 2.2 Comparator 實例示例 三、核心區別詳解 3.1 設計理念差異 3.2 方法調用 3.3 使用情景 四、本質區別總結 引言&#x…

Android自動化測試工具

細解自動化測試工具 Airtest-CSDN博客 以下是幾種常見的Android應用自動化測試工具&#xff1a; Appium&#xff1a;支持多種編程語言&#xff0c;如Java、Python、Ruby、JavaScript等。可以用于Web應用程序和原生應用程序的自動化測試&#xff0c;并支持iOS和Android平臺。E…

Go vs Rust vs C++ vs Python vs Java:誰主后端沉浮

一、核心性能對比(基于TechEmpower基準測試) 語言單核QPS延遲(ms)內存消耗適用場景Rust650,0000.1245MB高頻交易/區塊鏈C++720,0000.0932MB游戲服務器/實時渲染Go230,0000.45110MB微服務/API網關Java180,0001.2450MB企業ERP/銀行系統Python12,0008.5220MBAI接口/快速原型技術…

vue3:八、登錄界面實現-頁面初始搭建、基礎實現

一、初始工作 1、創建登錄文件 在src/views中創建文件LoginView.vue文件 2、創建路由 在router/index.js中增加登錄的信息 代碼 import { createRouter, createWebHistory } from vue-router import HomeView from ../views/HomeView.vue const router createRouter({hist…

結構型模式之適配器模式:讓不兼容的接口兼容

在軟件開發中&#xff0c;經常會遇到這樣一種情況&#xff1a;系統的不同部分需要進行交互&#xff0c;但由于接口不兼容&#xff0c;導致無法直接使用。這時&#xff0c;適配器模式&#xff08;Adapter Pattern&#xff09;就能派上用場。適配器模式是設計模式中的結構型模式&…

Qt從入門到入土(十) -數據庫操作--SQLITE

認識 數據庫是用于存儲、管理和檢索數據的系統化集合。它是一種按照特定結構組織數據的存儲方式&#xff0c;通過軟件&#xff08;數據庫管理系統&#xff0c;DBMS&#xff09;來實現數據的高效存儲、查詢、更新和管理。通過文件存儲數據適用于少量的數據&#xff0c;而當擁有…

Django REST Framework中的序列化器類和視圖類

序列化器類 一、Serializer序列化類 Serializer是DRF的序列化器基類&#xff0c;提供基本功能&#xff0c;使用Serializer類需要自己定義字段名稱和類型。 BookSerializer(Serializer):name serializers.CharField()price serlializers.IntegerField()date serlializers.…

圖像分類數據集

《動手學深度學習》-3.5-學習筆記 # 通過ToTensor實例將圖像數據從PIL類型變換成32位浮點數格式&#xff0c; # 并除以255使得所有像素的數值均在0&#xff5e;1之間 trans transforms.ToTensor()#用于將圖像數據從 PIL 圖像格式&#xff08;Python Imaging Library&#xff…

架構師面試(十五):熔斷設計

問題 某電商平臺經常需要在大促運營活動中暫停評論、退款等業務&#xff0c;基于服務治理的設計理念&#xff0c;我們需要對該電商平臺微服務系統的【服務熔斷】進行設計&#xff0c;對此下面描述中說法正確的有哪幾項呢&#xff1f; A. 服務管控系統管理著平臺中所有服務之間…