• 锂电池充电慢?手把手教你制作锂电池快充充电器

    前言 最近在GitHub又发现了一个嵌入式软硬件都开源的项目——基于STM32G0的锂电池快充方案,使用Type C接口的充电头供电,基于STM32G0实现,支持为1s - 4s锂电池组充电,并且支持2s-4s平衡充电功能,文末有全套资料下载链接。 目前,这个项目已经作为产品量产

  • 先有鸡还是先有蛋?第一个编译器是怎么来的?

    转自: www.cnblogs.com/Chaobs/p/4510768.html 不知道你有没有想过,某种编程语言的第一个编译器是怎么来的呢?这不就是“鸡生蛋,蛋生鸡”的问题吗? 先说最后的结论:任何一种语言的第一个编译器肯定是使用其他语言写出来的。 以我们嵌入式开发中经常使用

  • 如何搭建小型又经济的输出级?看了你就明白啦~

    好文章当然要分享啦~如果您喜欢这篇文章,请联系后台添加白名单,欢迎转载哟~ 信号发生器产生定义的电信号,其特性随时间推移而变化。如果这些信号表现为简单的周期波形,如正弦波、方波或三角波,那么这些信号发生器称为函数发生器。它们通常用于检查电路或

    亚德诺半导体
    2020-07-02
  • 新增LED设备--从上层到底层理解安卓架构之Service篇

    在上一篇中,我们已经完成了Framework层的JNI开发,本篇我们在framework层实现一个LedTestService的服务,并在service中调用Jni的函数接口。 Android内有许多系统管理服务,如 窗口管理服务WindowManagerService 电源管理服务PowerManagerService 通知管理服

  • 新增LED设备--从上层到底层理解安卓架构之JNI篇

                在上一篇中,我们已经完成了HAL层的开发,那么framework层要如何调用它呢?答案是JNI(Java Native Interface)。JNI简单来说就是java程序可以调用C/C++写的动态链接库。JNI的存在使得底层可以以C代码的形式实现,保持了高效率,上层又以java代码的

  • 嵌入式软件采集频率值的方法

    点击上方蓝字关注我哦~ 01 前言 嵌入式软件输入采集较为常见有gpio读取高低电平、ad读取电压值等,但是如果要采集一个频率信号的频率值,该如何采集? 02 采集频率值 我们知道传感器的输出信号形式除了电压电流,还有频率,例如一些加速度传感、转速传感器,

  • 基于stm32的DIY遥控小船(二)--更换遥控器

    点击上方蓝字关注我哦~ 01 前言 前面的文章《基于STM32的DIY遥控小船制作》中使用的HX1838红外遥控模块确实是足够便宜,但是实际用下来遥控距离太短,大概只有2米左右。外加必须指着才能遥控,在公共场合操作起来有些奇怪。 02 升级改造 在某宝上寻到了便宜

  • 新增LED设备--从上层到底层理解安卓架构之HAL篇

    硬件抽象层介绍 + 硬件抽象层(Hardware Abstraction Layer,简称HAL)是介于android内核kernel和上层之间的抽象出来的一层结构,是对Linux驱动的一个封装,对上层提供统一接口,上层应用不必知道下层硬件具体怎么工作的,屏蔽了底层的实现细节。为什么有了 硬

  • 新增LED设备--从上层到底层理解安卓架构之内核篇

    为了更好的理解安卓的层次关系,本文在RK3399的安卓系统上增加LED灯的外设,并使用APP打开关闭LED灯。以这样一个最简单的实例,来演示从上层到底层的调用过程。首先从最底层的kernel层开始。 一、驱动开发 Kernel层就是要将LED硬件接入到系统,完成驱动的开发

  • 数据结构之堆栈

    堆栈的基本概念 堆栈是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是:线性表允许在任意位置插入和删除数据元素操作,而堆栈只允许在固定一端进行插入和删除数据元素操作 根据堆栈的定义,每次进栈的数据元素都放在原

    嵌入式案例Show
    2020-07-02
  • 嵌入式软件中的串口收发队列设计方法

    点击上方蓝字关注我哦~ 01 前言 在嵌入式软件的开发中,串口是十分常用且基础的功能。在需要批量发送数据的场合,可以使用while循环等待发送完成标志位的方式,但是这种方式会占据主循环,影响效率。也可以采用dma的方式,但是dma在发送数据时非常高效,但是

  • STM32如何优雅地hello world

    点击上方蓝字关注我哦~ 01 前言 STM32上hello world,说白了就是使用串口向PC上的上位机软件或者串口调试助手发送字符串。 串口的使用方法百度一下就能知道了,简单来说就是下面这样。 uint8_t buff[BUFF_SIZE];//定义一个缓存数组 HAL_UART_Receive_IT(&hua

  • 如何系统地入门学习stm32?

    点击上方蓝字关注我哦~ 01 前言 本人当初学习STM32的时候有一些跟风的因素,自以为学的芯片越多就越厉害 =_=、 其实,学习嵌入式重要的是整体的工程思想和项目经验积累,说到底这些芯片,我感觉学习起来都差不多吧,无非就是对内资源(寄存器、中断、定时器

    嵌入式案例Show
    2020-07-02
  • 为什么和其他语言相比C语言是快速的语言?

    点击上方蓝字关注我哦~ 01 前言 初入门的我们经常听见别人说“真正的程序员用C语言编程,C是最快的语言因为它是最靠近及其底层的语言。”那么和其他语言相比C语言到底有什么特别的呢? 02 C语言为什么快 C语言没有什么特别,这就是它快速的秘诀! 新的

  • 新增LED设备--从上层到底层理解安卓架构之APP篇

    点击上方蓝字关注我哦~ 经过驱动、HAL、JNI、SERVICE一层一层精心浇筑,新增的LED设备调用接口终于可以被APP调用了。举个不恰当的比喻,就好像建造一座海洋石油钻井平台,从海底一段一段钢架、油管连接起来,最终在海面上建造出了一个平台(面向应用层的接口

发布文章