0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)板上實(shí)現(xiàn)TCP電子琴

OpenHarmony技術(shù)社區(qū) ? 來源:OST開源開發(fā)者 ? 2023-05-15 09:33 ? 次閱讀

本文實(shí)現(xiàn)了用潤和 HiHope Pegasus 3861 開發(fā)板實(shí)現(xiàn) TCP 電子琴。

2e8b8474-f29d-11ed-90ce-dac502259ad0.png

樣例運(yùn)行的 OpenHarmony 源碼環(huán)境下載

https://gitee.com/HiSpark/hi3861_hdu_iot_application
通過本文您將了解:

HiHopePegasus 3861 開發(fā)環(huán)境選擇

HiHopePegasus 3861 連接 wifi

HiHopePegasus 3861 TCP 連接

HiHopePegasus 3861 環(huán)境監(jiān)測板上蜂鳴器的控制

TCP電子琴樣例運(yùn)行效果

3861 開發(fā)板作為 TCP 服務(wù)端與 TCP 客戶端(自己的設(shè)備)連接。

TCP 客戶端發(fā)送 12345678,控制開發(fā)板上環(huán)境拓展板上的蜂鳴器發(fā)出 duō lái mī fā suō lā xī duō 8 種音調(diào)。

樣例運(yùn)行步驟

①下載源文件

https://gitee.com/from-north-to-north/open-armony-north/tree/master/潤和3861輕量系統(tǒng)TCP電子琴

將源文件文件放置在命名為 TCP_keyboard_demo 的文件夾下,將其放置在 OpenHarmony 輕量系統(tǒng)源碼 applicationssamplewifi-iotapp 目錄下。

②修改 net_params.h 文件的相關(guān)代碼

如下:

PARAM_HOTSPOT_SSID 設(shè)置為要連接的熱點(diǎn)名稱

PARAM_HOTSPOT_PSK 設(shè)置為要連接的熱點(diǎn)秘碼

PARAM_SERVER_ADDR 設(shè)置為要連接的作為 TCP 客戶端的設(shè)備 IP 地址

PARAM_SERVER_PORT 設(shè)置 3861開發(fā)板(作為 TCP 服務(wù)端) TCP socket端口號(hào)

③在源碼 applicationssamplewifi-iotappBUILD.gn 文件 features 字段下添加"TCP_keyboard_demo:TCP_keyboard_demo",使樣例 demo 加入編譯。

④根據(jù) 3861 開發(fā)板的 ip(串口打印出來的)和 net_params.h 中填寫的 TCP socket 端口號(hào)創(chuàng)建客戶端,連接 3861 開發(fā)板。

2f11b256-f29d-11ed-90ce-dac502259ad0.png

主控芯片對應(yīng)關(guān)系

環(huán)境監(jiān)測板上蜂鳴器與主控芯片(Pegasus)引腳的對應(yīng)關(guān)系:GPIO9/PWM0。

源碼分析

文件說明:

2f46dde6-f29d-11ed-90ce-dac502259ad0.png

tcp_server_test.c 文件解析:

#include
#include
#include

#include

//TCP連接的部分
#include"net_demo.h"
#include"net_common.h"

/********************環(huán)境監(jiān)測板上蜂鳴器的部分*********************************/
#include"iot_gpio.h"
#include"iot_pwm.h"
#include"hi_pwm.h"
#include"hi_io.h"
#defineBEEP_PIN_NAME9
#defineBEEP_PIN_FUNCTION5
#defineWIFI_IOT_PWM_PORT_PWM00
#defineBEEP_PWM_DUTY50

/*********************************************************************/

#defineDELAY_1S(1)

