自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 esp32 编程指南核心文件

ESP-IDF 编程指南 - ESP32-C3 - — ESP-IDF 编程指南 v5.1 文档 (espressif.com)ESP-IDF 入门指南 | 乐鑫科技 (espressif.com)

2024-05-24 11:33:42 112

原创 esp32-idf 开发踩坑记录

直接使用原始命令编译idf.py build 但是提示idf 版本错误。

2024-05-22 19:32:47 83

原创 ESP32 S3

ESP-IDF , 乐鑫官方开发框架、专门为esp32系列芯片设计、支持C c++ 语言,并提供一套完整的API,可控制ESP32各种功能和外设优点: 配置灵活、性能更高、功能更多、适合商用缺点: 搭建环境步骤繁琐。

2024-05-20 23:56:43 171

原创 嵌入式单片机笔试题

DC-DC转换器通过改变输入电压的形式(通常是电压升压或降压)来提供输出电压。它们使用开关元件(如MOSFET)以及电感和电容来实现电压的转换。LDO则通过调整输入电压之间的差值来提供稳定的输出电压。它们通过调节一个可变电阻(通常是一个晶体管)来实现电压稳定。由于DC-DC转换器利用了电感和电容存储能量,它们通常具有较高的效率,特别是在较大的电压转换范围内。LDO的效率通常较低,特别是在输入和输出电压之间的差值(即压降)很大时,因为它们将多余的能量转化为热量散失。

2024-05-14 15:56:40 1275

原创 linux入门

ps 查看当前系统运行进程。数据同步写入磁盘命令。

2024-04-30 01:14:34 429

原创 嵌入式软件笔试题

在这个修改后的版本中,通过使用互斥锁(os_mutex_t)来确保在counter_increment和counter_decrement函数中对__g_counter的访问是原子的。通过以上改动,确保全局变量 _g_counter 被正确初始化,同时修改信号量的使用,使得 counter_increment 和 counter_decrement 函数可以正常工作,避免竞争条件和死锁情况。另外,你也可以使用信号量来实现同样的效果,即在访问__g_counter之前先获取信号量,在访问完成后释放信号量。

2024-04-27 00:55:20 442

原创 编译器关键字解析

在一些特定的编译器中,特别是在嵌入式系统的开发中,__root 可以用来指示编译器将变量存放在特定的存储区域中,例如 Flash 存储器中,而不是默认的存储区域。在你提供的代码中,__IO 可能被用来告诉编译器 UniqueID[i] 是一个与硬件相关的状态或配置信息,它的值是从地址 0x4925+i 处的外部设备或寄存器中读取得到的。这个关键字通常在嵌入式系统的开发中使用。__root 是一个编译器特定的关键字,通常用于告诉编译器将变量放置在代码的根部(Root),以确保该变量的全局可见性和可访问性。

2024-04-25 23:47:49 272

原创 LVGL基础到进阶

图形用户界面, 是指代采用图形方式现实的计算机操作用户界面GUI库: 图形用户界面库,只需调用GUI库的函数就看也i快速绘制出所需要的用户界面开发难度低可移植性风格统一、协调常见GUI库emVinLVGLtouchGFXQTlvgl ( light and versatile graphics library ) 是一个轻量、多功能的开源图形库支持多种输入设备部件、功能丰富具备高级图形特性支持多种样式属性C语言编写LVGL官网。

2024-04-25 14:56:51 216

原创 单片机选型

其中,ESP32是一款高度集成的低功耗芯片,拥有双核处理器,支持WiFi和蓝牙双模通信,具有丰富的外设接口和传感器接口,适用于各种物联网应用开发。:该系列单片机是STM32系列中的低功耗系列,主要适用于对功耗要求较高的应用,如智能仪表、便携式设备等。:该系列单片机是STM32系列中的无线单片机系列,适用于需要无线通信的应用,如蓝牙、Wi-Fi等。:该系列单片机是STM32系列中的高性能图形单片机系列,适用于需要高性能图形处理能力的应用,如车载导航、游戏机等。单片机有各种类型和规格,具备不同的功能和特性。

2024-04-24 18:49:21 752

原创 Linux(韦东山)

入门之后,根据自己的需要学习bootloader / 驱动大全 / LVGL。看完第六篇之后,还可以继续做更多的官网的项目。然后: 驱动程序基础。

2024-04-23 23:38:11 164

原创 BTSB-面试题

对数组名 a 进行自增运算是非法的,因为数组名不是一个可修改的左值。在 C 语言中,数组名 a 表示数组的首地址,而数组的地址是一个常量,不能被修改。因此,a++ 这行代码会导致编译错误。在32位系统里面,用C语言写一个程序,如何判断小端和大端。下面输出哪个选项能指向a[1] 这个元素?用C语言写一个链表逆置。

