刷新
初学嵌入式是弄linux还是单片机?

博主头像 作为一个从机械转行到嵌入式的工程师,我深刻理解初学者面临的困惑。嵌入式领域分支众多,初期选择Linux还是单片机确实是个让人纠结的问题。我当年就在这个问题上纠结了好久,走了不少弯路。 其实,我之所以能在嵌入式领域站稳脚跟,很大程度上得益于正确的学习路径选择。正因如此,我最近录制了《STM32实战快速 ...

DIY记录之 USBasp

博主头像 序 笔者在上网浏览时发现了这个项目[0]。刚好另一个DIY会需要对Attiny85进行烧写,并且感觉自己做一个USBasp来干这个事比较有趣,于是就买材料打板子准备DIY一个USBasp。这篇随笔是用来记录过程的,希望也能方便别的对此感兴趣的并且也想DIY的读者。 注意 笔者的电脑环境是Arch G ...

判断是大端存储还是小端存储

判断存储方式是大端存储还是小端存储 联合体(union)是C语言中的一种数据结构‌,允许不同类型变量共享同一段内存单元。通过覆盖技术实现内存复用,同一时间仅存储一个成员的值。用C语言可以判断存储方式。。 大端存储:低地址存储低字节 小端存储:低地址存储高字节 //判断是大端存储还是小端存储 //用户 ...

ElasticStack从入门到精通

博主头像 什么是ElasticStack ElasticStack早期名称为elk elk代表了三个组件 ElasticSearch 负责数据存储和检索。 Logstash 负责数据的采集,将源数据采集到ElasticSearch进行存储。 Kibana 负责数据的展示。类似Granfa 由于Logstash ...

能详细地讲讲stm32该怎么学吗?

博主头像 作为一个在嵌入式领域摸爬滚打了好几年的老兵,我想分享一下我学习STM32的心路历程和方法论。坦白说,刚开始接触STM32时,我也是一脸懵逼。机械专业毕业的我转行做嵌入式,第一份工作被调剂到电子部门,实际却是做单片机开发,那段日子真是痛并快乐着。 最近我把这些年积累的STM32学习经验整理成了一个《S ...

读写锁

读写锁 对于互斥锁而言,凡是涉及临界资源的访问一律加锁,这在并发读操作的场景下会大量浪费时间。要想提高访问效率,就必须要将对资源的读写操作加以区分:读操作可以多任务并发执行,只有写操作才进行恰当的互斥。Linux系统就提供了一种读写锁。 (1)读写锁的初始化 pthread_rwlock_t rwl ...

【电子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 ...

C#.Net,将本地高速产生的数据,通过http client发送给服务端保存,要求不能影响高速产生数据的源的性能,并且将产生的数据不停的发送给服务端,不能导致界面卡顿,高性能,高稳定性。

高性能C#.NET HttpClient数据发送方案 为了实现高速数据产生环境下稳定可靠地向服务端发送数据,同时不影响数据源性能和界面响应,我将设计一个基于生产者-消费者模式的异步解决方案。 方案设计 核心组件 数据生产者:高速生成数据的模块 并发队列:作为缓冲区,解耦生产者和消费者 数据消费者:从 ...

转行嵌入式,需要自学多久?

博主头像 作为一个本硕都学机械,却阴差阳错进入嵌入式行业的老兵,这个问题我能聊一整天。十几年前我还在工厂车间穿着工装和机床打交道,偶然接触到单片机后就一发不可收拾。 转行这条路我走得异常艰辛,踩过的坑比写过的代码还多。去年我终于把这些年的经验教训整理成了《STM32实战快速入门》(点击直达)课程,就是为了帮那 ...

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

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

文件对比工具-WinMerge

博主头像 目录一、概述二、官网地址三、安装部署1、官网2、Github下载四、基础设置1、比较方法2、高亮对比五、食用方式1、Ctrl+O打开2、比较结果3、校对/删除六、附配色方案对比 一、概述 WinMerge:免费开源的文件和文件夹比较工具,支持比较文件夹内容,能显示文件大小和日期的差异,还可基于正则表 ...

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_ ...

docker部署openwrt系统编译环境

博主头像 背景:首次接触docker。 1、拉取镜像。 2、通过初始镜像开启一个容器,并将容器重新设置一个tag,查看容器,通过exec开启终端,注:docker名称必须是小写的,查看docker容器列表。 docker run -it 861b7388600f91f3a0b82a496821eeb88733 ...

推荐Linux命令行运维工具: WowKey--实现自动化批量化标准化Linux设备运维

WowKey命令行运维工具,Linux设备的自动化、批量化、标准化的运维解决方案,解放运维人,提升企业运维效率和质量。 有人能理解做设备的运营维护工作的痛苦所在吗? 如果你的运维工作中,只维护个位数数量级别的设备,那无所谓—— 通用的简单的远程人机交互式的设备登录,然后执行Shell 命令的维护方式 ...

<1···678···50>