国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

HI3861學習筆記(13)——PWM接口使用

spademan / 3015人閱讀

摘要:一簡介脈沖寬度調制,是英文的縮寫,簡稱脈寬調試。是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。廣泛應用在從測量通信到功率控制與變換的許多領域中。功能設置引腳功能函數定義參數表示引腳號表示復用功能返回錯誤碼以下接口位于。

一、簡介

1.1 PWM

脈沖寬度調制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調試。 是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。廣泛應用在從測量、通信到功率控制與變換的許多領域中。

例如上圖中,圖b)是微處理輸出的數字信號,實際上他接到電機等功率設備上時,效果相當于圖a)。這就是PWM調制。例如輸出占空比為50%,頻率為10Hz的脈沖,高電平為3.3V.則其輸出的模擬效果相當于輸出一個1.65V的高電平。脈沖調制有兩個重要的參數,第一個就是輸出頻率,頻率越高,則模擬的效果越好。第二個就是占空比。占空比就是改變輸出模擬效果的電壓大小。占空比越大則模擬出的電壓越大。

1.2 GPIO復用功能

HI3861V100 芯片有 15 個 GPIO,引腳分布如下:


其中 PWM 端口有 6 個,每個 GPIO 可復用成 PWM 的端口如下:

Pin管腳名稱復用信號
2GPIO_00PWM3_OUT
3GPIO_01PWM4_OUT
4GPIO_02PWM2_OUT
5GPIO_03PWM5_OUT
6GPIO_04PWM1_OUT
17GPIO_05PWM2_OUT
18GPIO_06PWM3_OUT
19GPIO_07PWM0_OUT
20GPIO_08PWM1_OUT
27GPIO_09PWM0_OUT
28GPIO_10PWM1_OUT
29GPIO_11PWM2_OUT
30GPIO_12PWM3_OUT
31GPIO_13PWM4_OUT
32GPIO_14PWM5_OUT

二、API說明

以下 GPIO 接口位于 base/iot_hardware/interfaces/kits/wifiiot_lite/wifiiot_gpio.h

2.1 GpioInit

功能初始化GPIO外設
函數定義unsigned int GpioInit(void)
參數
返回錯誤碼

2.2 GpioSetDir

功能設置GPIO輸出方向
函數定義unsigned int GpioSetDir(WifiIotGpioIdx id, WifiIotGpioDir dir)
參數id:表示GPIO引腳號
dir:表示GPIO輸出方向
返回錯誤碼

以下擴展 GPIO 接口位于 base/iot_hardware/interfaces/kits/wifiiot_lite/wifiiot_gpio_ex.h

2.3 IoSetFunc

功能設置GPIO引腳功能
函數定義unsigned int IoSetFunc(WifiIotIoName id, unsigned char val)
參數id:表示GPIO引腳號
val:表示IO復用功能
返回錯誤碼

以下 PWM 接口位于 base/iot_hardware/interfaces/kits/wifiiot_lite/wifiiot_pwm.h

業務BUILD.gn中包含路徑

include_dirs = [        "http://utils/native/lite/include",        "http://kernel/liteos_m/components/cmsis/2.0",        "http://base/iot_hardware/interfaces/kits/wifiiot_lite",    ]

2.5 PwmInit

功能初始化PWM功能
函數定義unsigned int PwmInit (WifiIotPwmPort port)
參數port:初始化PWM端口號
返回錯誤碼

2.6 PwmStart

功能根據輸入參數輸出PWM信號
函數定義unsigned int PwmStart(WifiIotPwmPort port, unsigned short duty, unsigned short freq)
參數port:PWM端口號
duty:占空比
freq:分頻倍數
返回錯誤碼

2.7 PwmStop

功能關閉PWM輸出信號
函數定義unsigned int PwmStop(WifiIotPwmPort port)
參數port:初始化PWM端口號
返回錯誤碼

三、使用GPIO的PWM功能實現呼吸燈的效果

編譯時在業務BUILD.gn中包含路徑

include_dirs = [        "http://utils/native/lite/include",        "http://kernel/liteos_m/components/cmsis/2.0",        "http://base/iot_hardware/interfaces/kits/wifiiot_lite",    ]

