0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hi3861开发板与其它开发板的通信

OpenAtom OpenHarmony 来源:OpenAtom OpenHarmony 作者:张兵 2022-09-05 11:05 次阅读

张兵

就读于贵州黔南科技学院

首期OpenHarmony开源开发者成长计划“智能语音垃圾桶”项目开发者

一、搭建编译环境

1、下载虚拟机VMware和Ubuntu20.0.14

下载 VMware Workstation Pro | CN

https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

Ubuntu系统下载 | Ubuntu

https://cn.ubuntu.com/download

2、 安装vm完成后打开vm,点击创建新的虚拟机

a788a0cc-2ac1-11ed-ba43-dac502259ad0.png

3、选择典型点击下一步,选择下载的Ubuntu,点击下一步,创建完成后虚拟机自动安装Ubuntu

a7a17a70-2ac1-11ed-ba43-dac502259ad0.png

4、安装完成后获取OpenHarmony源码可参考

https://docs.openharmony.cn/pages/v3.1/zh-cn/device-dev/get-code/sourcecode-acquire.md/

5、安装编译工具

(1)安装Node.js 打开Ubuntu终端输入命令安装:
sudo apt-get install nodejssudo apt-get install npmnode --version   //查看nodejs版本npm--version//查看npm版本
(2)安装Python编译环境
sudo apt-get install python3.8sudo apt-get install python3-pipsudo pip3 install setuptoolssudo pip3 install kconfiglib sudo pip3 install pycryptodomesudo pip3 install six --upgrade --ignore-installed sixsudopip3installecdsa
(3) 安装SCons
python3 -m pip install sconsscons-v//查看版本
如图:

a7b56134-2ac1-11ed-ba43-dac502259ad0.png

(4)安装hb工具代码测试
python3 -m pip install --user ohos-buildvim ~/.bashrc                      //设置环境变量export PATH=~/.local/bin:$PATH        //将以下命令拷贝到.bashrc文件的最后一行,保存并退出source~/.bashrc//更新环境变量
执行"hb -h",有打印以下信息即表示安装成功。

a7cbc5e6-2ac1-11ed-ba43-dac502259ad0.png

(5) 安装gcc_riscv32

下载gcc_riscv32镜像

https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fharmonyos%2Fcompiler%2Fgcc_riscv32%2F7.3.0%2Flinux%2Fgcc_riscv32-linux-7.3.0.tar.gz

设置环境变量

将压缩包解压到根目录

tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~    //文件名需要与下载的文件相匹配设置环境变量。vim ~/.bashrc                      //设置环境变量export PATH=~/gcc_riscv32/bin:$PATH    //将以下命令拷贝到.bashrc文件的最后一行,保存并退出source ~/.bashrc            //更新环境变量riscv32-unknown-elf-gcc-v//显示版本号,则安装成功
6、修改usr_config.mk文件 文件在OpenHarmony源码目录下 device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk
CONFIG_I2C_SUPPORT=yCONFIG_PWM_SUPPORT=y
7、修改wifiservice文件夹 文件在OpenHarmony源码目录下 device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c
EnableHotspot函数中屏蔽如下字段     //if (SetHotspotIpConfig() != WIFI_SUCCESS) {     //    return ERROR_WIFI_UNKNOWN;     //}地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.cDispatchConnectEvent函数下 屏蔽StaSetWifiNetConfig相关代码行      //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);//StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);

二、创建项目文件夹

1、在OpenHarmony1.01版本创建一个项目demo

在源码目录下的vendor/team_x创建smart_demo

在scr里面添加我们写的代码:

a7f2ca56-2ac1-11ed-ba43-dac502259ad0.png

2、初始化uart串口

首先我们需要创建一个初始化uart串口的程序

将GPIO0初始化为tx端,将GPIO1初始化为rx端

