鸿蒙OS Hi3861的芯片实际开发中遇到的问题

2023-05-16

鸿蒙OS Hi3861的芯片实际开发中遇到的问题

优点:
比较适合开发者快速开发,上面的硬件操作的函数封装很简单,非常适合初学者使用封装好的函数调用硬件管脚,比如I2c gpio spi sdio 都被封装了,特别简单,中文注释,而且还提供了无线wifi 的封装函数,当然也有http 解析啊什么的,可以使用在简单的物联网控制的简单设备上。

谈谈我遇到的问题:

使用PWM 时候,竟然I2C 不能使用,最后发现复用出了问题,很是不解。

附上代码可以观察下现象。

首先复用PWM3 ,管脚复用了PIN12

  //COM3 PWM3
    IoSetFunc(WIFI_IOT_IO_FUNC_GPIO_12_GPIO,WIFI_IOT_IO_FUNC_GPIO_6_PWM3_OUT;
    GpioSetDir(WIFI_IOT_IO_FUNC_GPIO_12_GPIO, WIFI_IOT_GPIO_DIR_OUT);
    PwmInit(WIFI_IOT_PWM_PORT_PWM3);

下面是I2C 管脚复用 PIN0和PIN1

   //GPIO_0复用为I2C1_SDA
    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA);
    //GPIO_1复用为I2C1_SCL
    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL);

再看看PWM3 上 I2C 正好在这里

typedef enum {
    /** GPIO0 function */
    WIFI_IOT_IO_FUNC_GPIO_0_GPIO,
    /** Functions of UART1 TXD */
    WIFI_IOT_IO_FUNC_GPIO_0_UART1_TXD = 2,
    /** SPI1 CK function */
    WIFI_IOT_IO_FUNC_GPIO_0_SPI1_CK,
    /** Functions of JTAG TD0 */
    WIFI_IOT_IO_FUNC_GPIO_0_JTAG_TDO,
    /** PWM3 OUT function */
    WIFI_IOT_IO_FUNC_GPIO_0_PWM3_OUT,
    /** I2C1 SDA function */
    WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA,
} WifiIotIoFuncGpio0;

/**

我先初始化了PWM 后初始化了I2C ,现象是PWM不能用,
而先初始化I2C 在初始化 PWM ,I2C 能用了。
这种问题就尴尬了,本来打算用这上面的4路PWM 和i2c ,
但是PWM 和I2c 竟然冲突了,现在办法就是 gpio 去模拟pwm了。

随后定时器去模拟,发现定时器只能使用ms 定时器,频率太低了跟不上。
也有微秒定时器,在定时器回调里设置gpio高低电平,最终现象是HM 系统卡死。

实在没办法了,只能放弃使用Hi3861 ,请各位网友谨慎踩坑HI3861

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鸿蒙OS Hi3861的芯片实际开发中遇到的问题 的相关文章

  • Linux/Ubuntu环境搭建(二):创建添加新磁盘、搭建Samba服务器

    本文将介绍 如何在虚拟机ubuntu上创建添加一个新磁盘 搭建samba服务器 1 添加新磁盘 在VMware安装Ubuntu系统过程中 xff0c 我们已经创建了一个磁盘了 xff0c 但这个磁盘是跟系统绑定在一起的 xff0c 以后重装
  • Linux 故障排查-测试网络端口连通性

    1 telnet 方法 telnet 协议是 TCP IP 协议族中的一员 xff0c 是 Internet 远程登陆服务的标准协议和主要方式 它为用户提供了在本地计算机上完成远程主机工作的能力 因此我们可以使用telnet 来测试远程机器
  • 基于Redis的布隆过滤器的实现

    项目简介 包含一个基于Redis的布隆过滤器的实现 xff0c 以及应用到Scrapy中的Demo 地址 xff1a BloomFilterRedis 布隆过滤器 网上有很多介绍 xff0c 推荐 数学之美 xff0c 介绍的很详尽 xff
  • 如何利用vs2010(适用其他版本)创建一个c语言程序

    如何利用vs2010创建你的第一个c语言程序 1 打开vs 2010 xff0c 选中新建项目 2 选中win32控制台应用程序 xff0c 起个项目名 不加 c xff0c 自定义路径 3 下一步 4 选中空项目 xff0c 下一步 5
  • Django之后台上传图片(二十二)

    上传图片 在python中进行图片操作 xff0c 需要安装包PIL pip install Pillow 61 61 3 4 1 在Django中上传图片包括两种方式 xff1a 在管理页面admin中上传图片 自定义form表单中上传图
  • #华为mate8公开版解bl锁避免踩雷的事项

    华为mate8公开版解bl锁避免踩雷的注意事项 最近一个朋友 xff08 64 djkaguya xff09 出于某些原因需要将他此型号的备用机解bl锁来迁移服务 xff0c 此篇文章用来记述他在折腾过程中总结出的注意事项 整体流程 1 华
  • qt 修改背景颜色 的几种方法

    按钮方式切换一种颜色 span class token keyword void span MainWindow span class token operator span span class token operator span s
  • 什么是底层驱动程序

    底层驱动是程序以访问底层硬件的形式实现人机交互 xff0c 驱动程序和应用程序之间需要实现相应的信息交互 xff0c 一方面 xff0c 应用程序通过对驱动程序发送相应的指令 xff0c 实现 硬件控制的动作指令 xff0c 另一 方面 x
  • Spring Security 401 问题解决

    背景 xff1a 微服务接口调用的时候报错 xff0c 原来有一个rest服务用的不多 xff0c 平时用的都是一些基础的服务 xff0c 然后客户需要我们开放一个外部接口给他们 xff0c 然后我寻思着就在这里面写接口 然后调用的时候就报
  • ubuntu源不可用

    如果使用ubuntu系统时 xff0c 发现之前的源不可用 xff0c 使用命令 sudo gedit span class token operator span etc span class token operator span ap
  • keras UpSampling2D/3D

    UpSampling2D 看tf文档中的解析 xff1a tf keras layers UpSampling2D xff1a Upsampling layer for 2D inputs 在一个2D输入中进行上采样操作 xff0c 其实就
  • C#winform实现窗口及窗口内容自动缩放(代码已封装)

    c 窗体实现等比例缩小放大 代码如下 原出处为某问答中看到的 摘录下来 以免遗忘 原文地址已附上 如有侵权请联系我 本文仅供学习交流 按我个人理解 setControl函数应当使用多线程加速 本人只是新手 就不画蛇添足了 欢迎各位大佬补正
  • 在移植boa服务器的过程中出现boa:not found问题以及移植cgic库编译时出现arm-linux-gcc-g命令未找到错误

    1 嵌入式web服务器移植的过程在网上很多资源的 xff0c 我在这就不再赘述了 xff0c 我就简单说下一个对于新手来说很头疼的问题 xff01 xff01 移植boa服务器的时候 xff0c 所有的编译工作以及移植工作全部做完了 xff
  • 详解JavaScript异步与回调

    一 前言 在学习本文内容之前 xff0c 我们必须要先了解异步的概念 xff0c 首先要强调的是异步和并行有着本质的区别 并行 xff0c 一般指并行计算 xff0c 是说同一时刻有多条指令同时被执行 xff0c 这些指令可能执行于同一CP
  • Linux上VNC 启动和关闭 ( 解决 Ubuntu16.04 sncserver连接出现Timed out waiting for a response from the computer)

    原文 https blog csdn net russle article details 4757888 整体思路 xff1a 查看vncserver端口 是否开启 xff08 手动kill vncserver进程有坑 xff0c 有时再

随机推荐