- 博客(1812)
- 资源 (5)
- 收藏
- 关注

原创 开干!逍遥的小蜜圈
关注、星标公众号,直达精彩内容ID:技术让梦想更伟大整理:李肖遥Who Am I 大家好,我是「逍遥的小蜜圈」星球的星主,如果大家关注我早一点,一定看了我的简单的自我介绍,关于我 — 聊...
2020-12-13 15:30:06
2027
10

原创 【技术让梦想更伟大】专辑 | 原创汇总
关注、星标公众号,直达精彩内容ID:技术让梦想更伟大作者:李肖遥想做一个有态度的公众号,原创是我的态度,这样的话不仅自己可以学习到新的知识,巩固自己所学,也可以与大家一起分享。做公众号一...
2020-12-08 22:14:00
2036
7
转载 介绍一种特殊的串口数据发送方法
本方法主要思想是:定时器中断触发后,判断是否有数据要发送,如果有数据要发送并且满足发送条件,则将数据放入发送FIFO中,对于lpc1778来说,一次最多可以放16字节数据。在我们的使用中发现,定时器中断是几乎每个应用都会使用的,我们可以利用定时器中断以及硬件FIFO来进行数据发送,通过合理设计后,这样的发送方法即不会造成CPU资源浪费,也不会多增加中断源和中断事件。因为发送需要操作串口寄存器以及RS485方向控制引脚,需跟硬件密切相关,以下代码使用的硬件为lpc1778,但思想是通用的。
2025-07-20 22:11:57
6
转载 在美打拼12年被迫离开了
的履历可以发现,她的职业生涯几乎可以用”一路向上”来形容。最近,美国移民系统也出现了大规模风波:据报道,留学生和访问学者的信息系统(SEVIS)中,已有超过 4700 名国际学生的记录被“终止”,导致他们失去合法身份,甚至面临签证被吊销、被驱逐的风险。Kai Chen(昵称也叫 Cathy)是一位加拿大籍的 AI 研究员,尽管她已经在美国生活和工作了 12 年,但据 OpenAI 高级研究科学家 Noam Brown 透露,她于上周五收到美国绿卡申请被拒的通知,很快就要被迫离境。
2025-07-17 22:13:00
31
转载 一个回车符搞崩Git,甚至能触发远程代码执行?
披露了一个严重漏洞(CVE-2025-48384),攻击者可以通过精心构造的 .gitmodules 文件,在类 Unix 系统上实现任意文件写入,最终控制用户系统。这一漏洞利用的是 Git 配置解析中对 \r 字符处理的不一致性,看似微小的逻辑差异,却构成了实质性安全威胁。而你在现代键盘的“Enter”或“Return”键上常见的“↵”图标,实际上就是“回车”和“换行”两个动作的结合,其中 Line Feed 表示为“␊”。在今天发布的 Git 更新中,我还修复了其他几个不同严重程度的漏洞。
2025-07-16 22:11:04
38
转载 太强!硬核开发者3个月手工焊接、敲1800行汇编代码,竟让自制芯片连屏幕放《黑客帝国》
【代码】太强!硬核开发者3个月手工焊接、敲1800行汇编代码,竟让自制芯片连屏幕放《黑客帝国》
2025-07-15 22:12:23
33
原创 基于Qt框架的自定义窗口框架
当然这个项目还有一些不完整的地方,比如调整每个角的大小窗口、可以贴靠屏幕边缘等等,总之不乏是一个适合练手的好项目。2. 自定义深色样式(基于带有深色调色板和自定义样式表的 Fusion 样式)推荐一个炫酷的Qt开源项目,主要是可以锻炼我们pyqt5和类实现的一些技巧。简单的 MainWindow 类实现,具有无框窗口和自定义深色样式,并且。Look 基于 VS2013 应用程序窗口(平面和无框窗口)它还添加了对标题栏和按钮(最小化、最大化、关闭)的支持。6. 单击标题栏可在窗口类型之间切换(最大化和正常)
2025-07-10 22:14:05
430
转载 嵌入式C语言易错错错点
所以严格来说,memset函数本身并不具有初始化的功能,而是一个单纯的按字节填充函数,只是人们在使用的过程中,扩展出了初始化的作用。字符串初始化的方法比较多,我这里简单介绍三种,因为字符串本质上是由一个个字符组成的字符数组,所以其初始化的最终目的,很多人经常会犯的一个错误,我们知道,在指针作为实参进行参数传递时,该指针就已经退化成了数组,所以很多人就想到用。指针是个让人又爱又恨的东西,一般的整形、字符串等,初始化之后就可以直接拿来用了,可指针如果初始化为。很多人就不能理解了。按照一般的惯性思维,不是应该。
2025-07-09 22:08:24
28
转载 这种低级错误,把我搞惨了
在很多人看来,写代码是一件极其牛马的事情,但是厉害的程序员是会把这些东西给规避掉的,他们在无数的asccii中找到了某种力量,我觉得这是优秀的,开发中难免会遇到各种问题,我就经常遇到有人发一小部分代码截图问我,为什么会这样,那样。今天第一天上班,有一个小伙伴就给我抱怨,说他遇到了一个非常奇葩的问题,当时就差把电脑给砸了。我们一直在说代码规范,说了无数遍,但是写代码的时候还是会遇到问题。每个问题都会有真相,我们有时候看不到真相是因为我们知道的还是太少。前两天,我一个读者给发的另一份代码,他的截图是这样的。
2025-07-05 22:09:08
39
转载 分享一个用过最稳定的开源PID库
比如ST的"ST Motor Control Sdk",或者TI的C2000系列的control suite。进入主界面,这里基本的例子都是基于TI的C2000系列的MCU进行开发的,具体如下图所示;这里面不仅仅做了积分抗饱和,还有对微分环节的滤波处理,所以应用到项目中是没有问题的。进入ti的官网,输入control suite进行搜索,就可以找到相应的安装包。文件,这里介绍了对应的平台,当然是TI系列的MCU,并且依赖于。另外,这个路径下的文档中,还提供了相应的。的相关的知识,可以参考一下我的这篇文章。
2025-07-03 22:09:39
34
转载 带你深入理解指针 绝对干货,没一点儿水分!
而指针的种类繁多,特别是数组指针,指针数组,函数指针,函数指针数组,指向函数指针数组的指针,数组名,取地址数组名等等都属于指针的范畴。6.&数组名取出的是数组的地址。虽然是数组的地址,但不管怎么说,它都是地址,地址的大小都是4或8个字节。2.这里数组名没有单独放在sizeof中,所以这里的数组名代表首元素地址,而地址的大小在32位平台下是4个字节,在64位平台下是8个字节,所以本题的答案是4/8。8.&数组名+1,指针跳过整个数组,但这个表达式依然是地址,sizeof计算的依然是地址的大小。
2025-07-02 22:13:27
34
转载 分享一个嵌入式开发调试利器!
也没有检测到test_func2的栈缓冲区溢出的问题,因为执行到test_func1的时候程序已经被终止了,如果把test_func2放在test_func1之前运行,就能检测到test_func2的异常。结论:当程序里存在thread异常与address异常时,使用AddressSanitizer检测器能准确检测到第一个触发的address异常,不能检测到thread异常。这种情况我们要怎么检测?ThreadSanitizer检测器能正常检测出资源竞争的问题,也检测出了test_func1中的。
2025-07-01 22:11:39
36
转载 昨天死磕的bug,第二天就搞定了
当大脑长时间聚焦于同一问题时,会形成"思维隧道效应"(cognitive tunneling),大脑相当于电脑主机,运行了一天产生了太多的垃圾,就会干扰大脑工作,越来越卡,然而。你盯着那段软件代码已经不知道来来回回修改或调试多长时间了,示波器、逻辑分析仪的波形完美无缺,但这个功能总会未来的某个时刻出现你不想看到的现象。最后已经深夜了,公司都没人了,看不住了,明天再来看下吧~好了,今天就跟大家分享这么多了,如果你觉得有所收获,一定记得点个。你是否有遇到过类似的情景,很晚了,屏幕的冷光打在布满血丝的眼睛上。
2025-06-27 22:13:06
56
转载 同行美国专利申请半年就授权,你的案子两年了还没消息?
如果选择以371途径进入美国,即使在例如15个月时就以完备手续进入了美国国家阶段,美国专利局仍然会搁置该申请直到30个月期限届满再处理,延后了专利可能授权的时间。但PPH也不是随便能用的,它要求你的美国申请要和那个在先案“实质对应”,改动太大可能被拒。因此,如果你正好也有案子卡在“等消息”的阶段,不妨回头看看这三个问题——路径、策略、流程,缺了哪一块?更要命的是,有些申请,其实已经走上了加速轨道,却因为一个OA错过、一个流程没人管,所以,如果说路径决定了“你能不能快”,那加速策略就是“你想快多少”。
2025-06-25 22:17:59
154
转载 这些基础的编程规则,不懂不行
我认为缩进一定要有,而且是一定要对齐的,但是至于是一个tab,两个空格、四个空格,8个空格,这些不是问题的关键,关键是如果原来的代码是8个空格缩进或者没有缩进,你在原来的代码上添加代码,就应该遵循原来代码的风格。但是这里有很多大能会强制要求让 * 跟随类型,我认为这不是重点,重点是大家要理解代码的含义,* 表示指针,如果你从指针的理解的话,应该要跟随类型,如果你要看重指针指向的内容的话,* 号应该跟随变量名。在 Linux 内核中,全局变量的命名遵循一套严格的约定,以确保代码的可读性和一致性。
2025-06-23 22:12:48
33
转载 51单片机过时了?为什么我推荐51入门?
使用库函数开发,比如标准库,HAL库,LL库这些,那么一个工程模板一大堆C文件,还有一堆宏定义,还有封装了很多的结构体,指针的使用。需要一定C语言基础,如果这里基础没打好,可能调用库都调不明白,云里雾里的,对不起,再去好好学学C语言吧。架构相比ARM和RISC没有那么复杂,特别是IO是双向输出的,虽然功能简单,不像ARM的GPIO那样,首先要配置时钟,然后还要配置模式,输入输出,上拉下拉。不过ARM架构,拿STM32来说,就有寄存器开发,标准库,HAL库,LL库,这些开发方式。这里简单说说我的看法。
2025-06-21 22:11:50
58
转载 这样的DIY,大大提升技术和实践能力
自嘉立创铝型材公模外壳上线开始,就获得了海量客户好评。虽然嘉立创铝型材公模外壳无论从价格,还是从品质方面拿出去都是非常“能打”的,但由于型材外壳是机加工件,对于海量DIY客户来说成本压力还是比较高,那有没有一种成本更低的方案呢?嘉立创FA铝合金公模外壳提供的设计神器,无需有三维建模基础,可直接点击PCBA模型上的元器件直接开孔,熟练后三分钟可完成PCB铝合金外壳设计,请看VCR。为了让更多人知道嘉立创铝合金外壳免费打样活动,客户仅需分享给3个好友登录嘉立创铝合金外壳免费打样活动页(不分新老客户),即可把。
2025-06-18 10:01:06
93
转载 离职员工发万字长文谈阿里,深藏功与名
财的方面,员工级别通胀严重,一方面是输入型通胀,另一方面是内在通胀,很多人论资排辈,机会越来越少,但人要留住,只能放水晋升。同时,重整HR体系、改革管理体制、清理不合格的中高层、统一职级并公开、公示绩效晋升、削减冗余业务、弱化过度运营,追求真实成效,以更好地迎接AI时代的到来。人才方面,过度迷信外部新秀行业或公司的人才,导致新人缺乏 “阿里味”,内部恶性绩效竞争激烈,激励制度失效,员工合作成本大幅提高,真正踏实做事的人越来越少。好像人的成长,阿里的发展也有很多必然要走的路和过程,阿里巴巴在发生变化之中。
2025-06-13 22:11:25
377
转载 状态机编程,还是这么丝滑
从代码简化提高效率的角度来看,我们完全可以把这 5 次合并为 1 次放在 switch—case 语句之前,两者的效果是完全一样的,代码里之所以这样啰嗦,是为了清晰地表明每次状态迁移中所有的动作细节,这种方式和图2的状态转换图所要表达的意图是完全一致的。这样,每一个状态中发生的每一个事件都会在我们的考虑之中,也就不会留下逻辑漏洞。后来我试着思维模拟一下程序的工作过程,正确的算式思路清晰,流程顺畅,可要碰上了不规矩的式子,走着走着我就晕菜了,那么多的标志位,那么多的变量,变来变去,最后直接分析不下去了。
2025-06-12 22:10:51
120
转载 强!! 裸机状态下实现RTOS
想要在裸机状态下,简单实现一些类似RTOS环境下的功能,其实网上也有很多组件包,今天 就来分享一款类似的组件:ToolKit.:此函数在使用定时器功能最初调用,目的是创建定时器列表头结点,和配置tick获取回调函数。功能,当配置此模式并且缓冲区已满,若有新的数据存入,将会移除最早数据,并保持缓冲区已满。:超时回调函数可定义多个,即一个定时器对应一个回调函数,也可多个定时器对应一个回调函数。事件标志,每个标志占1Bit,发送多个标志可“|”感兴趣的标志,每个标志占1Bit,多个标志可“|”
2025-06-09 22:12:05
93
1
转载 给你们安利一个值得长期关注的博主
20年商海沉浮,线上能打、线下也懂,是真正穿越过多个经济周期的实战派。他不仅做过石油实业、跑过产业链,还深度参与了国内多个风口投资。他是一位靠洞察力、执行力、胆识在能源周期中掘金的企业家。• 他踩过的坑、赚过的钱、亏过的血,都写得清清楚楚。• 厌倦鸡汤,希望听点“真话与真金白银”干货的人。石油大王的内容,是这个时代稀缺的真实、冷静与洞察。建议你现在就关注,慢慢读,反复读,时间会给出回报。很多看起来“后知后觉”的热点,他早已提前布局。有时候,一篇对的文章,就能让你少走三年弯路。
2025-06-06 22:08:21
57
转载 软件架构实现的思路
确定需求和约束:在设计嵌入式软件架构之前,首先需要明确嵌入式系统的需求和约束条件,例如系统的功能需求、实时性要求、功耗限制、硬件资源限制等。选择合适的架构风格需要考虑到系统的需求和约束条件,以及开发人员的经验和技能。总的来说,实现嵌入式软件架构需要结合系统需求和约束条件,采用模块化设计、优化资源利用、考虑实时性、安全性和可靠性等方面的思路,以确保系统具有良好的性能和可维护性。总的来说,嵌入式软件架构的出现是为了应对嵌入式系统中软件复杂度和系统需求的挑战,提高系统的可靠性、可维护性和可扩展性。
2025-06-05 22:11:17
53
转载 搞嵌入式绕不开的技术点
linux下注册驱动的时候,将设备号和文件名进行了映射,并实现file_operation里的一些函数,例如,write、read、ioctl。很多人嵌入式学习都有些迷茫,不知道从哪里入手,不知道自己的水平位于哪个层次,不知道从哪方面提升,今天我们就从一个8年工作经验的嵌入式资深工程师的分享,来看一下嵌入式学习那些你绕不开的技术点。嵌入式的东西很多,想要整理起来,也是很花费力气的一件事情,有时间我就会慢慢的整理,当然如果对别人有用的话,那就更好。嵌入式的优化分为两部分,算法上的优化,编程上的优化。
2025-06-04 22:13:41
47
转载 总结了一份嵌入式驱动开发经验
1 嵌入式驱动开发到底学什么嵌入式大体分为以下四个方向:一、嵌入式硬件开发:熟悉电路等知识,非常熟悉各种常用元器件,掌握模拟电路和数字电路设计的开发能力。熟练掌握嵌入式硬件知识,熟悉硬件开发模式和设计模式,熟悉ARM 32位处理器嵌入式硬件平台开发、并具备产品开发经验。精通常用的硬件设计工具:Protel/PADS(PowerPCB)/Cadence/OrCad。一般需要有4~8层高速PCB设计经验。二、嵌入式驱动开发:熟练掌握Linux操作系统、系统结构、计算机组成原理、数据结构相关知识。熟悉嵌入式ARM
2025-06-02 22:11:00
178
转载 单片机多任务事件驱动C源码
事件列表创建一个全局循环列表管理事件,调用taskEventIssue()生成一个事件,放到事件循环列表,taskEventLoop()函数放到主线程循环调用,当事件循环列表中有事件时,根据任务ID分发到具体的事件处理任务。定时器列表创建一个全局列表管理定时器,taskTimer()建立一个定时器,放到定时器列表执行,当定时时间到,会生成一个定时器事件,放到事件列表,分发到具体的事件处理任务。本文素材来源网络,版权归原作者所有。代码分为3个模块:任务列表、事件列表、定时器列表。
2025-05-27 22:09:04
59
原创 杭州的一个月,惊心动魄
杭州天气还是很好的,我比较喜欢,深圳的快节奏经历多年了,偶尔来杭州感受下不一样的风景感觉很好,只是时间有限平时也比较累,没有去过除了酒店和公司的任何一个地方。因为涉及到一些公司的机密所以关于做的事情不方便说,总之就是干了一件比较不错的事情,虽然过程中我做的不够好,也没有拿到好的绩效,但是对我来说也是一个成长。这次来的太匆忙了,几乎都在干活,本想约着杭州的朋友玩一下,还有到苏州找下痞子衡,奈何时间有限,任务艰巨,没有完成。当然了,去各种地方喝酒还是有四五次了。来源:技术让梦想更伟大。
2025-05-25 22:12:05
231
转载 新手学几天STM32,为啥一脸茫然
在项目需求确定后,根据芯片和器件选型,就能够确定硬件PCB的绘图和布置,功能需求也能确定,如访问外部EPPROM,那么I2C就确定为主模式,并根据EPPROM的读写时序和芯片的性能,考虑到效率和稳定的平衡,就可以确定I2C的速率,考虑布局和其它需求,I2C对应的复用引脚也能确定。如大部分外设模块都要进行时钟使能,GPIO就要配置引脚的上拉/下拉,推挽/开漏,USART配置模式,波特率,奇偶校验,停止位,数据位,还要考虑对应GPIO的端口复用,I2C就要考虑主从模式,根据需要的传输速率确定模块时钟,S。
2025-05-21 22:11:44
163
转载 嵌入式C有哪些不一样
在优化运行速度,或者存储受限时,理解这部分知识对于代码的维护就很有意义。讲到这里,关于嵌入式C语言的初步总结就到此为止,但C语言在嵌入式运用的中的重点和难点并不仅仅只有这些,如嵌入式C语言支持的内联汇编,通讯间的可靠性实现,存储数据校验和完整性保证,这些工程上的运用和技巧,都很难用简单的言语说清楚,另外有关异常触发后的查找和解决的技巧,也值得详细的说明,这里因为篇幅以及自己还未整理清晰,就先到此为止。3). 从堆上分配,亦称动态内存分配。动态内存的生存期由程序员决定,使用非常灵活,但同时遇到问题也最多。
2025-05-18 22:14:42
229
转载 国企程序员原来和想象的不一样
当然不是,我加入的项目组,大多都是以2个星期为周期进行开发的,每两个星期要举行一次组内讨论会,如果完不成任务或者bug太多是需要加班处理的,因为国企是不可以出错的,一次出错可能直接招致点名批评(包括这个项目的所有相关人员),一次kpi黑记录,会直接影响你以后的升迁前途。他会问你项目相关的问题,例如:做过哪些项目,解决了什么问题,你在项目中的角色,项目是如何管理的,又是如何进展的,使用了哪些技术栈,为什么挑选这样的技术栈,遇到哪些问题,如何解决的这些问题。国企的稳定性应该是最被人人称道的,特别是中字头企业。
2025-05-17 22:10:34
76
原创 yaml在嵌入式软件开发中的作用
随着嵌入式系统的复杂度日益增加,开发团队需要更灵活的工具来管理配置、自动化流程和优化跨团队协作。YAML(YAML Ain't Markup Language)作为一种轻量级的数据序列化语言,凭借其简洁的语法和强大的可读性,逐渐成为嵌入式开发中的重要工具。YAML解析器支持多种编程语言(如C、Python、JavaScript),便于嵌入式系统与上位机工具链的集成。YAML原生支持列表、字典、多行文本和类型转换,能够描述嵌入式系统中常见的树状配置结构。等文件区分开发板与量产硬件的差异,实现配置的快速切换。
2025-05-15 22:10:58
843
转载 在VS Code下也可以开发恩智浦MCU了
近年来 Visual Studio Code 在嵌入式领域的用户越来越多(主要原因是其通用性,不与任何一家 MCU 原厂深度绑定,且第三方插件众多,生态强大,新功能支持更灵活),为了给恩智浦用户更灵活的开发体验,恩智浦于2023年7月正式推出了 MCUXpresso for Visual Studio Code 插件,把 MCUXpresso IDE 里对 NXP MCU 的支持以及一些核心功能都带到了 Visual Studio Code 里。大家好,我是痞子衡,是正经搞技术的痞子。
2025-05-13 22:11:20
70
转载 如何在 VS Code 中开发 MCU
有些电脑用户,如果在添加了CC-RL和LLVM for Renesas RL78到环境变量中,在接下来的步骤中,遇到了上述变量找不到的情况,可以尝试使用管理员权限打开和运行VS Code。当调试开始后,通用的调试控制按钮将显示,包括如返回,暂停,单步,单步跳过,单步跳出,重启,调试停止。在调试期间,本地变量,设备寄存器,调用堆栈,监视变量,外设状态的详细信息将显示在Run and Debug选项卡中VS Code主侧边栏。解压zip文件,并把ninja.exe复制到CMake的安装路径下的bin文件夹下。
2025-05-12 22:11:36
64
转载 还是大厂好,阿里年终奖有点离谱
其中,P5(校招生)长期激励10w左右,P6(主力员工)长期激励20w左右,P7(初级管理)长期激励40w左右,P8(中级管理)长期激励60w+。其中,P5无长期激励,P6有10w左右的长期激励,P7有20w左右的长期激励,P8有40w+的长期激励。P7绩效3.75,涨薪7.5k,年终奖22w,长期激励65w——P7绩效3.5,涨薪4k,年终奖14.2w,长期激励20w——P6绩效3.75,涨薪3k,年终奖15w,长期激励26w——P7绩效3.5,无涨薪,4个月年终奖,长期激励20w——
2025-05-11 22:12:29
400
转载 MCU软件定时器,一个超好用的轮子
经过分析,在大多数定时业务中,往往只需要在某个时间段定时一次,也就是说定时器会开启定时和结束定时,当然,用数组的实现的定时器也可以开启定时和关闭定时,只需要用start标志去决定就行了,但是用数组实现的方式中,即使你关闭了定时器,也就是去掉了start标志,此定时器虽然不运行了,但是数组的空间不会减少,硬件 tick依然要轮询所有数组。而若我们有一个软件定时器,所有定时业务都依赖于软件定时器,不仅节省硬件资源,以后在移植的时候也只需要将软件定时器和硬件相关的部分修改就行了,其他部分都不用动。
2025-05-08 22:10:15
95
Ymodem协议C语言实现
2018-08-11
SPSS-RFM分析建模操作手册与数据
2018-08-31
状态机的C语言经典实现
2020-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人