摘要:一簡介脈沖寬度調制,是英文的縮寫,簡稱脈寬調試。是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。廣泛應用在從測量通信到功率控制與變換的許多領域中。功能設置引腳功能函數定義參數表示引腳號表示復用功能返回錯誤碼以下接口位于。
脈沖寬度調制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調試。 是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。廣泛應用在從測量、通信到功率控制與變換的許多領域中。
例如上圖中,圖b)是微處理輸出的數字信號,實際上他接到電機等功率設備上時,效果相當于圖a)。這就是PWM調制。例如輸出占空比為50%,頻率為10Hz的脈沖,高電平為3.3V.則其輸出的模擬效果相當于輸出一個1.65V的高電平。脈沖調制有兩個重要的參數,第一個就是輸出頻率,頻率越高,則模擬的效果越好。第二個就是占空比。占空比就是改變輸出模擬效果的電壓大小。占空比越大則模擬出的電壓越大。
HI3861V100 芯片有 15 個 GPIO,引腳分布如下:
其中 PWM 端口有 6 個,每個 GPIO 可復用成 PWM 的端口如下:
Pin | 管腳名稱 | 復用信號 |
---|---|---|
2 | GPIO_00 | PWM3_OUT |
3 | GPIO_01 | PWM4_OUT |
4 | GPIO_02 | PWM2_OUT |
5 | GPIO_03 | PWM5_OUT |
6 | GPIO_04 | PWM1_OUT |
17 | GPIO_05 | PWM2_OUT |
18 | GPIO_06 | PWM3_OUT |
19 | GPIO_07 | PWM0_OUT |
20 | GPIO_08 | PWM1_OUT |
27 | GPIO_09 | PWM0_OUT |
28 | GPIO_10 | PWM1_OUT |
29 | GPIO_11 | PWM2_OUT |
30 | GPIO_12 | PWM3_OUT |
31 | GPIO_13 | PWM4_OUT |
32 | GPIO_14 | PWM5_OUT |
以下 GPIO 接口位于 base/iot_hardware/interfaces/kits/wifiiot_lite/wifiiot_gpio.h。
功能 | 初始化GPIO外設 |
---|---|
函數定義 | unsigned int GpioInit(void) |
參數 | 無 |
返回 | 錯誤碼 |
功能 | 設置GPIO輸出方向 |
---|---|
函數定義 | unsigned int GpioSetDir(WifiIotGpioIdx id, WifiIotGpioDir dir) |
參數 | id:表示GPIO引腳號 dir:表示GPIO輸出方向 |
返回 | 錯誤碼 |
以下擴展 GPIO 接口位于 base/iot_hardware/interfaces/kits/wifiiot_lite/wifiiot_gpio_ex.h。
功能 | 設置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", ]
功能 | 初始化PWM功能 |
---|---|
函數定義 | unsigned int PwmInit (WifiIotPwmPort port) |
參數 | port:初始化PWM端口號 |
返回 | 錯誤碼 |
功能 | 根據輸入參數輸出PWM信號 |
---|---|
函數定義 | unsigned int PwmStart(WifiIotPwmPort port, unsigned short duty, unsigned short freq) |
參數 | port:PWM端口號 duty:占空比 freq:分頻倍數 |
返回 | 錯誤碼 |
功能 | 關閉PWM輸出信號 |
---|---|
函數定義 | unsigned int PwmStop(WifiIotPwmPort port) |
參數 | port:初始化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 日
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122123.html
摘要:單片機在一片集成電路芯片上集成微處理器存儲器接口電路,從而構成了單芯片微型計算機,即單片機。沒搞懂專欄咋弄的,慢慢摸索吧,本人純新手,讀書人的事沒啥要臉不要臉的,有問題隨便指出,隨便噴,歡迎來指點 2021-9-25 自己手繪的一張圖,算是簡單的介紹吧? 對照實圖看一下 ? ? ? ?...
摘要:只能在度到度之間運動,超過范圍,舵機輕則齒輪打壞,重則燒壞內部電路舵機能度轉動能控制轉速。相關定時器的參數設置定時器為例編寫相關的函數文件相關函數開啟添加定時器的通道和通道的生成開啟使能函數,放置于到中的用戶代碼區。 ...
摘要:海思交叉編譯虛擬機搭建查看開發板提供的引導文檔,先搭建的基礎軟件軟件,然后再解壓交叉編譯器搭建交叉編譯的環境。 前言 前面進行了可以傳輸,那么寫一個簡單的C程序來交叉編譯并傳入運行。虛擬機 上一篇搭建的虛擬機環境,包含了sftp傳遞文件,網絡能ping通,基于上一篇的...
摘要:會議胸牌破解揭秘背景有幸參加今年月份的上海安全會議,會議期間有一個亮點就是的獨角獸團隊設計了一款電子胸牌供參加人員進行破解嘗試,類似于美國上面的那種解密的比賽,在參會現場的人都可以參加這種破解,總共道題,規則是現場會給每道題謎面,在這塊胸牌 Syscan360會議胸牌破解揭秘 背景 有幸參加今年11月份的上海Syscan360安全會議,會議期間有一個亮點就是360的獨角獸團隊設計了一款...
閱讀 1551·2023-04-26 02:29
閱讀 3016·2021-10-11 10:58
閱讀 2894·2021-10-08 10:16
閱讀 3155·2021-09-24 09:47
閱讀 1563·2019-08-29 16:56
閱讀 2711·2019-08-29 11:03
閱讀 1992·2019-08-26 13:35
閱讀 3167·2019-08-26 13:34