void UartInit(void){    RaiseLog(LOG_LEVEL_INFO,"[2022012x01] entry into UartInit");    IoTGpioInit(HAL_WIFI_IOT_IO_NAME_GPIO_0);    HalIoSetFunc(HAL_WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_UART1_TXD);    IoTGpioInit(HAL_WIFI_IOT_IO_NAME_GPIO_1);    HalIoSetFunc(HAL_WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_UART1_RXD);     hi_uart_attribute uart_attr = {        .baud_rate = UART_BAUD_RATE,     /* baud_rate: 9600 */        .data_bits = UART_DATA_BITS,      /* data_bits: 8bits */        .stop_bits = UART_STOP_BITS,        .parity = 0,    }    RaiseLog(LOG_LEVEL_INFO,"[2022012x01] uart_init success");    /* Initialize uart driver */    hi_u32 ret = hi_uart_init(HI_UART_IDX_1, &uart_attr, HI_NULL);    if (ret != HI_ERR_SUCCESS)    {        printf("[Dustbin_tes3]Failed to init uart! Err code = %d
", ret);        return;    }}
3、创建线程任务
static void *uart_demo_task(void){    static uint16_t countSendTimes = 0;    static uint8_t countReceiveTimes = 0;    uartController.isReadBusy = false;    printf("[Initialize uart successfully
");    UartInit();    while (1)    {        osDelay(50);         UartReceiveMessage();//Collecting Serial Port Data        hi_sleep(SMART_BIN_SLEEP_2500MS);      }    return 0;}static void IotMainEntry(void){    osThreadAttr_t attr;    RaiseLog(LOG_LEVEL_INFO, "DATA:%s Time:%s 
", __FUNCTION__, __DATE__, __TIME__);
    // Create the IoT Main task    attr.attr_bits = 0U;    attr.cb_mem = NULL;    attr.cb_size = 0U;    attr.stack_mem = NULL    attr.stack_size = CONFIG_TASK_MAIN_STACKSIZE;    attr.priority = CONFIG_TASK_MAIN_PRIOR;    attr.name = "IoTMain";    (void) osThreadNew((osThreadFunc_t)uart_demo_task, NULL, (const osThreadAttr_t *)&attr);    return;}APP_FEATURE_INIT(IotMainEntry);
4、接收串口数据
static void UartReceiveMessage(void){    char *recData;    printf("----Listening----
");    RaiseLog(LOG_LEVEL_INFO,"Start Listening serial port");    if (UartIsBufEmpty())        {            return;        }        if (uartController.isReadBusy)        {            return;        }        uartController.isReadBusy = true;        g_ReceivedDatalen = hi_uart_read(UART_NUM, g_uart_buff, UART_BUFF_SIZE);        if (g_ReceivedDatalen > 0)        {            printf("handleUartReceiveMessage rcvData len:%d,msg:%s.
", g_ReceivedDatalen, g_uart_buff);                 setVoiceCommand();//Setting voice Commands            memset(g_uart_buff, 0, sizeof(g_uart_buff));            g_ReceivedDatalen = 0;        }        uartController.isReadBusy = false;}

当hi3861开发板接收到其他开发板传输的数据后,可以通过串口打印出来,对此可以写一个解析命令,对发送的字符串,执行相应的命令

a812522c-2ac1-11ed-ba43-dac502259ad0.png

注:在接线时,要将tx与另一个开发板的rx连接,因为在UART串口协议中,通过TX(发送引脚)和RX(接收引脚)进行数据传输与接收,需要将TX发送引脚与另一开发板的RX接收引脚相连接,故需要交叉连接以保证两块开发板的正常通信

a824a8d2-2ac1-11ed-ba43-dac502259ad0.png


审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • uart
    +关注

    关注

    22

    文章

    1216

    浏览量

    101068
  • 开发板
    +关注

    关注

    25

    文章

    4874

    浏览量

    96971
  • VMware
    +关注

    关注

    1

    文章

    292

    浏览量

    21547
  • Hi3861
    +关注

    关注

    1

    文章

    59

    浏览量

    6419

原文标题:Hi3861 通过UART串口协议与其它开发板进行通信

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony【轻量系统运行】 (基于Hi3861开发板

    由于Hi3861为WLAN模组,您可以在版本编译及烧录后,通过如下操作,使开发板实现联网功能。
    的头像 发表于 04-23 09:50 646次阅读
    鸿蒙OpenHarmony【轻量系统运行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【集成三方SDK】 (基于Hi3861开发板

    OpenHarmony致力于打造一套更加开放完善的IoT生态系统,为此OpenHarmony规划了一组目录,用于将各厂商的SDK集成到OpenHarmony中。本文档基于Hi3861开发板,向平台开发者介绍将SDK集成到Open
    的头像 发表于 04-24 15:11 989次阅读
    鸿蒙OpenHarmony【集成三方SDK】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【轻量系统 环境搭建】 (基于Hi3861开发板

    除上述[安装库和工具集]和[安装编译工具]外,针对Hi3861开发板还需要安装特定的编译工具。
    的头像 发表于 04-26 17:47 1713次阅读
    鸿蒙OpenHarmony【轻量系统 环境搭建】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【轻量系统 烧录】 (基于Hi3861开发板

    针对Hi3861开发板,除了DevEco Device Tool
    的头像 发表于 05-10 16:59 1001次阅读
    鸿蒙OpenHarmony【轻量系统 烧录】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【轻量系统 运行】 (基于Hi3861开发板

    由于Hi3861为WLAN模组,您可以在版本编译及烧录后,通过如下操作,使开发板实现联网功能。
    的头像 发表于 05-10 16:38 623次阅读
    鸿蒙OpenHarmony【轻量系统 运行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    Hi3861开发板介绍

    介绍Hi3861 WLAN模组的开发环境搭建、版本编译构建、烧录、源码修改、调试验证等方法。通过学习,开发者会对Hi3861 WLAN模组开发
    发表于 09-21 15:15

    Hi3861开发板哪里可以买到

    Hi3861开发板哪里可以买到
    发表于 10-15 09:35

    鸿蒙开发板Hi3861烧录报错?

    各位高手:鸿蒙开发板烧录时出现如下错误,请问怎么解决?> Executing task: c:\users\xiexg\.deveco-device-tool\core\deveco-venv
    发表于 05-18 15:18

    如何使用 HiBurn 工具烧录鸿蒙的 .bin 文件到 Hi3861 开发板

    鸿蒙官方文档的Hi3861开发板第一个示例程序中描述了如何使用 DevEco Device Tool 工具烧录二进制文件到 Hi3861 开发板。本文将介绍如何使用 HiBurn 工具
    的头像 发表于 10-25 09:23 4593次阅读

    openharmony开发版 openharmony开发板

    现在市面上支持OpenHarmony的开发板已经非常多了,OpenHarmony不仅仅只能在海思系列芯片上运行,比较常见的有HiSpark、小熊派系列。这些开发板都是基于海思的Hi3861H
    的头像 发表于 06-24 09:03 3576次阅读

    基于鸿蒙系统+Hi3861的WiFi小车开发

    本文简单介绍鸿蒙系统 + Hi3861 的WiFi小车开发,适用于开发润和Hi3861开发板的小伙伴们。
    的头像 发表于 03-03 09:31 5534次阅读
    基于鸿蒙系统+<b class='flag-5'>Hi3861</b>的WiFi小车<b class='flag-5'>开发</b>

    自制Hi3861开发板(附原理图和电路图)

    OpenHarmony的发展已经进入了新的阶段,逐步把重点向富设备开发方向。OpenHarmony 3.x的各大特性也是针对富设备来的,但是仍然支持轻量设备,如Hi3861芯片设备。于是,我尝试了使用自制的Hi3861
    的头像 发表于 04-14 10:23 9686次阅读
    自制<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>(附原理图和电路图)

    润开鸿Hi3861开发板介绍

    Hi3861开发板是一片大约2cm*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路。支持OpenHarmony,并配套
    的头像 发表于 04-27 10:59 3410次阅读
    润开鸿<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>介绍

    鸿蒙OpenHarmony【轻量系统编译】 (基于Hi3861开发板

    DevEco Device Tool支持Hi3861V100开发板的源码一键编译功能,提供编译工具链和编译环境依赖的检测及一键安装,简化复杂编译环境的同时,提升了编译的效率。
    的头像 发表于 04-22 15:19 507次阅读
    鸿蒙OpenHarmony【轻量系统编译】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony南向:【Hi3861开发板介绍】

    Hi3861开发板是一片大约2cm*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路。支持,并配套提供开放、易用的
    的头像 发表于 05-06 17:19 891次阅读
    鸿蒙OpenHarmony南向:【<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>介绍】