刷新
【电子DIY神器】通吃各种5线步进电机!I2C接口控制28BYJ-48五线四相步进电机

博主头像 总线单极性步进电机扩展板采用紧凑型设计,兼容XIAO系列主控板直连或独立使用,支持级联16个模块。板载ULN2003达林顿管驱动芯片(单通道500mA/整片2.5A),可适配28BYJ-48等5线4相步进电机(5-24V宽压供电),提供单步/全步/半步三种驱动模式,配备双固态电容稳压、防反接保护和可... ...

串口通信

博主头像 串口通信 1.0 电平通信标准(物理层) 1.1 TTL 特点: 容易受到电磁干扰 传输距离短(板级设备间通信 <0.5米) 全双工通信 输出电平 1: 2.4V ~ 5V(3.3V) 0:0V ~ 0.4V 异常:0.4 ~ 2.4V 输入电平 1: 2.0V ~ 5V(3.3V) 0:0V ~ ...

线程的属性

线程的属性练习 设计一个程序,要求在程序中创建两条子线程,主线程创建一个线程的属性对象,并对线程的属性对象进行初始化之后,要求创建的子线程的属性设置为分离属性,子线程A输出”hello”,子线程B输出”world”,主线程创建子线程之后就终止。 #include <pthread.h> #inclu ...

ESP32系列,IDF官方实例——外设:通用GPIO

博主头像 示例位于 \examples\peripherals\gpio\generic_gpio 文件夹内 GPIO示例逻辑简单,直接看代码理解。 /* GPIO示例 此示例代码位于公共域(或CC0许可,由您选择。) 除非适用法律要求或书面同意,否则本软件按“原样”分发,不作任何保证或 任何形式的条件,无论 ...

ARM Cortex-M3/M4初学习(未完待续)

博主头像 ARM Cortex-M3/M4初学习 0. 架构与核心特性 0.1 指令集架构 基于ARMv7-M架构,支持Thumb-2指令集(混合16/32位指令集) 基于哈佛架构,数据和指令分布存储在独立的空间中 0.2 流水线 三级流水线: 取值(Fetch) - 译码(Decode) - 执行(Exec ...

[rCore学习笔记 032] 管理SV39多级页表

博主头像 上一节:硬件 本节:软件实现 物理页帧管理 内核->空闲内存->物理页帧->分配->存放 可用物理页的分配和回收 Link文件中关于操作系统bin文件的内存设计 内容os\src\linker-qemu.ld: OUTPUT_ARCH(riscv) ENTRY(_start) BASE_ADDRES ...

PID算法及其优化

博主头像 PID算法及其优化 1. 经典PID公式 位置式PID公式 增量式PID公式 PID适用范围: 线性时不变低阶(二阶及以下)控制系统,当然可以通过一些优化来一定程度上解决非线性和将高阶系统简化至二阶以下 1.1 离散位置式PID公式 u(k) = P * error_now + I * error_ ...

SPI总线协议

博主头像 SPI总线协议 0. 概述 数据线: SCL :同步时钟线,用于控制时序,可通过CPOL设置极性 MOSI :主机发送-从机接收 数据线 MISO :主机接收-从机发送 数据线 CS/NSS:片选信号线,低电平有效,但是每个从设备都想要一根CS线,占用引脚多 支持全双工通信 高速片上通信协议: 支持 ...

【ESP32】移植 Arduino 库到 idf 项目中

博主头像 今天咱们要聊的内容非常简单,所以先扯点别的。上一篇水文中,老周没能将 TinyUSB 的源码编译进 Arduino 中,心有两百万个不甘,于是清明节的时候再试了一次,居然成功了,已经在 esp32 开发板上验证过,可行!官方的文档中说只在 Ubuntu、树莓派和 mac 中编译通过,win 平台未测 ...

一种基于openmv和触摸屏的动态读取颜色的解决方案

博主头像 一种基于openmv和触摸屏的动态读取颜色的解决方案 前言: ​ 作为大学生电子设计竞赛控制题选手,常常需要与视觉上位机打交道,openmv作为当前一种开源方案,能够以较低的成本制作,并且官方文档和各种教程丰富,但是苦于光照的影响,程序中预定的阈值往往会出现误差,导致完美运行的工程就此崩塌,故博主以 ...

信号量

信号量 一、信号量的概念 Linux系统提供了一种名称叫做信号量(Semaphore)的IPC资源,信号量的英文也可以翻译为信号灯,信号量本质上其实是一个数字(非负整数),用来表示一种资源的数量,当多个进程或者线程争夺这些稀缺资源的时候,可以使用信号量来保证他们合理地、秩序地使用这些资源。 Linu ...

共享内存

共享内存 一、共享内存的概念 共享内存是Linux系统进程间通信的一种方式,是在Unix系统的system-V版本引入的一种IPC对象,除了共享内存外,其他的IPC对象还包含消息队列、信号量组。 共享内存其实就是指多个进程可以共享物理内存中的同一段内存区域,只不过还需要把物理内存映射到进程的私有虚拟 ...

【ESP32】两种模拟 USB 鼠标的方法

博主头像 上一篇水文中,老周给大伙伴们扯了关于 idf 中添加自定义 Arduino 组件的方案。这次咱们做一下 USB 鼠标玩玩。 很遗憾的是,老周无能,在 Arduino-esp32 组件依赖 TinyUSB 组件时无法进行编译,不管怎么配置都会找不到 tusb.h 文件;就算把 tinyUSB 内置到 ...

消息队列

消息队列 一、消息队列的概念 Linux系统中消息队列(Message Queue)是进程间通信的一种方式,这种通信机制的好处是可以传输指定类型(用户可以自行定义)的数据,相同类型的数据根据到达顺序在队列中进行排队。 当然,不同类型的数据不能处于同一个队列中,也就是说系统中可能存在多个消息队列,每个 ...

信号通信

信号通信 信号的概念 信号(英文翻译为signal)是Unix系统、类Unix系统(比如Linux系统)以及其他POSIX兼容的操作系统中用于实现进程间通信的一种方式。信号采用的是一种异步通信机制。 同步通信:同步指的是当进程发起一个请求,但是该请求并未马上响应,则进程就会阻塞等待,直到请求被响应。 ...

管道通信

管道通信 Linux系统提供了一种通信方式,名字叫做管道通信,顾名思义,管道是单向的,比如水管、燃气管道等,换个说法就是管道是采用半双工通信的,也就是同一时刻只能完成发送数据或者接收数据。 匿名管道 用匿名管道实现,创建匿名管道,在子进程中将I am child,hello!!!写入管道,在父进程中 ...

[rCore学习笔记 025 extend] 带优先级的抢占式调度

博主头像 引言 因为rcore并非设计为一个rtos,而是在我们需要的时候我们需要在设计的时候考虑到线程切换的时候的延时问题. 回顾上一部分的使用环形队列进行调度的方式,我们会发现我们寻找下一个Ready的任务的时间是不均匀的. 并且我们的任务是没有优先级的,可以认为是平权的,因此,为了: 快速且时间均匀地找 ...

<1···345···16>