IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 鸿蒙开发板Hi3861_超声波测距实验code-2.0-CANARY -> 正文阅读

[系统运维]鸿蒙开发板Hi3861_超声波测距实验code-2.0-CANARY

参考:

https://blog.csdn.net/haigear/article/details/84895381

https://edu.51cto.com/center/course/lesson/index?id=722561

//超声波模块HC-SR04

/*

VCC--DC?5V

GND--GND

trig--A11

echo--A12


//超声波模块HC-SR04
/*
VCC--DC 5V
GND--GND
trig--A11
echo--A12
//https://edu.51cto.com/center/course/lesson/index?id=722561
*/
#include <stdio.h> 
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_gpio.h"
#include "hi_io.h"
#include "iot_pwm.h"
#include "hi_pwm.h"
#include "hi_time.h"

 __attribute__((__unused))
static time_t get_us(void)
{
    struct timeval current_time;
    gettimeofday(&current_time,NULL);
    time_t t=current_time.tv_sec*1000000+current_time.tv_usec;    
    return t;
}

 

static void ultrasonicsTask_txwtech(void *arg)
{
    (void) arg;
    __attribute__((__unused))
    time_t startTime = 0;
    int count = 0;
    int state = 0;
    time_t endTime = 0.0;
    float distance = 0.0;
    
  //超声波triger  pin11
   IoTGpioInit(HI_IO_NAME_GPIO_11);
   IoTGpioSetDir(HI_IO_NAME_GPIO_11,IOT_GPIO_DIR_OUT);
   IoTGpioSetOutputVal(HI_IO_NAME_GPIO_11,IOT_GPIO_VALUE0);


   IotGpioValue val=IOT_GPIO_VALUE0;
  
   IoTGpioInit(HI_IO_NAME_GPIO_12);
   IoTGpioSetDir(HI_IO_NAME_GPIO_12,IOT_GPIO_DIR_IN);
   while(1)
   {
        IoTGpioSetOutputVal(HI_IO_NAME_GPIO_11,IOT_GPIO_VALUE0);
         usleep(8);
       val=IOT_GPIO_VALUE1;
       IoTGpioSetOutputVal(HI_IO_NAME_GPIO_11,IOT_GPIO_VALUE1);
       usleep(10);
        IoTGpioSetOutputVal(HI_IO_NAME_GPIO_11,IOT_GPIO_VALUE0);
      // usleep(10000);
       usleep(10);
      
       startTime=get_us();
       while(val==IOT_GPIO_VALUE1)
       {
           IoTGpioGetInputVal(HI_IO_NAME_GPIO_12,&val);
       }
       endTime=get_us();
       
       distance=(endTime-startTime)*340/2/1000;//毫米
         printf("distance: %f\n",distance);
       if(state==0)
       {
           if(distance<=400)
           {
               state=1;
           }
       }
       else if(state==1)
       {
           if(distance>400)
           {
           count++;
           state=0;
           char scount[10];
        //   memset(scount,0,sizeof(scount));
           sprintf(scount,"%d\n",scount);
          // printf("distance: %f\n",distance);
           }
         
       }
       osDelay(20);
      //usleep(40000);//40毫秒

   }
   //usleep(40000);//40毫秒
   
}



SYS_RUN(ultrasonicsTask_txwtech);

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "!!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT"
        },
        {
            "name": "Win32-debug",
            "includePath": [
                //"F:/code-2.0-canary/include",
                "F:/code-2.0-canary/src",
                "F:/utils/native/lite/include",
                "F:/domains/iot/link/libbuild",
                "F:/base/iot_hardware/peripheral/interfaces/kits",
                "F:/third_party/cmsis/CMSIS/RTOS2/Include",
                "F:/code-2.0-canary/device/hisilicon/hispark_pegasus/sdk_liteos/include",
                //"F:/code-2.0-canary/third_party/mingw-w64/mingw-w64-headers/crt",
                ""
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "path": [
                    "F:/code-2.0-canary/include",
                    "F:/code-2.0-canary/src",
                    "F:/code-2.0-canary/utils/native/lite/include",
                    ""
                ]
            },
            "defines": [
                ""
            ],
            "intelliSenseMode": "clang-x64",
            "compilerPath": "F:/hcc_riscv32_win/bin/riscv32-unknown-elf-gcc.exe",
            "compilerArgs": [
                ""
            ]
        }
    ],
    "version": 4
}

build.gn

static_library("ultrasonics_demo_txwtech") {
    sources = [ "ultrasonics_demo_txwtech.c"]

    include_dirs = [
        
        "//third_party/cmsis/CMSIS/RTOS2/Include",
         "//utils/native/lite/include",
        "//kernel/liteos_m/components/cmsis/2.0",
        "//base/iot_hardware/peripheral/interfaces/kits",
        "//device/hisilicon/hispark_pegasus/sdk_liteos/include",
        
        ]
}

app/build.gn

# Copyright (c) 2020 Huawei Device 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 = [
        "ultrasonics_demo_txwtech",
    ]
}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:34:54  更:2021-08-30 12:36:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:53:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码