2024-04-23 14:58:58 283

原创 单片机 VS 嵌入式LInux (学习方法)

而Linux作为开源、稳定且灵活的操作系统,已经成为许多嵌入式系统的首选。但是,如果你希望在嵌入式领域有更广泛的发展,掌握Linux也是一个很好的选择,可以为你提供更多的就业机会和发展空间。尽管有这些区别,但在实践中,嵌入式Linux和单片机开发可能会有交叉,例如在嵌入式系统中同时使用Linux和单片机,或者在某些应用中使用嵌入式Linux替代传统的单片机方案。:许多现代嵌入式系统需要支持多任务处理和网络功能,而Linux作为一个多用户、多任务的操作系统,天生具备这些功能,能够满足现代嵌入式系统的要求。

2024-04-22 18:16:51 645

原创 单片机开发常见算法

11.图形处理算法在需要显示或处理图像的单片机应用中,可能会用到点阵显示、图形变换、颜色处理等算法,在一些点阵屏,TFT屏的应用比较多,这个一般根据实际的图形或者屏尺寸制定算法。如遗传算法、模拟退火算法等,用于寻找问题的最优解或近似最优解,像遗传算法一般用来做机器人的路径规划,以找到最优的移动路径,避开障碍物,做过智障小车的小伙伴,应该比较熟悉了。涉及字符串的比较、复制、连接、查找、替换等操作,这些算法在单片机上面也会用到,比如屏显示,json、物联网模块的指令数据处理。

2024-04-22 18:05:51 676

原创 C++从入门到出门

引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它与引用的变量共用同一块内存空间。(引用是某个实例的别名。5、不能有null引用,必须确保引用是和一块合法的存储单元关联。引用在定义时就被初始化,之后无法改变(不能是其他实例的引用)。对指针变量使用"sizeof"得到的是指针变量的大小。对引用变量使用"sizeof"得到的是变量的大小。指针变量的值可以发生改变,存储不同实例的地址;即不存在引用的引用,但可以有指针的指针。1、引用可以看作是一个一定义变量的别名。

2024-04-20 23:26:02 1806 1

原创 C语言指针加法/减法

如果改变了指针类型指向的数据类型,对指针进行 + - 运算,其新指向的位置只和转换后的数据类型有关。指针的减法运算公式:就是两个指针的内存差值 / 指向的数据类型的内存空间大小。如果是char , 则指针指向变化1byte。如果是int,则指针指向变化4byte。

2024-04-20 17:55:34 148

转载 电子工程师入门

硬件是个靠经验吃饭的行业,要想成为一名优秀的电子工程师确实不容易。即使你学习的是电子专业,没有经过几年的摸爬滚打,也很难成才,甚至连技术员都算不上。这个职业有点特殊,需要我们“反复实验,不停地总结”,才能真正体会到电子设计的要领。书本上写的东西,毕竟很有限。学校里的老师也就那样,除了能讲解一些书本上的知识,还能讲啥?讲深了,学生们听不懂。想搞实验,条件又跟不上。即使做实验,也是草草了事,学不到啥玩意。所以,真正能口传的人都在一线,只有跟着他们,你才能学到很多知识。

2024-04-20 15:29:20 23

转载 研发和生产改进(PCB设计 + 电路设计小结)

8、走线间距以板上元件引脚的最小间距为准,最小要满足0.254,对于0.5脚距的元件,可以在引脚连接处使用0.25mm,不可以使用小于0.2mm间距走线。10、插件元件的焊盘和孔,要能反复拆卸,不至于导致损坏,排针引脚通常使用1.0~1.1mm,特殊插座,要比实际引脚大0.5mm,且焊盘要大。2、尽量使用PCB端子台和带锁扣的连接器,如VH插座,KF128端子台,KB396,KF7.62方便接线,尽量合并插座。对于电源引脚的焊盘,需要加大,不能小,该小的地方不能大,防止散热快导致虚焊。

2024-04-20 14:08:26 19

转载 电子工程人员职业规划

各大公司追求高大上产品设计,追求品牌效应,防止小公司抄袭或盗版,Linux由此登上热搜,招聘需求随处可见,即使用不到,也会被要求,哪怕是小公司也是如此,电子职业人员的能力再次被强化。到了2015年,产品设计愈发复杂,分工愈加细密,小产品开发逐渐被淘汰,分工合作成了必然趋势,设计不再体现个人英雄主义,因为一个人的效率实在太低了,团队精神显得更为重要,但是火车头的作用还是必须要的,毕竟老马识途,会为团队指引方向。上市公司就那么多,没钱搞的公司和小公司起起哄,是可以的,想法也是好的,值得鼓励。

2024-04-20 14:01:59 15

转载 如何学习单片机编程?

于是,我边工作边复习书本上的知识,并且还做了详细的笔记,把认为有价值的东西记在笔记本上,包括抄电路图,抄程序,并记录学习的心得体会。由于那时网络不发达,信息闭塞,和外人交流很难,只能靠自己去理解,有时为了一个问题需要考虑很多天,问周围的人他们也不懂。另外写程序时一定要做注释,多看看高手写的程序,不单单是看功能,还要看人家的代码书写风格,养成良好的编程习惯。总之,能坚持下来的,都是精英。多问,就是多问自己为什么,有没有其他更好的方法来实现,包括给自己提问题,能找到老师问更好,大多是没有老师的,只能靠自己了。

2024-04-20 13:58:13 21

原创 原理篇-文章收藏

学习微机原理与接口这一篇就够了

2024-04-08 17:14:57 78

原创 FreeRTOS文章收藏

FreeRTOS(教程非常详细)

2024-04-08 17:11:05 93

原创 FreeRTOS 队列游戏挡球板

通过freeRTOS创建多个任务。

2024-04-08 16:55:39 897

原创 ARM架构简明教程

ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing),它所用的指令比较简单,有如下特点:① 对内存只有读、写指令② 对于数据的运算是在CPU内部实现③ 使用RISC指令的CPU复杂度小一点,易于设计对于上图所示的乘法运算a = a * b,在RISC中要使用4条汇编指令:① 读内存a② 读内存b③ 计算a*b④ 把结果写入内存。

