⭐ 欢迎来到虫虫下载站!
|
📦 资源下载
📁 资源专辑
ℹ️ 关于我们
⭐ 虫虫下载站
🔐
登录
📝
注册
虫虫下载站
专业电子工程师资源平台
📤 上传资源
🏠 首页
📦 资源下载
📁 资源专辑
🔧 热门软件
⭐ 精品资源
🎓 基础知识
📐 电路图
📚 电子书
🔢 在线计算器
🔍 代码搜索
🏠
首页
›
📖 技术阅读
📖
技术阅读
工程师原创文章 · 技术经验分享 · 项目案例解析
📊 共 19889 篇文章
✍️ 原创分享
📚 持续更新
NRF24L01+中文翻译之附录(五)
附录 A - 增强型 ShockBurst™ - 配置和通信示例增强 ShockBurst™传输有效载荷1.将配置位 PRIM_RX 设置为低电平。2.当应用 MCU 有数据要发送时,通过 SPI 锁定接收节点地址(TX_ADDR)和加载有效负载数据(TX_PLD)到 nRF24L01 +中。发送有效载荷的长度是通过 MCU 写入 TX FIFO 的字节数...
📅 2023-05-03
阅读全文 →
NRF24L01+中文翻译之器件总体介绍(一)
导读:对于初学者来说,最痛苦的莫过于看英文技术手册,所以当初小白的自己就会想,要是有人将这些手册翻译成中文就好了。但是对于高手而言,他又不屑于翻译手册,因为他直接就能看懂,根本不需要翻译。所以在寻找 NRF24L01+ 的中文手册无果之后,萌生了翻译这篇文章的想法。首先无线数据传输这个技术我很感兴趣,其次这个芯片非常适合初学者去掌握模块的使用方法,这个模块...
📅 2023-05-03
阅读全文 →
如何让 KEIL 同时开发 51 单片机 和 STM32 单片机?
导读:很多时候我们可能需要同时开发 51 单片机和 STM32 单片机,换句话说就是如何让 KEIL 同时开发 51 内核和 ARM 内核单片机?这篇文章将告诉你答案!相信很多朋友遇到过需要同时开发 51 和 ARM 两种内核的程序。这时就要想办法在电脑上安装这两个版本的 KEIL。就我所知,有两种方法可以解决该问题:方法 1、同时安装 KEIL 两个版本...
📅 2023-05-03
阅读全文 →
关于公众号
鱼鹰是我的笔名,有着特殊的含义。鱼鹰是专业的垂钓者,在中国很多地方称鸬鹚(常说的鱼鹰其实是鸬鹚)为乌鬼,以形容这种鸟不像鲣鸟那样傻,而有着高超的捕鱼本领。在大学里我主要学习的是单片机软件开发,从大一加入实验室学习单片机开始,至今已有四年开发经验了。虽说本公众号的内容主要是以软件开发为主,但是作为嵌入式开发者不可能完全不懂硬件的,所以还是需要知道一些基本的硬...
📅 2023-05-03
阅读全文 →
Peripherals显示空白?
导读:不再想只看干巴巴的寄存器了?想通过外设窗口观察却发现没有菜单?怎么办?在线调试的时候下面的菜单可能显示异常,如下: 可通过修...
📅 2023-05-03
阅读全文 →
外设寄存器该这么看才对嘛
导读:我们知道 STM32 有很多寄存器,看起来特别费劲,当然如果通过前面的直接查看寄存器值的方法确实可以观察数据,但在这里我要介绍一个特别方便的查看方式。KEIL 集成的外设窗口(注意这个外设串口对 STM32F4 系列支持效果并不理想,但对 STM32F1 的支持特别好)。首先介绍比较一般的查看方式。进入 Debug 模式后,你应该能看到这个:Syst...
📅 2023-05-03
阅读全文 →
你知道 KEIL 自带示波器吗?
导读:很多时候我们并不满足于查看变量的值,可能还想看这个变量的历史变化,同时以波形的方式显示出来,这就需要了解 KEIL 另一个有趣的东西:逻辑分析仪。以 STM32F103RET6,外接 8M 晶振,输出引脚 PA.7,70 Khz 为例.每一步都很重要。(1) 准备输出 PWM 的程序(2) 设置时钟,设置为 8M。点击图示,进入配...
📅 2023-05-03
阅读全文 →
打了多年的单片机调试断点到底应该怎么设置? | 颠覆认知
导读:程序运行过程中,有些数据被莫名修改了,在哪里修改的?又是怎么修改的?这个代码我只想知道是否运行过,或者运行了多少次,但是不想让程序停下来,或者仅打印调试信息,怎么办?当这个变量设置成某个数据后,我想让程序自动暂停下来进行分析,怎么办?以上问题的所有答案就在本节内容:断点窗口(KEIL)。本节内容将颠覆你之前对断点调试的认知。这个调试技巧鱼鹰也用了半年...
📅 2023-05-03
阅读全文 →
KEIL调试为啥不创建一个自定义按键?
导读:有些时候我们并不满足监控数据,还想定义一些自己的按键,比如当我按下按钮时,系统电源关闭,再按下按钮时系统电源开启,怎么做?这个功能其实使用前面所说的外设窗口也是完成能完成要求的,麻烦的是,如果使用外设窗口,要控制 IO 口,那你每次都得找到对应的 IO 口才行,很是麻烦,但是使用按键就会简单许多。这个时候就我们就需要了解 KEIL 中另一个有趣的东西...
📅 2023-05-03
阅读全文 →
KEIL 调试的 ini 文件有什么用?
导读:相信不少道友在使用 KEIL 软件的时候,看到过添加 .ini 文件的过程,那个时候往往是为了解决一个问题,按照教程一步一步设置的,但是,你真的有理解过文件内这些语句的含义吗?就像关注鱼鹰的公众号时回复的那段话一样,“按着正确的步骤的确可以得出正确的结果,但如果加以改动,仍然得出正确的结果,这其中的原因是什么?……”,我们只是在按部就班的设置,但是从...
📅 2023-05-03
阅读全文 →
巧用补码
导读:网上关于二进制补码数据的负数都是采用取反+1进行转换,但是真的需要这么麻烦吗?这篇文章将让你真正理解补码!假设一个 ADC 转换芯片的转化数据为补码形式,24 位精度。最大电压值为 0x7fffff,最小电压值为 0x800000,转化为十进制如下表:十六进制十进制0x7fffff83886070x800000-8388608先思考简单的,了解一下什...
📅 2023-05-03
阅读全文 →
KEIL中的配置向导(Configuration Wizard)怎么用?
导读:有多年开发经验的道友应该发现过这样一种情况,当你打开工程中的启动文件时,会出现下面这种情况:可以看到有一个文件自动出现了,这个文件是干什么用的?当你点开之后,你就会发现这个文件可以用来直观的修改堆和栈的大小:当你将栈的值由 0x0000 0400 修改为 0x0000 0800 后,你会发现,启动文件的值也跟着改变了:借此可以知道,原来通过配置向导,...
📅 2023-05-03
阅读全文 →
佛祖保佑,永无 BUG,永不修改 | KEIL 调试系列总结篇
导读:本篇将总结前面关于KEIL调试系列文章,方便后来人系统查看文章。在此之前,请看以下视频:这个视频展示了鱼鹰平时是如何运用前面的KEIL调试方法进行调试的。为了让自己能够在遗忘之后重新运用这些知识,鱼鹰写了一份适合自己的关于KEIL的经验笔记(近5000字,关于视频中展示的调试方法的记录,注意没有uCOS II 任务切换的内容,这个内容准备以后再搞一个...
📅 2023-05-03
阅读全文 →
五年之后,你是否还拥有对技术的热情?| 闭关修炼
导读:今天不写技术文章,就随便聊聊关于上次的活动还有鱼鹰准备闭关修炼的事情上周搞了一个活动,关于 KEIL 调试笔记的,主要是想让更多人知道本公众号,又不想让自己的经验白白浪费了,所以才搞了这么个活动。其实本人很不愿意搞这个,感觉没多大意义,但又不得不做,毕竟只有公众号发展得好,我才有更大的动力去更新技术文章。其实我的公众号有很多资源,除了本公众号免费向大...
📅 2023-05-03
阅读全文 →
嵌入式软件面试那点事
导读:本篇笔记将总结关于嵌入式软件面试的一些东西,东西太多,不会全部展开,仅做个人总结之用,各位道友也可参考参考。首先说个大概的,嵌入式软件需要掌握什么东西?1) 对单片机的熟悉程度(包括中断系统、各种外设模块、时钟系统等)2) 对通信协议的熟悉程度(常见的有SPI、UART、I2C等)3) 掌握基本的数据结构(如队列、栈、链表)4) 掌握基本的算法(多种...
📅 2023-05-03
阅读全文 →
引脚输出的隐藏BUG | 深入思考
导读:最近在看一个接手项目的时候,突然发现了看门狗(外部看门狗)程序中有这么一条喂狗语句:GPIOC->ODR ^= (uint16_t)0x01;不知道各位道友看到这条语句的第一想法是什么(当时这条语句被宏定义包装了的)?看到这么一条语句的时候,鱼鹰第一感想是:坏了,这条语句会出大问题,所以我毫不犹豫的修改了这条语句。因为这条语句本意是...
📅 2023-05-03
阅读全文 →
固件升级经验总结
导读:上面理论+实践当初花了3天时间弄完的,但是,当你真正做项目的时候,你会发现,只有上面的这些知识还不够,还有更多的细节要去处理:1. APP程序怎么跳转到BootLoader程序?2. APP程序和BootLoader之间是否会互相影响3. APP和BootLoader之间如何传递参数?4. 固件更新一到一半,因为某种原因失败了(通信错误、掉电),该如...
📅 2023-05-03
阅读全文 →
介绍几款好用的工具 | 嵌入式开发必备
导读:好用的工具,做事事半功倍!最近有些人应该知道,鱼鹰最近跳槽了,从北京来到了深圳,事情很多,所以更新不稳定了。事实上,前面说更新即将不稳定是因为想深入学习 USB 协议的,但是因为交接的那一个月时间几乎天天加班,也因为跳槽的事情比较多(都是偷懒的借口),所以 USB 协议也没怎么学习(但肯定会去学习的,因为这个已经成为我的执念了)。而到了深圳,新的公司...
📅 2023-05-03
阅读全文 →
PID 调节基础理论(一)
导读:PID调节大家或多或少的都了解过,但是要掌握它还是相当有难度的。PID可以干什么?四旋翼、平衡车、水温控制等项目都会用到,所以如果你想自己做这些项目的话,PID调节是必不可少的知识。但由于鱼鹰本身实战经验不足,所以本系列文章以理论为主,更多的经验需要道友在实践中去学习了,我相信,学完这篇系列之后,应该能对PID调节会有更清晰的认识。PID 算法在控制...
📅 2023-05-03
阅读全文 →
PID 调节之 P(proportion)调节
参考书籍《电力拖动自动控制系统—运动控制系统》陈伯时首先看 P 调节的公式:PWM 为输出电压,Kp 为放大系数,e(K)当前误差,即设定速度值和当前测得的速度 n 的偏差。现在开始进行分析。先假定一些情况,便于理解(只用于定性理解,不能定量分析):速度最大为 1000(即单位时间的测得的脉冲数);输出 PWM 的值最大为 8000,即 8000 时占空比...
📅 2023-05-03
阅读全文 →
今天,你的栈溢出了吗?
导读:在C语言的世界里,栈的地位非常举足轻重,许多错误都可能和栈设置有关,那么该如何确定栈的大小?今天分享一点栈知识,帮助你确定栈的大小,参考链接请点击下方的阅读原文。其实很多编译工具是可以获取函数调用信息的,比如:KEIL 平台可以使用参数:--callgraph:生成一个静态调用图(html或文本格式),显示堆栈使用情况 --info=sta...
📅 2023-05-03
阅读全文 →
I(integration)调节(三)
其实一般没有单独的 I 调节的,只是为了突出这一点,所以专门一小节讲解积分作用。现在看一下公式:这里的 e(i)就是比例 P 里面所用的偏差 e(K),只是这里将之前所有的偏差都进行了累计,而比例只和当前偏差有关,和历史偏差无关。我们看书上是怎么描述的:比例调节器的输出只取决于输入偏差量的现状,而积分调节器的输出则包含了输入偏差量的全部历史。现在只单独学习...
📅 2023-05-03
阅读全文 →
PI 调节
积分控制可以消除静差,但是在控制的快速性上,积分控制不如比例控制。同样在阶跃输入作用之下,比例调节器的输出可以立即响应,而积分调节器的输出只能逐渐地变化。那么如果既要稳态精度高,又要动态响应快,该怎么办?只要把比例和积分两种控制结合起来就可以实现,这就是比例积分控制。先看两张图:这是比例积分调节器的输入和输出动态过程。红色虚线为积分作用,绿色虚线为比例作用...
📅 2023-05-03
阅读全文 →
如何写一个健壮且高效的串口接收程序?
导读:学单片机的大概最先、最常写的通信程序应该就是串口程序了,但是如何写出一个健壮且高效的串口接收程序呢?接下来鱼鹰将根据多年的开发经验教你如何编写串口接收程序(可在公众号获取个人编写的串口接收源码)。本篇文章包含以下内容,很长,但干货满满,就看你能吸收多少了(这将是鱼鹰本阶段公众号技术分享的最后一篇收尾文章):传入参数指针互斥锁释放顺序数据帧检查串口空闲...
📅 2023-05-03
阅读全文 →
指针,很难吗?| 解析指针的过程与意义(一)
导读:指针是 C 语言的灵魂,该如何真正理解并运用呢?这篇文章告诉你答案!终于到了 C 语言中最为重要的指针环节了。之前一直以积累为主,不敢写,或者说不愿意写,因为没有足够的高度写出来的东西很多都是片面的,当然现在我也不敢说我目前写出来的就一定是全面的,只是对于普通的程序员来说,也算比较全面了吧!当然因为东西太多,有可能会有忘记的地方,到时候再更新补充吧。...
📅 2023-05-03
阅读全文 →
延时功能进化论之概述
导读:最强干货,不仅适用于单片机应用场合,其他任何需要延时的平台都可以借鉴参考!在这篇长达万字的长文中,鱼鹰将通过延时这种刚需功能聊聊溢出、可重入、编程思想、共享变量保护等方面内容,以延时功能为载体,能更好的理解这些缥缈的知识点。本篇长文将分成五篇陆续发布:概述、V1.0~V1.5、V1.7、V2.0~V2.4、V2.5~V2.7。版本V3.x留给对本公众...
📅 2023-05-03
阅读全文 →
延时功能进化论之V1.0~V1.5
延时实现V1.0首先使用的延时实现就是上面所说的死等方式:类似上面这种CPU运行在一个循环中,直到达到条件后离开该函数,从而达到延时功能。这种实现方式只要对C语言有所了解,很容易理解,但是在使用过程中,你会发现延时并不准确,或者说可能在这个单片机里面,延时很准,移植到另一个单片机可能一点就不准了,所以为了达到准确的延时功能,必须借助示波器等仪器调整参数以确...
📅 2023-05-03
阅读全文 →
延时功能进化论之V1.7
延时实现V1.7(事实上以下实现方式应该是鱼鹰在使用V2.7版本很久后才采用的方式,但因为内容的相关性,换个顺序介绍)是不是很简单,简单到让你怀疑它的功能!这里不再使用systick,而是使用DWT(关于这个模块,鱼鹰后期可能专门写一个小节介绍它,欢迎关注鱼鹰谈单片机),为什么使用它呢?1、不占用操作系统的心跳时钟;2、精度非常高,系统时钟的精度,也就是说...
📅 2023-05-03
阅读全文 →
延时功能进化论之V2.0~V2.3
延时实现V2.0前面V1.x版本的演进,很好的解决了延时问题,但有经验的你会发现,上述实现方式有一个硬伤,那就是都是采用死等方式实现,在等待延时内单片机除了能响应中断外,什么也干不了,如果说延时时间很短(微秒级别)或者必须采用死等方式处理外,其他情况我们应该尽可能让延时和其他任务同时处理。假设我们有这样一个需求,4个按键检测、1个LCD屏幕显示。按键滤波1...
📅 2023-05-02
阅读全文 →
延时功能进化论之V2.5~V2.7(鱼鹰强烈建议)
导读:有没有一种实现方式能解决V2.0~V2.3所描述的问题?不会被所谓的查询频率所限制呢?当然有。是否存在一种没有查询频率限制的实现方法呢?换句话说,我们不是根据时刻判定延时时间的到达,而是通过时长判断呢?即1~2倍超时时间内都可以认为超时时间到,而不是刚好就是超时时间呢?延时实现V2.5这里介绍一种有意思的公式(这个公式的妙处可看鱼鹰 FIFO 相关笔...
📅 2023-05-02
阅读全文 →
首页
« 上一页
630
631
632
633
634
635
636
637
638
下一页 »
末页
🔐 用户登录
×
加载中...
加载登录表单中...
🎁
免费注册送10积分
×
加载中...
加载注册表单中...
🔑 找回密码
×
加载中...
加载表单中...
🔐
需要登录
×
🔒
登录后即可使用!
🎁
新用户注册立即送10积分
积分可用于下载资源,免费获取优质技术资料
🚪
退出登录
×
👋
确认要退出登录吗?
退出后需要重新登录才能下载资源