当前位置: 首页 > news >正文

BearPi-HM Nano开发笔记

小熊派

简单介绍

BearPi-HM Nano开发板是一块专门为鸿蒙OS设计的HarmonyOS开发板,板载高度集成的2.4GHz WLAN SoC芯片Hi3861,并板载NFC电路及标准的E53接口可拓展

E53接口

介绍

E53接口标准为“物联网俱乐部”联合国内多家开发板厂家制定的物联网案例标准,E53接口的E取自扩展(Expansion)的英文首字母,板子的尺寸为5*3cm,故采用E53作为前缀来命名尺寸为5*3cm类型的案例扩展版,任何一款满足标准设计的开发板均可直接适配E53扩展板。

E53拓展板

E53扩展板是根据不同的应用场景来设计的,以最大的程度在扩展板上还原真实应用场景,不同案例的扩展版根据不同的应用场景来命名后缀。

接口定义

编译、烧录、工程的编写

下载和编译源码

  • 使用 hpm 软件

    1. 在打算存储项目工程代码的文件中打开终端(工程源码存放文件夹)

    2. hpm init -t default // 不知道是干嘛的
      hpm i @bearpi/bearpi_hm_nano // 这句话执行后就是下载源码   
      hpm dist // 编译源码
      
  • 使用 git 拉取

    1. 在打算存储项目工程代码的文件中打开终端(工程源码存放文件夹)

    2. git clone https://gitee.com/bearpi/bearpi-hm_nano.git
      python build.py [板子名字,如BearPi-HM_Nano] // 编译源码
      

烧录

HiBurn 是烧录软件

  1. 点击 Setting 设置baud为921600
  2. 选择COM
  3. select file:选中 OUT 文件夹中的 allinone.bin
  4. 打钩 Auto burn
  5. 点击 connect
  6. 按下开发板复位

工程编写

  1. 在下载源码的文件夹相对路径 applications\BearPi\BearPi-HM_Nano\sample\ 下创建工程文件夹名(如my_app)

  2. 在 my_app 下新建 xxx.c(我们认定 xxx.c 文件是程序入口函数存放区)、BUILD.gn

  3. 在 xxx.c 中写

    #include <stdio.h>
    #include "ohos_init.h" // 不可或缺void hello_kexie(void){printf("Hello KeXie!\r\n");
    }APP_FEATURE_INIT(hello_kexie); // 告诉编译器 hello_kexie 函数是程序入口函数
    
  4. 在 my_app 下的 BUILD.gn 中编写

    static_library("myapp"){ # "myapp" 指定输出的静态库文件名为 libmyapp.asources = ["hello_world.c" # 指定 .a 文件所依赖的 .c 文件及路径,若路径包含"//"则表示绝对路径(此处为代码根路径),若不包含"//" 则表示相对路径]include_dirs = ["//utils/native/lite/include" # 指定 source 所需依赖的 .h 文件路径]
    }
    
  5. 在 sample 下的 BUILD.gn 中编写

  6. # Copyright (c) 2020 Nanjing Xiaoxiongpai Intelligent Technology Co., Ltd.
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.import("//build/lite/config/component/lite_component.gni")lite_component("app") {features = [#"A1_kernal_thread:thread_example",#"A2_kernel_timer:timer_example",#"A3_kernel_event:event_example",#"A4_kernel_mutex:mutex_example",#"A5_kernel_semaphore:semaphore_example",#"A6_kernel_message:message_example",#"B1_basic_led_blink:led_example",#"B2_basic_button:button_example",#"B3_basic_pwm_led:pwm_example",#"B4_basic_adc:adc_example",#"B5_basic_i2c_nfc:i2c_example",#"B6_basic_uart:uart_example",#"C1_e53_sf1_mq2:e53_sf1_example",#"C2_e53_ia1_temp_humi_pls:e53_ia1_example",#"C3_e53_sc1_pls:e53_sc1_example",#"C4_e53_sc2_axis:e53_sc2_example",#"C5_e53_is1_infrared:e53_is1_example",#"D1_iot_wifi_ap:wifi_ap",#"D2_iot_wifi_sta_connect:wifi_sta_connect",        #"D3_iot_udp_client:udp_client",#"D4_iot_tcp_server:tcp_server",#"D5_iot_mqtt:iot_mqtt",        #"D6_iot_cloud_oc:oc_mqtt",#"D7_iot_cloud_onenet:onenet_mqtt",#"D8_iot_cloud_oc_smoke:cloud_oc_smoke",#"D9_iot_cloud_oc_light:cloud_oc_light",#"D10_iot_cloud_oc_manhole_cover:cloud_oc_manhole_cover",#"D11_iot_cloud_oc_infrared:cloud_oc_infrared",#"D12_iot_cloud_oc_agriculture:cloud_oc_agriculture",#"D13_iot_cloud_oc_gps:cloud_oc_gps","my_app:myapp" # 此时程序就只会编译这个工程]
    }
    

相关文章:

  • LiveWeb前端:深度解析与挑战应对
  • net语言编程:深入探索其奥秘与挑战
  • 说说影响网络的因素
  • Java网络编程(上)
  • 【Linux】如何利用linux项目自动化构建工具-make/Makefile以及vim编辑器构建两个小程序:倒计时和进度条
  • go语言基于Gin集成后台管理系统开发定时任务管理cron/v3好用又好看
  • mac 下配置mysql的全局环境变量
  • Spring Cloud Alibaba-09-Seata分布式事务
  • 秋招突击——算法打卡——5/30——复习{最大上升子序列的和、面试算法缺陷补充}——新做:{回文数+补充 自定义Stoi实现、正则表达式匹配}
  • AI科技,赋能企业财务管理
  • ARC学习(2)基本编程模型认识(二)
  • C#多维数组不同读取方式的性能差异
  • 快手发布大模型产品“可图”,超20种创新AI图像玩法限免上线
  • React-useState
  • 经典获奖案例 | 度小满互联网金融开源软件治理解决方案
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 77. Combinations
  • C++类的相互关联
  • css的样式优先级
  • E-HPC支持多队列管理和自动伸缩
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript设计模式之工厂模式
  • yii2中session跨域名的问题
  • 大型网站性能监测、分析与优化常见问题QA
  • 构建二叉树进行数值数组的去重及优化
  • 如何进阶一名有竞争力的程序员?
  • 入口文件开始,分析Vue源码实现
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 小而合理的前端理论:rscss和rsjs
  • 用 Swift 编写面向协议的视图
  • puppet连载22:define用法
  • #HarmonyOS:Web组件的使用
  • #NOIP 2014#Day.2 T3 解方程
  • #php的pecl工具#
  • (04)odoo视图操作
  • (day6) 319. 灯泡开关
  • (JS基础)String 类型
  • (LeetCode 49)Anagrams
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (五)关系数据库标准语言SQL
  • (一)VirtualBox安装增强功能
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Micro Framework初体验
  • .Net Winform开发笔记(一)
  • .NET 事件模型教程(二)
  • .NET 依赖注入和配置系统
  • .NET/C# 使窗口永不获得焦点
  • .NET命令行(CLI)常用命令
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .sh