2024-04-07 18:52:29 773

转载 解决:STM32CubeMX生成MDK代码提示项目有问题(...have a problem)

近几日在进行嵌入式开发过程中,通过STM32CubeMX进行STM32项目创建过程中,在生成MDK代码时提示"The Code is successfully generated under C:/TEST/LED but MDK-ARM V5 Project genera have a problem",期间尝试多种方式解决,均以失败告终。终于黄天不负有心人,经过一天的尝试,解决了该问题。故在这里把解决经验分享给大家,希望可以帮到大家。

2024-04-07 18:15:09 453

原创 我的大学我的青春—永不磨灭的番号

那年夏天一切都来地很突然,9月的骄阳是那样迷人灿烂,我带着父母的嘱托和教导迈入了水院壮丽的大门,这意味这一些的精彩纷呈将会在这片土地上演绎我人生一段不可忘怀的岁月,所有的一些似乎都是那么自然,然而背后的艰辛他人却全然不知,可内心深处的坚强信念教会我用用微笑覆盖恐惧带来的黑暗,用理想重振昔日对实现自我价值的抱负,每天清晨敲醒我的并非闹钟而是梦想。我现在的学业成绩告诉我的当初的选择是明智的,它的操作实践性非常强,而我在这方面做了很多的锻炼和体验,为的就是提高自己在行业竞争中的优势,使自己处于不败之地。

2024-04-07 15:03:05 418

原创 利用PADS设计PCB流程

pcb

2024-04-07 14:52:41 233 1

原创 NB-IOT

中移动M5311模块使用手册

2024-04-06 15:08:04 113 2

原创 开源项目-CSDN专栏

单片机毕业设计物联网嵌入式

2024-04-04 21:11:08 227

原创 C语言 常用库函数

【C语言】详解atoi函数【C语言】C语言 atoi 函数解析【C语言进阶】最常用的库函数大全——从入门到精通

2024-03-31 23:19:38 186

原创 ESP8266 AT 指令 & 01固件烧录

ESP8266系列模组是深圳安信可(Ai-thinker)公司开发的一系列基于乐鑫ESP8266EX的超低功耗的UART-WiFi模块的模组,可以方便地进行二次开发,接入云端服务。从厂商角度来看,乐鑫是ESP8266的芯片厂商,安信可是依赖ESP8266生产模组,在ESP8266芯片的基础上,完善了外围器件布局和优化天线,并提供一系列开发方案的厂家。ESP8266这个词可以理解为ESP8266EX芯片,以及依赖ESP8266EX芯片开发的系列模组的简称。

2024-03-31 02:08:36 246

原创 汇编指令 BX LR

当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中。在子程序返回时,把LR的值复制到程序计数器PC即可实现子程序返回。二、当异常发生时,LR中保存的值等于异常发生时PC的值减4(或者减2),因此在各种异常模式下可以根据LR的值返回到异常发生前的相应位置继续执行。BX LR的作用等同于 mov pc,lr。下面这个图是我实际遇到的,也不难理解了。一、用来保存子程序返回地址;转载自 青 nih的博客。

2024-03-27 18:07:19 285

原创 C语言 - 十六进制记忆小技巧

十六进制记忆