使用板載的LED來驗證GPIO的PWM功能,在BearPi-HM_Nano開發板上LED的連接電路圖如下圖所示,LED的控制引腳與主控芯片的GPIO_2連接,所以需要編寫軟件去控制GPIO_2輸出PWM波實現呼吸燈的效果。

#include #include #include "ohos_init.h"#include "cmsis_os2.h"#include "wifiiot_pwm.h"#include "wifiiot_gpio.h"#include "wifiiot_gpio_ex.h"#define PWM_TASK_STACK_SIZE 512#define PWM_TASK_PRIO 25static void PWMTask(void){    unsigned int i;    //初始化GPIO    GpioInit();    //設置GPIO_2引腳復用功能為PWM    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_PWM2_OUT);    //設置GPIO_2引腳為輸出模式    GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_GPIO_DIR_OUT);    //初始化PWM2端口    PwmInit(WIFI_IOT_PWM_PORT_PWM2);    while (1)    {        for (i = 0; i < 40000; i += 100)        {            //輸出不同占空比的PWM波            PwmStart(WIFI_IOT_PWM_PORT_PWM2, i, 40000);            usleep(10);        }        i = 0;    }}static void PWMExampleEntry(void){    osThreadAttr_t attr;    attr.name = "PWMTask";    attr.attr_bits = 0U;    attr.cb_mem = NULL;    attr.cb_size = 0U;    attr.stack_mem = NULL;    attr.stack_size = 512;    attr.priority = 25;    if (osThreadNew((osThreadFunc_t)PWMTask, NULL, &attr) == NULL)    {        printf("Falied to create PWMTask!/n");    }}APP_FEATURE_INIT(PWMExampleEntry);

? 由 Leung 寫于 2021 年 10 月 9 日

? 參考:【鴻蒙2.0設備開發教程】小熊派HarmonyOS 鴻蒙·季 開發教程

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122123.html

相關文章

  • 51單片機學習筆記001-----51單片機基礎構造淺介紹

    摘要:單片機在一片集成電路芯片上集成微處理器存儲器接口電路,從而構成了單芯片微型計算機,即單片機。沒搞懂專欄咋弄的,慢慢摸索吧,本人純新手,讀書人的事沒啥要臉不要臉的,有問題隨便指出,隨便噴,歡迎來指點 2021-9-25 自己手繪的一張圖,算是簡單的介紹吧? 對照實圖看一下 ? ? ? ?...

    int64 評論0 收藏0
  • STM32CubeMX筆記(9)--定時器生成PWM特定波形,控制舵機轉動

    摘要:只能在度到度之間運動,超過范圍,舵機輕則齒輪打壞,重則燒壞內部電路舵機能度轉動能控制轉速。相關定時器的參數設置定時器為例編寫相關的函數文件相關函數開啟添加定時器的通道和通道的生成開啟使能函數,放置于到中的用戶代碼區。 ...

    darryrzhong 評論0 收藏0
  • Hi3516開發筆記(三):Hi3516虛擬機基礎環境搭建之交叉編譯環境境搭建以及開機啟動腳本分析

    摘要:海思交叉編譯虛擬機搭建查看開發板提供的引導文檔,先搭建的基礎軟件軟件,然后再解壓交叉編譯器搭建交叉編譯的環境。 前言  前面進行了可以傳輸,那么寫一個簡單的C程序來交叉編譯并傳入運行。虛擬機  上一篇搭建的虛擬機環境,包含了sftp傳遞文件,網絡能ping通,基于上一篇的...

    番茄西紅柿 評論0 收藏2637
  • Syscan360會議胸牌破解揭秘

    摘要:會議胸牌破解揭秘背景有幸參加今年月份的上海安全會議,會議期間有一個亮點就是的獨角獸團隊設計了一款電子胸牌供參加人員進行破解嘗試,類似于美國上面的那種解密的比賽,在參會現場的人都可以參加這種破解,總共道題,規則是現場會給每道題謎面,在這塊胸牌 Syscan360會議胸牌破解揭秘 背景 有幸參加今年11月份的上海Syscan360安全會議,會議期間有一個亮點就是360的獨角獸團隊設計了一款...

    Alex 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<