成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

HI3861學(xué)習(xí)筆記(13)——PWM接口使用

spademan / 3133人閱讀

摘要:一簡(jiǎn)介脈沖寬度調(diào)制,是英文的縮寫,簡(jiǎn)稱脈寬調(diào)試。是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。廣泛應(yīng)用在從測(cè)量通信到功率控制與變換的許多領(lǐng)域中。功能設(shè)置引腳功能函數(shù)定義參數(shù)表示引腳號(hào)表示復(fù)用功能返回錯(cuò)誤碼以下接口位于。

一、簡(jiǎn)介

1.1 PWM

脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡(jiǎn)稱脈寬調(diào)試。 是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。

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

1.2 GPIO復(fù)用功能

HI3861V100 芯片有 15 個(gè) GPIO,引腳分布如下:


其中 PWM 端口有 6 個(gè),每個(gè) GPIO 可復(fù)用成 PWM 的端口如下:

Pin管腳名稱復(fù)用信號(hào)
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外設(shè)
函數(shù)定義unsigned int GpioInit(void)
參數(shù)無(wú)
返回錯(cuò)誤碼

2.2 GpioSetDir

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

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

2.3 IoSetFunc

功能設(shè)置GPIO引腳功能
函數(shù)定義unsigned int IoSetFunc(WifiIotIoName id, unsigned char val)
參數(shù)id:表示GPIO引腳號(hào)
val:表示IO復(fù)用功能
返回錯(cuò)誤碼

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

業(yè)務(wù)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功能
函數(shù)定義unsigned int PwmInit (WifiIotPwmPort port)
參數(shù)port:初始化PWM端口號(hào)
返回錯(cuò)誤碼

2.6 PwmStart

功能根據(jù)輸入?yún)?shù)輸出PWM信號(hào)
函數(shù)定義unsigned int PwmStart(WifiIotPwmPort port, unsigned short duty, unsigned short freq)
參數(shù)port:PWM端口號(hào)
duty:占空比
freq:分頻倍數(shù)
返回錯(cuò)誤碼

2.7 PwmStop

功能關(guān)閉PWM輸出信號(hào)
函數(shù)定義unsigned int PwmStop(WifiIotPwmPort port)
參數(shù)port:初始化PWM端口號(hào)
返回錯(cuò)誤碼

三、使用GPIO的PWM功能實(shí)現(xiàn)呼吸燈的效果

編譯時(shí)在業(yè)務(wù)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來(lái)驗(yàn)證GPIO的PWM功能,在BearPi-HM_Nano開發(fā)板上LED的連接電路圖如下圖所示,LED的控制引腳與主控芯片的GPIO_2連接,所以需要編寫軟件去控制GPIO_2輸出PWM波實(shí)現(xiàn)呼吸燈的效果。

#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();    //設(shè)置GPIO_2引腳復(fù)用功能為PWM    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_PWM2_OUT);    //設(shè)置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設(shè)備開發(fā)教程】小熊派HarmonyOS 鴻蒙·季 開發(fā)教程

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/122123.html

相關(guān)文章

  • 51單片機(jī)學(xué)習(xí)筆記001-----51單片機(jī)基礎(chǔ)構(gòu)造淺介紹

    摘要:?jiǎn)纹瑱C(jī)在一片集成電路芯片上集成微處理器存儲(chǔ)器接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),即單片機(jī)。沒搞懂專欄咋弄的,慢慢摸索吧,本人純新手,讀書人的事沒啥要臉不要臉的,有問題隨便指出,隨便噴,歡迎來(lái)指點(diǎn) 2021-9-25 自己手繪的一張圖,算是簡(jiǎn)單的介紹吧? 對(duì)照實(shí)圖看一下 ? ? ? ?...

    int64 評(píng)論0 收藏0
  • STM32CubeMX筆記(9)--定時(shí)器生成PWM特定波形,控制舵機(jī)轉(zhuǎn)動(dòng)

    摘要:只能在度到度之間運(yùn)動(dòng),超過范圍,舵機(jī)輕則齒輪打壞,重則燒壞內(nèi)部電路舵機(jī)能度轉(zhuǎn)動(dòng)能控制轉(zhuǎn)速。相關(guān)定時(shí)器的參數(shù)設(shè)置定時(shí)器為例編寫相關(guān)的函數(shù)文件相關(guān)函數(shù)開啟添加定時(shí)器的通道和通道的生成開啟使能函數(shù),放置于到中的用戶代碼區(qū)。 ...

    darryrzhong 評(píng)論0 收藏0
  • Hi3516開發(fā)筆記(三):Hi3516虛擬機(jī)基礎(chǔ)環(huán)境搭建之交叉編譯環(huán)境境搭建以及開機(jī)啟動(dòng)腳本分析

    摘要:海思交叉編譯虛擬機(jī)搭建查看開發(fā)板提供的引導(dǎo)文檔,先搭建的基礎(chǔ)軟件軟件,然后再解壓交叉編譯器搭建交叉編譯的環(huán)境。 前言  前面進(jìn)行了可以傳輸,那么寫一個(gè)簡(jiǎn)單的C程序來(lái)交叉編譯并傳入運(yùn)行。虛擬機(jī)  上一篇搭建的虛擬機(jī)環(huán)境,包含了sftp傳遞文件,網(wǎng)絡(luò)能ping通,基于上一篇的...

    番茄西紅柿 評(píng)論0 收藏2637
  • Syscan360會(huì)議胸牌破解揭秘

    摘要:會(huì)議胸牌破解揭秘背景有幸參加今年月份的上海安全會(huì)議,會(huì)議期間有一個(gè)亮點(diǎn)就是的獨(dú)角獸團(tuán)隊(duì)設(shè)計(jì)了一款電子胸牌供參加人員進(jìn)行破解嘗試,類似于美國(guó)上面的那種解密的比賽,在參會(huì)現(xiàn)場(chǎng)的人都可以參加這種破解,總共道題,規(guī)則是現(xiàn)場(chǎng)會(huì)給每道題謎面,在這塊胸牌 Syscan360會(huì)議胸牌破解揭秘 背景 有幸參加今年11月份的上海Syscan360安全會(huì)議,會(huì)議期間有一個(gè)亮點(diǎn)就是360的獨(dú)角獸團(tuán)隊(duì)設(shè)計(jì)了一款...

    Alex 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<