2024-03-27 16:35:04 186

原创 Keil MDK 5.14.0 Debug仿真时System Viewer菜单显示空白和Peripherals菜单无内容

嵌入式开发–Keil MDK仿真时System Viewer不显示寄存器选项](Keil MDK 5.14Debug仿真时System Viewer菜单显示空白和Peripherals菜单无外设寄存器的解决办法)注意: 在没有打开debug的时候,是没办法看到Peripherals 的内容的,只有进入调试的时候才能看到。如果你进入调试模式也无法看到,说明有你的配置没弄好。无法在菜单栏查看外设寄存器。路径下选择你的芯片型号。

2024-03-27 14:11:50 383

原创 C语言 指针综合应用 ( 高阶应用 )

下面代码主要使用指针实现一个,图书馆管理系统的应用代码。结构体指针、函数指针数组、数组指针、函数指针、结构体指针数组,还有枚举、类型定义、宏定义主打一个为了使用指针而使用指针。

2024-03-24 17:12:24 368

原创 C语言 数组指针 & 指针数组

(p+1)单独使用时表示的是第 1 行数据,放在表达式中会被转换为第 1 行数据的首地址,也就是第 1 行第 0 个元素的地址,因为使用整行数据没有实际的含义,编译器遇到这种情况都会转换为指向该行第 0 个元素的指针;每一个一维数组又包含了 4 个元素,例如 arr[0] 包含 a[0][0]、a[0][1]、a[0][2]、a[0][3]。[]的优先级高于*,()是必须要加的,如果赤裸裸地写作int *p[4],那么应该理解为int *(p[4]),p 就成了一个指针数组,而不是二维数组指针。

2024-03-24 14:55:18 896

原创 C语言一级指针、二级指针(看这篇就够了)

从上面代码我们看出来,一开始我们的ptr指针,指向的数据是num1的地址,但是现在如果我想要他指向num2,则我就必须把num2的地址赋值给ptr,而函数内部,如果你想修改外部的指针的指向。结果好家伙,你倒好,你到了小明家,把人家东西偷了,最后被抓了,你还说是我指示你这么干的。在单片机内部,用不同的数据类型,每个数据类型占用的内存空间不尽相同,当我们在执行函数的时候,学过C语言的都知道,这个时候,你可能会想,那不久完事了,我的目的达到了,我改变了ptr的指向,以后你想要获取新指向的内存空间的数据。

2024-03-22 18:14:47 949

转载 sscanf函数使用详解(转载)

上面的格式中,[0-9]表示这是一个仅包含0-9这几个字符的字符串,前面使用数字31修饰词表示这个字符串缓冲区的最大长度(这也是sscanf最为人诟病的地方,很容易出现缓冲区溢出错误,实际上sscanf是可以避免出现缓冲区溢出的,只要在书写任何字符串解析的格式时,注意加上其缓冲区尺寸的限制)。"%04d%02d%02d"是用来解析字符串的格式,%表示格式转换的开始,d表示转换为一个整数,04作为d的修饰,表示这是一个长度为4位的整数,不足4位时以0补齐。其后是一序列数目不定的指针参数,存储解析后的数据.

2024-03-21 17:10:14 25

原创 315/433Mhz无线信号

这20位地址码已经由芯片厂商事先烧录好,也就是做片子的时候就写好了,你买到手里的芯片都有一个不同的地址码,2^20=1048576,一百多万个。由于315MHz和433MHz的波长较长,它们都具有较好的穿透能力,可以穿过一些障碍物如墙壁、建筑物等,实现远距离传输。然而,并非所有的RF芯片都能同时支持这两种频率,一些设计可能会做出牺牲以获得更好的性能或适应特定的应用场景。433MHz:工作频率稍高,主要用于遥控器、无线门铃等场景,同样具有较好的穿透能力,但在一些情况下可能受到一些干扰。

2024-03-15 00:09:54 1297

原创 C语言-设计模式

在这个示例中,我们使用了AVR单片机的外部中断0(INT0)来模拟按钮的按下事件,当按钮按下时,硬件会自动触发INT0中断,并执行INT0中断服务程序(ISR)。在主程序中,我们根据当前状态执行相应的操作,例如在等待玩家输入状态下等待按钮按下,而在游戏进行中状态下执行游戏逻辑。在单片机开发中,观察者模式通常用于实现事件驱动的系统,其中多个模块或组件可以注册为观察者,以便在事件发生时接收通知并执行相应的操作。在这个示例中,我们定义了三种设备类型:灯、风扇和空调,并实现了对应的打开和关闭命令执行函数。

2024-03-14 16:11:30 982

原创 C语言-回调函数的应用

回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。

2024-03-14 14:29:01 355

C语言编程思想

设计模式

2017-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除