
Note
文章平均质量分 80
没有被归类的普通笔记
刻BITTER
这个作者很懒,什么都没留下…
展开
-
HAL 库设置回调成员函数的一种方法
HAL 库都是拿C 写的,想注册回调函数的话,也只能是C 的函数,不能用成员函数作为回调。此外,放在外面的回调函数没办法直接引用到设备驱动对象,必须有个全局的指针变量,让它指向驱动对象,然后回调函数里再使用这个全局的指针去找对象。有了成员变量的地址,就可以根据成员变量在驱动对象中的偏移量,拿到驱动对象的地址。文件里,以后如果改了配置,只要把Cube 新生成的代码复制过来改一下就好了,我可不想在它生成的代码里照着它规定好的格式填空。所以我用的是另一种比较脏的方法,就是直接修改HAL 库的头文件,在。原创 2025-04-06 14:36:22 · 393 阅读 · 0 评论 -
PlatformIO 自定义脚本选择编译库源文件 - 设置只用于C++ 的编译选项
PlatformIO 只支持以文件夹为单位选择要编译的源文件,不像Keil 或者CMake,可以手动控制每一个源文件。而且默认只会将库的src文件夹下的源文件全部加入编译。PlaformIO 默认会将src文件夹下的所有源文件加入编译,并且将include文件夹加入包含路径,但是没有简单的方法把mem文件夹加入编译;要只选择mem里面的某一个文件编译,其他的排除,这就更复杂了。而FreeRTOS 就恰好是这样的结构,需要在五个heap_x.c文件里选择一个。src。原创 2025-04-05 16:51:24 · 904 阅读 · 0 评论 -
Solid Edge 放样使用引导曲线
放样用引导曲线的时候被一个错误提示卡了挺长时间——“选来用作路径或横截面的所有边必须连接在一起”,所以记录一下遇到的问题。https://docs.sw.siemens.com/zh-CN/doc/246738425/PL20211001099989437.feature_modeling/feat12c,或者B 站SE center 的视频教程。原创 2023-01-23 02:00:32 · 3710 阅读 · 0 评论 -
掌握FreeRTOS 实时内核 - Mastering the FreeRTOS Real Time Kernel(九至十三章)
十三章全文翻译自:《 Mastering-the-FreeRTOS-Real-Time-Kernel.v1.1.0.pdf 》;内核版本:FreeRTOS V10.6.2;原文 repo:FreeRTOS-Kernel-Book;部分复制粘贴自:Mastering-the-FreeRTOS-Real-Time-Kernel-CN; 本文开源协议:CC BY-SA 4.0;翻译 2025-01-25 09:38:03 · 108 阅读 · 0 评论 -
掌握FreeRTOS 实时内核 - Mastering the FreeRTOS Real Time Kernel(一至八章)
十三章全文翻译自:《 Mastering-the-FreeRTOS-Real-Time-Kernel.v1.1.0.pdf 》;内核版本:FreeRTOS V10.6.2;原文 repo:FreeRTOS-Kernel-Book;部分复制粘贴自:Mastering-the-FreeRTOS-Real-Time-Kernel-CN; 本文开源协议:CC BY-SA 4.0;翻译 2025-01-25 09:16:54 · 265 阅读 · 0 评论 -
将单色像素值转换成灰阶屏的灰度序列的算法
就是想办法把单色OLED 屏幕的字库转换给灰阶屏用,并且代码中可以根据设置的灰度参数,用一种字体显示出多种深浅颜色。本来感觉会挺复杂的,想了想突然发现其实很简单。原创 2024-11-12 10:48:38 · 554 阅读 · 0 评论 -
AD 单独设置电源焊盘直连铺铜
就是只让电源芯片的地焊盘直连铺铜,其他的地焊盘则默认用十字连接,从而给电源提供大电流通道和散热平面。原创 2024-11-06 00:16:31 · 1318 阅读 · 0 评论 -
自己动手给ESP8285 / ESP8266 1MB 编译新版AT 固件
适用于ESP8266 或ESP8285 的1MB 版本,其他容量版本也可以参考,步骤差不多。官网上说可以到github 下载临时编译的固件,但是过去找了就发现,文件都过期了,所以不得不自己编译。而且官方固件的串口引脚都换成了15、13,我的板子上线接在1、3 上,也得自己编译了改引脚。原创 2024-10-29 22:38:08 · 1176 阅读 · 0 评论 -
Keil MDK 添加外部工具用clang-format 格式化代码
没办法一次性把全部代码文件格式化,它的命令行参数好像只能一个一个文件来,或者用另外一个文件先把所有要格式化的文件的路径放进去,作为列表文件,再把这个列表文件放在命令行参数里传进去,所以我用了个python 脚本来生成列表文件。是个专门用来格式化C/C++ 代码文件的程序,安装LLVM 或者CLANG 编译器的时候会带上,Keil 的armclang 编译器也带了这个,要加到PATH 里。上面显示了所有被过滤出来的文件,再按一下回车确认,就调用clang-format 执行格式化。,脚本执行完就自动删除。原创 2024-10-21 11:20:48 · 1193 阅读 · 0 评论 -
戴尔 Latitude5290 平板上手笔记
想搞个Windows 平板平时带着方便,比安卓平板更泛用,戴尔这个二手九成新机器价格还不错,七百块咸鱼上捡回来个二手。虽然用7 代CPU 的5285 价格更便宜,但是我觉得还是上8 代i5 吧,因为还记得当年说8 代更新牙膏挤了挺多。原创 2024-09-05 13:35:08 · 3268 阅读 · 0 评论 -
下载和安装AD19 - Altium Designer 19.1.9 Build 167
虽然有AD24 的安装资源,但是我比较喜欢19 这个数字[doge]原创 2024-05-26 04:27:04 · 2598 阅读 · 0 评论 -
Altium Designer 中键拖动,滚轮缩放,并修改缩放速度
首先用`#HotIf WinActive("ahk_exe x2.exe")` 检测AD 的窗口,按键映射只会对AD 生效。`MButton::RButton` 就是把鼠标中键映射成右键,从而可以用中键拖动图纸,不过这么一来,所有中键上的功能就都用不了了。下面的`WheelDown::` 和`WheelUp::` 用来加速缩放速度,AD 默认的滚轮缩放太慢了。这几句代码就是接收并拦截发给AD 的滚轮事件,然后,只要用户滚轮滚了一格,就给AD 连续发三次滚轮事件,让AD 认为鼠标已经滚了三格,缩放速度自然原创 2024-05-26 02:28:16 · 3466 阅读 · 0 评论 -
下载和安装AD14 - Altium Designer 14.3.20.54863
这个版本应该还支持XP 系统[doge],总之就是想安装一下,没什么特别的意义。原创 2023-12-29 23:49:26 · 2727 阅读 · 0 评论 -
拆解贝医生冲牙器F3,换电池
是这款伸缩式的,如下图,用了差不多两年,终于充不了电,而且不能开机,估计是电池坏了,拆开试一下。原创 2023-12-08 17:45:15 · 1527 阅读 · 3 评论 -
优化ADC 采样计算的简单思路
想法是尽量简化ADC 采样值换算到真实电压的过程,最好是不涉及浮点运算,整数乘除法成本比较低。原创 2023-08-23 17:08:50 · 5017 阅读 · 1 评论 -
精简体积的OLED 基础驱动库 - OLED_BASIC
1. 目前支持SPI 接口的SSD1316 和I2C 接口的SSD1306,想扩展支持相似的其他SSD 这一家子型号难度应该不大,似乎主要是初始化代码上有区别;2. 不是u8g2 库的替代;3. 不需要显示缓冲区,几乎没有额外的RAM 占用;4. 只支持文本和整数输出函数,不支持矩形以外的绘图功能;5. 想显示图片的话,只要把图片当作大一点字符来用就行,自定义一个单独的字库放进去;6. 自定义字库的部分特意做的很简单,不用像U8G2 库那样还要整一堆编码上的劳什子,取模软件输出的数组直接放进代码就原创 2023-08-21 17:27:37 · 642 阅读 · 0 评论 -
PID 算法实现的细节问题处理 - 从新手级别开始逐步完善
翻译自Arduino PID 库作者的系列博客文章:[Improving the Beginner’s PID](http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/)。作者的结论应该经过了不少人的实际检验,而且文章讲得平易近人,不需要太多的理论基础。翻译 2023-08-03 22:33:03 · 990 阅读 · 0 评论 -
简单的按键监听函数 - 按键消抖和长按、双击事件
用一个简单的C 语言函数实现对单个按键的监听,预定可以用在各种芯片平台上,arduino,C51,stm32 等,对硬件没特别的要求。首先明确这个函数要实现的功能,以及调用它的代码要如何响应各种按键事件。上面说的“时间” 都是指函数调用的次数,也就是轮询按键的次数。较短时间或较长时间,意思就是经过的轮询次数的多少。具体是多长时间,取决于调用者调用函数的间隔。这样做是为了减少依赖,不需要有一个时间函数用来提供时间戳,可以用最简单的延时函数循环调用,从而实现更好的通用性。原创 2023-07-21 15:00:03 · 1341 阅读 · 0 评论 -
ADC 读取电位器旋钮,用回差消除临界值档位跳动
就是比如,用电位器当旋钮做风扇调速,划分出10 个速度档位,对应10 个ADC 转换结果的阈值。如果直接比较阈值,当旋钮拧到临近阈值的地方时,ADC 结果的微小跳动会导致风扇档位在两个级别之间不停左右横跳,因此想到了利用回差来消除抖动。原创 2023-06-17 23:46:50 · 3999 阅读 · 0 评论 -
Arduino 单片机程序中处理时间戳、时间溢出和延时问题
这个话题对其他单片机也适用,就是用来计时的变量万一溢出了该怎么整,类似那个经典的千年虫问题。实际上这个问题在日常生活中也很常见,比如,时钟上的小时最大值为23,从0 开始,每过24 小时归零一次,只按时钟上的小时数来记录时间,最多只能计24 小时。时间超过最大值后归零就是所谓的溢出问题。一种常见的设计是用比较时间戳的方法来预约一个延时任务,比如在1 点整的时候开始一个2 小时的延时任务,1 + 2 = 3,所以任务预约在3 点执行,当前时间大于3 时这个任务就该执行了。原创 2023-05-28 20:31:48 · 3465 阅读 · 0 评论 -
快速找出PATH 路径下重复的命令程序文件
RT,就是想找出命名冲突的可执行文件。日积月累的,PATH 环境变量里乱七八糟堆了一堆东西,很可能想叫一个命令出来,结果实际执行的是另一个地方的程序。原创 2023-05-18 02:08:08 · 347 阅读 · 0 评论 -
用C 实现以静态数组作为内存池的单向链表
完全是ctrl c / v的new bing 吐出来的代码,看着还不错,按自己的想法补了点注释。这是一个使用空闲链表技术优化后的单向链表实现,它使用静态数组作为内存池,而不是堆内存。它还包含一个有序插入函数,可以根据data的大小自动找到合适的插入位置,使整个链表保持从小到大的顺序。这个版本添加了一些注释,以帮助您更好地理解代码。请注意,这只是一个示例,您可能需要根据您的具体需求进行修改。:就是把内存池本身初始化成一个链表,每个节点对应一个空闲的块,创建新链表的节点时直接从空闲链表里拿,不用反复查找。原创 2023-03-25 01:58:35 · 202 阅读 · 0 评论 -
微机原理笔记 - X86 汇编指令系统和语法
主要基于王克义的《微机原理》第二版 ,和其他8086 汇编教材应该没区别。原创 2023-03-24 18:24:17 · 4980 阅读 · 0 评论 -
Arduino 基于状态机实现简易的协程 - 几种非阻塞程序设计风格
想要处理的场景类似生产者 - 消费者模型:在一个顺序执行的函数中间,先要向生产者发送请求,比如让ADC 开始采样,过一段时间,等ADC 采样完成,获得返回的数据之后函数才能接着顺序执行。这是单片机程序里常见的问题,ADC 完成采样需要时间,没有返回的数据函数就不能接着执行,和网络编程中向服务器请求数据差不多,都是必须等待另一个并行运行的单元返回必要的数据,不同点在于,单片机程序不能在生产者那边想办法,硬件是死的。原创 2023-03-13 01:03:22 · 1444 阅读 · 0 评论 -
智能笔式万用表简单体验加拆解 - VC6012C - 智能电笔
虽然上面说了这么多缺点,整体可用性还是可以的,日常很少感觉到不方便,还有一些独到的优势,比如小体积、可换笔尖、两种模式的电笔功能,不过对于只想买个万用表的人来说,这款性价比不够高。原创 2023-02-17 19:33:34 · 4481 阅读 · 1 评论 -
芝诺悖论的计算
没什么复杂的,学了高数应该都懂,只是稍微写写,算是复健一下。芝诺悖论简单表述就是,假设A 和B 之间路程为1,一个人先走了12\frac{1}{2}21,然后又走了剩余路程的12\frac{1}{2}21,就这么无穷匮也,那这人到底能不能走到那边。第一步走了二分之一,第二步走了二分之一的二分之一,以此类推,把每一步走的路程加起来就是这个人一共走过的路程,即:L=12+14+18+116+⋯L = \frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \frac{1}{1原创 2022-06-02 00:24:13 · 291 阅读 · 0 评论 -
几种高特键轴的简单总结
收到个高特键轴随机礼包[doge],简单比较了一下,做个笔记。手里一共是青、绿、金、紫、橙、银、黑,这七种。青、绿、金都是click 轴,或者说舍友杀人轴;紫和橙是段落轴,类似茶轴;银和黑是线性轴。图都是从淘宝店借 (盗) 的,用来参考一下到底是什么颜色。1. 青轴和防尘青轴传说中的舍友杀手,我觉得其实还行,毕竟我一个人住。键轴开关帽是分体的结构,下面有个白色小块,详情参考黑轴、红轴、青轴、茶轴的区别是什么?。比较奇怪的是防尘青轴弹簧音比普通的明显多了,放在耳边的话有余音缭梁的效果,不确定是不是我到手原创 2021-11-23 23:53:46 · 21342 阅读 · 0 评论 -
优利德UT61E+ 说明书电子版 - 技术参数节选
没找到中文版的,在优利德海外官网上找到了英文说明书PDF,这倒是挺迷的。当然也可能只是优利德官网做的太烂了,搜索功能完全智障,所以才没找到。顺便节选一些比较关心的技术参数,用来作为购前参考。1. 一般参数挑重点:最大读数22000,46 段模拟条;读数刷新率3 次每秒,模拟条转换率30 次每秒,意思就是有时候虽然读数没变,但是模拟条可能会狂闪,可以拿直流档测低频方波信号观察一下这种现象,基本也就图一乐;电流安培档保护10A 240V,毫安和微安档1A 240V,都是快断保险;优利德表,或者原创 2021-11-05 02:38:28 · 8786 阅读 · 0 评论 -
考研英语 - 句子的结构 - 语法
考研英语 - 句子的结构句子的基本结构简单句的结构:主 - 谓 - 宾主 - 系 - 表其中,“系” 是指由系动词构成的特殊谓语,表是指对性状的描述,如:It tastes awful.其中taste 是系动词。完整句子中至少要有主语和谓语,在祈使句中,主语被省略。谓语只能由实义动词或系动词构成,动词也只能是谓语,所以可以说“ 谓语⇔动词谓语 \Leftrightarrow 动词谓语⇔动词 ”。主语和宾语的组成成分相同,可由名次、代词、非谓语动词、从句 构成。通过使用被动语态原创 2021-07-21 19:21:11 · 5978 阅读 · 0 评论