voidTcpServerTest(unsignedshortport)
{

/********************環(huán)境監(jiān)測板上蜂鳴器的部分*********************************/
//初始化蜂鳴器
//蜂鳴器:GPIO9/PWM0
//環(huán)境監(jiān)測板上蜂鳴器與主控芯片(Pegasus)引腳的對應(yīng)關(guān)系GPIO9/PWM0
//IoTGpioInit用于初始化GPIO設(shè)備
IoTGpioInit(BEEP_PIN_NAME);
//hi_io_set_func用于配置某個(gè)IO的復(fù)用功能
hi_io_set_func(BEEP_PIN_NAME,BEEP_PIN_FUNCTION);
//IoTGpioSetDir用于設(shè)置GPIO引腳的方向
IoTGpioSetDir(BEEP_PIN_NAME,IOT_GPIO_DIR_OUT);
//IoTPwmInit用于初始化PWM設(shè)備
IoTPwmInit(WIFI_IOT_PWM_PORT_PWM0);

/***************************************************************************************/

ssize_tretval=0;
intbacklog=1;
intsockfd=socket(AF_INET,SOCK_STREAM,0);//TCPsocket
intconnfd=-1;

structsockaddr_inclientAddr={0};
socklen_tclientAddrLen=sizeof(clientAddr);
structsockaddr_inserverAddr={0};
serverAddr.sin_family=AF_INET;
serverAddr.sin_port=htons(port);//端口號(hào),從主機(jī)字節(jié)序轉(zhuǎn)為網(wǎng)絡(luò)字節(jié)序
serverAddr.sin_addr.s_addr=htonl(INADDR_ANY);//允許任意主機(jī)接入,0.0.0.0

/*************************************綁定端口****************************************************/
retval=bind(sockfd,(structsockaddr*)&serverAddr,sizeof(serverAddr));
if(retval

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1353

    瀏覽量

    79068
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5046

    瀏覽量

    97437
  • 電子琴
    +關(guān)注

    關(guān)注

    4

    文章

    152

    瀏覽量

    30515
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2350

    瀏覽量

    42843
  • HiHope
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    3542

原文標(biāo)題:鴻蒙開發(fā)板上實(shí)現(xiàn)TCP電子琴

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    [求助]我電腦聲音想輸出到電子琴,能不能直接把耳機(jī)線接到電子琴喇叭,具體怎么

    我電腦聲音想輸出到電子琴,能不能直接把耳機(jī)線接到電子琴喇叭,具體怎么做,請?jiān)敿?xì)給我說下!(相當(dāng)于把電子琴當(dāng)個(gè)音箱)這個(gè)
    發(fā)表于 06-03 23:23

    簡易電子琴仿真

    我用555定時(shí)器做了一個(gè)簡單的電子琴 有八個(gè)音節(jié) 但是聲音出不來 有哪位高人有簡易電子琴的proteus仿真啊
    發(fā)表于 05-25 11:35

    電子琴節(jié)拍

    有那位高手知道用51做的電子琴的節(jié)拍怎么確定啊,急求。。。
    發(fā)表于 06-28 22:57

    電子琴設(shè)計(jì)

    電子琴設(shè)計(jì)
    發(fā)表于 08-19 12:01 ?250次下載

    電子琴實(shí)驗(yàn)

    電子琴實(shí)驗(yàn) 一. 實(shí)驗(yàn)?zāi)康睦脤?shí)驗(yàn)儀提供的按鍵K1~K7 作為電子琴按鍵,控制蜂鳴器發(fā)聲,使用戶了解計(jì)算機(jī)發(fā)聲原理,熟悉定
    發(fā)表于 09-22 10:48 ?3794次閱讀
    <b class='flag-5'>電子琴</b>實(shí)驗(yàn)

    使用FPGA DIY開發(fā)板控制實(shí)現(xiàn)電子琴演奏功能

    wang1113的電子琴視頻。
    的頭像 發(fā)表于 06-22 00:58 ?3226次閱讀

    FPGA DIY開發(fā)板控制電子琴

    haohaolinux 的電子琴視頻 。
    的頭像 發(fā)表于 06-20 16:00 ?3689次閱讀

    如何基于51單片機(jī)做簡易的電子琴詳細(xì)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于51開發(fā)板做的簡易電子琴的詳細(xì)資料合集
    發(fā)表于 07-24 08:00 ?14次下載
    如何基于51單片機(jī)做簡易的<b class='flag-5'>電子琴</b>詳細(xì)資料合集免費(fèi)下載

    基于555的簡易電子琴設(shè)計(jì)

    偶爾玩兩下電子琴也是不錯(cuò)的
    的頭像 發(fā)表于 08-15 17:43 ?1.9w次閱讀

    使用單片機(jī)實(shí)現(xiàn)智能電子琴的設(shè)計(jì)資料合集

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用單片機(jī)實(shí)現(xiàn)智能電子琴的設(shè)計(jì)資料合集免費(fèi)下載
    發(fā)表于 03-12 08:00 ?30次下載
    使用單片機(jī)<b class='flag-5'>實(shí)現(xiàn)</b>智能<b class='flag-5'>電子琴</b>的設(shè)計(jì)資料合集

    基于FPGA的簡易電子琴實(shí)現(xiàn)

    本系統(tǒng)是采用EDA技術(shù)設(shè)計(jì)的一個(gè)簡易的八音符電子琴,該系統(tǒng)基于計(jì)算機(jī)中時(shí)鐘分頻器的原理,采用自頂向下的設(shè)計(jì)方法來實(shí)現(xiàn),它可以通過按鍵輸入來控制音響。多功能電子琴的設(shè)計(jì)是在原有普通電子琴
    發(fā)表于 04-28 11:16 ?45次下載

    基于STM32單片機(jī)的電子琴設(shè)計(jì)與實(shí)現(xiàn)

    基于STM32單片機(jī)的電子琴設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 06-27 09:25 ?121次下載

    電子琴的設(shè)計(jì)與實(shí)現(xiàn)

    電子琴
    發(fā)表于 05-31 16:48 ?26次下載

    基于FPGA的電子琴設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于FPGA的電子琴設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-10 09:40 ?11次下載
    基于FPGA的<b class='flag-5'>電子琴</b>設(shè)計(jì)

    電子琴設(shè)計(jì)資料

    電子發(fā)燒友網(wǎng)站提供《電子琴設(shè)計(jì)資料.pdf》資料免費(fèi)下載
    發(fā)表于 10-11 10:21 ?2次下載
    <b class='flag-5'>電子琴</b>設(shè)計(jì)資料