- 博客(374)
- 资源 (4)
- 收藏
- 关注
原创 什么是Flash闪存以及STM32使用NAND
第二种闪存称为NAND闪存。NAND 闪存的存储单元采用串行结构,存储单元的读写是以页和块为单位来进行(一页包含若干字节,若干页则组成储存块, NAND 的存储块大小为 8 到 32KB ),这种结构最大的优点在于容量可以做得很大,超过 512MB 容量的 NAND 产品相当普遍, NAND 闪存的成本较低,有利于大规模普及。SD NAND,贴片式TF卡,贴片式SD卡,北京君正,nor flash,存储,芯片,主控,小尺寸emmc,大容量SLC Nand,语音芯片,语音识别,语音控制,语音模块,离线语音。
2024-10-11 15:43:49
939
原创 new/delete和malloc/free到底有什么区别
new和malloc的知识点,作为一个嵌入式工程师是必须要了解清楚的。new和malloc的区别到底在哪里呢内存分配通常在以下场景下使用:动态数据结构:如链表、栈、队列和图,这些数据结构的大小在程序运行时可能会变化。大数据处理:当需要处理大块数据(如图像、文件数据等)时,动态分配可以根据实际需求分配内存。用户输入:当用户输入的内容大小不可预见时,如读取不定长度的字符串。资源管理:在需要创建大量对象,但具体数量在编译时无法确定的情况,如对象池或缓存系统。
2024-09-16 21:27:16
1282
原创 ESP8266_MicroPython——定时器_I2C 总线
我们继续学习定时器和IICMicroPython有一个很大的好处就是有很多已经完善的库,只要看一下函数是如何使用的就可以了,可以大大减少我们的开发时间。
2024-09-14 23:33:34
1410
原创 ESP8266_MicroPython——GPIO_LED_KEY_外部中断
MicroPython比较简单但是没有系统的更新过文章,准备写一下ESP8266——MicroPython的文章做一个系列。可以看出MicroPython还是比较简单的,当你想使用GPIO时导入machine 包就可以了,可以配置输入、输出、外部中断等等。
2024-09-14 23:14:39
1087
原创 带你了解NAND NOR FLASH闪存
由于里面不带控制器,针对NAND Flash的各种管理算法都需要在CPU端来做,一来会涉及到写驱动的问题;NAND FLASH从材质上可以分为SLC/MLC/TLC/QLC,本质区别就是在最小的存储单元内能存放多少bit的信息。目前我们主流的消费类电子产品使用的大容量产品,基本都是TLC/QLC了。2,NAND Flash出厂时会有坏块(不用惊讶,原厂出厂的时候都会标识出来,而且比例是很低),在使用当中也可能产生坏块。NAND Flash产品本身存在一定的特性,要正常使用,必须配备对应的管理机制。
2024-09-12 09:36:04
699
原创 你真的懂吗系列——串口通信
串口通信是一种设备间常用的串行通信方式,串口按位(bit)发送和接收字节。尽管比字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。
2024-09-11 21:34:16
2711
原创 你真的懂吗系列——GPIO
最近在做STM32的时候发现有些寄存器功能并不熟悉,我自己问了一下自己,你真的懂吗?于是便有了这个系列的文章。希望我你能够真的懂。GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。对于STM32来说芯片信号不同,GPIO的数量不同 但是都是叫GPIOX, STM32的大部分引脚除了当GPIO使用之外,还可以复用为外设功能引脚,这篇文章都会详细解释。
2024-09-10 09:38:44
1685
原创 嵌入式ADC常用滤波算法
ADC作为嵌入式中最常用的外设,将模拟量转换成数字量,然后进行处理,这个时候信号的稳定性和准确性就很重要了。ADC采集到数据不仅取决于ADC本身,还跟输入的信号有关有关。输入的信号稳定与否、信号夹带的干扰、噪声等因素都会影响ADC最终的转换结果。所以对于ADC采集的数据往往要进行一些滤波处理,尽可能的消除信号中的一些误差。大家可以对这十种算法进行简单的了解,很遗憾,学习完之后并没有适合我正在做的项目的滤波方法。原文链接本文是在原文链接上进行修改,方便大家能够更好的理解。
2024-09-08 17:37:21
1576
原创 FreeRTOS任务调度(抢占式、协作式、时间片轮转)
FreeRTOS 是一个开源的实时操作系统,它支持多种调度策略,包括协作式(cooperative)和抢占式(preemptive)调度。可以看出,开启了抢占式和时间片轮转两种调度算法时,高优先级的任务一旦就绪,就能抢占低优先级的CPU执行权;如果有两个同优先级的任务都可以运行,则它们之间是时间片轮转方式调度。抢占式调度和时间片轮转两种任务的切换方式,可以说是FreeRTOS系统最核心的功能。
2024-09-08 15:54:30
2827
原创 C语言中结构体struct和联合体union的区别
在C语言中,结构体指的是一种数据结构,是C语言中聚合数据类型的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的类型,成员一般用名字访问。也就是说,结构体是由多种元素所构成的数据结构。struct 结构体 {任意类型 任意变量;任意类型 任意变量;…… };注意:这不是定义变量,而是自定义一种类型而已。//学生姓名int height;//学生身高bool sex;
2024-09-07 18:02:26
934
原创 C语言关键字用法实例详解——const(三)
这篇文章来看一看const关键字使用const关键字定义常量名称时,建议使用大写字母,以区分常量与变量。• 当需要传递不可修改的参数给函数时,使用const修饰指针或引用。有助于提高代码的可读性和安全性。例如:可以被替换为 const float PI = 3.14。• 在函数参数和返回值中使用"const"关键字,以确保数据不被意外修改。有助于提高代码的安全性和可维护性。例如:void String(const char* str);
2024-09-06 16:29:56
988
原创 C语言关键字及用法实例详解
C语言关键字共有32个,根据用途,可分为四类:第一类:变量数据类型关键字:14个第二类:9条基本语句用到的关键字:12个第三类:存储类型关键字:5个第四类:运算符关键字:1个
2024-09-06 08:54:06
915
原创 嵌入式——什么是堆、什么是栈
(1)堆是一种内存管理方式,其内存空间不是连续的,而是杂乱无章的,通过指针来定位数据的存储位置。堆用于动态分配内存,可以根据需要动态地分配和释放内存。堆的大小通常受到计算机系统中物理内存和虚拟内存的限制。其特点就是自由(随时申请、释放、大小块随意)。(2)堆内存是操作系统划分给堆管理器(操作系统的一段代码,属于操作系统内存管理单元)来管理的,然后向使用者(用户进程)提供API(malloc和free)来使用堆内存。(3)什么时候需要使用堆内存?
2024-09-05 09:45:40
1912
原创 关于STM32运行时卡住问题
内存溢出或者访问越界:由于程序中申请的内存超出了系统的可用内存,或者申请的内存在使用过程中未被正确释放。访问了数组范围之外的内存位置或使用野指针,也会导致HardFault_Handler错误。硬件故障:如果硬件出现故障,例如电源干扰、连接器故障或传感器故障等,可能会导致HardFault_Handler错误。最近在调试STM32H7的时候发现我运行突然卡住了,这个功能函数就只能执行一次,然后就用DEBUG查看卡在了哪里。当函数内部的数组过大,或者递归调用层次太深时,就可能发生堆栈越界。
2024-09-04 11:08:34
633
原创 雷龙LSYT201B语言模块结合STM32使用(噪声环境也能高精度)
基于YT2228芯片开发的一款面向智能家居控制的离线语音控制模组,离线语音模块,集成蓝牙功能,可适配各种不同的应用场景,方便使用,减少开发周期。模块通过麦克风对语音进行采集,然后由语音芯片进行识别处理,识别成功的结果可通过语音进行播报和通过串口下发指令给整机控制板。兄弟们,太强了,19块钱能够抗噪声的语音识别播报一体模块,还要什么自行车。就是唤醒词不能自己定制,需要联系技术人员帮你定制。(可以远程undefined。
2024-06-27 20:33:19
925
原创 K210使用创世NAND flash完成火灾检测
前几天收到了雷龙NAND的芯片,一共两个芯片和一个转接板,我之前也没有使用过这款芯片,比较好奇,体验了一下,个人认为,如果你画PCB制作一些板子的话,很推荐,比SD卡要方便很多。刚好最近在做K210的火灾检测,就用这个SD NAND来体验一下。
2024-06-16 13:40:03
602
1
原创 记一个ESP12-F芯片的坑
这个单独的芯片就是从板子上拆下来的,使用这颗芯片按住FLASH按键LED灯会亮,很离谱,led灯的引脚是GPIO2 flash引脚是GPIO0,他们之间的内部封装可能不一样,大家注意一下。这两个都叫ESP-12F从外观上很难区分他们的差别,甚至背面的引脚都是一样的。
2024-06-08 18:56:59
1330
原创 Error:..\FreeRTOS\portable\RVDS\ARM_CM7\r0p1\port.c,265
该行所在函数为prvTaskExitError函数,功能为任务退出时出现错误,就进入该函数。移植完FreeRTOS后,使用Keil进行编译,编译未报错,串口打印助手打印了错误报告。所建任务中忘记加while(1)循环,导致任务退出出现错误。加上while(1)之后错误消失。
2024-06-06 13:43:07
499
原创 MCU的最佳存储方案CS创世 SD NAND
让产品的质量更稳定,更好的延长产品的寿命。答案是有,让我们隆重介绍一下SD NAND,也称之为贴片式T卡,贴片式TF卡,贴片式SD卡,贴片式内存卡,贴片式闪存卡,贴片式卡,贴片式U盘,贴片式UDP等等。SD NAND内置坏块管理,平均读写,动态和静态的EDC/ECC算法等等,除了让产品的质量更稳定,更好的延长寿命,减少CPU的负荷。物联网, 智能穿戴,音频播放器, 机器人,智能音箱,智能面板(HMI),移动支付,智能眼镜(AR),智能家居,医疗设备,轨道交通,人脸识别,3D打印机。第二,尺寸小,焊接稳定。
2024-06-05 15:54:11
1040
原创 STM32——FreeRTOS移植裸机外部中断不能使用原因
大家仔细看一下是不是少了一个参数。使能参数没有写,这是因为裸机默认使能,但是FreeRTOS因为中断管理的原因,默认不使能所以我们需要把这个参数加上并且使能,然后就能用了。今天要在RTOS配置外部中断,为了省事,直接copy的裸机的外部中断例程,结果不能用,把可能出现的问题全部都查了一遍。首先FreeRTOS可管理优先级是5~15,这个注意到了,但是还是不行。先看裸机的中断结构体参数,这个和操作系统没有任何差别。注意一个这个问题,然后注意一下优先级的问题就可以了。是因为少了一个重要的参数。
2024-03-11 17:29:53
1197
原创 UnicodeDecodeError: ‘gbk‘和Error: Command ‘pip install ‘pycocotools>=2.0
在你的代码里查找open 所有和open相关的语句,都加上utf-8那句话,就能正常训练了。根据他的指令pip install ‘pycocotools>=2.0这个根本不能用。今天重新弄YOLOv5的时候发现不能用了,刚开始给我报这个错误。我们把指令换成下面这个就可以用了。但是他又报了另一个错误。
2024-03-09 23:07:00
507
原创 基于云平台的老人健康监测系统
最近在做一个简单的小项目,简单的记录一下。先看需求该健康监测系统可以监测被测者的心率、体温、环境,同时也可以通过姿态解算来判断被测者是否摔倒。该系统可以将被测者的心率、体温、环境等数据上传至云端,方便使用者时刻注意家中老人情况以及室内环境的状况。该系统在被测者摔倒时会发出蜂鸣声,同时在手机APP上进行提醒,以便使用者拨打120急救;先看一下手机app界面项目比较简单,代码可以直接使用。有疑问可以进群一起探讨,群里也会不定时分享一些项目,聊一聊比赛。
2024-03-02 15:43:47
912
原创 STM32 TIM2重映射
最近想弄一个多路输出PWM,但是发现TIM2不能用,根据手册也对它进行重映射了,但是还是不能用,用示波器发现驱动能力比较弱,然后禁用jtag搞定了。
2024-02-21 14:37:39
1938
1
原创 STM32引脚重定义问题
我想用他输出PWM,但是不能用,我也重定义了,还是不能用。回去翻看了技术手册。AFIO时钟一定要使能,这个刚学的时候知道,几年没用过,都把这个功能忘记了,希望大家少踩雷。最近在搞资源管理,发现有些引脚用不上。
2024-02-20 16:50:44
693
原创 PCB板 3.3V和GND导通原因
昨天焊了一下板子,发现3.3V和GND莫名其妙导通了,我明明焊接了一块是不导通的,很奇怪,然后我又去修了一下机械臂控制板。STM32芯片烧了,芯片烧了,3,3V和GND就会导通。
2024-02-10 12:26:57
1020
原创 RC滤波电路的原理
电容的阻止高频信号通过的原因是由于其特性——阻抗随着频率的变化而变化。在电路中,电容的阻抗随着频率的增加而降低,这意味着对于高频信号而言,电容的阻抗非常低,电容会通过高频信号并短接到地,从而阻止高频信号通过并输出到后端负载上。由于电容C具有隔直通交的特性,所以输入的高频分量相当于经过电阻R后直接对地短接,并没有输出到后端负载上,只有低频的输入分量才会输出到后端。RC滤波电路分为低通滤波和高通滤波。低通滤波通过低频信号。
2024-01-23 20:09:30
2462
原创 嵌入式交流群
主要是工训赛、电赛、光电、集成电路等等,会分享一些开源代码,博主自己做的项目,自己画的PCB等等,包含但不限于STM32、K210、V831、机器视觉,机械臂,ROS,STM32最小系统板打板文件,K210打板文件、ESP8266,物联网、各类传感器等等。群里不打广告,只是一些对嵌入式感兴趣的同学,大家一起交流学习。博主也想拓宽自己的知识面。感兴趣的同学欢迎进群交流嗷。感兴趣的同学、朋友可以加入群聊共同学习聊天哦。
2024-01-07 18:40:39
1037
2
原创 我与nano实验室交流群
主要是工训赛、电赛、光电、集成电路等等,会分享一些开源代码,博主自己做的项目,自己画的PCB等等,包含但不限于STM32、K210、V831、机器视觉,机械臂,ROS,STM32最小系统板打板文件,K210打板文件、ESP8266,物联网、各类传感器等等。群里不打广告,只是一些对嵌入式感兴趣的同学,大家一起交流学习。博主也想拓宽自己的知识面。感兴趣的同学欢迎进群交流嗷。感兴趣的同学、朋友可以加入群聊共同学习聊天哦。
2024-01-07 18:39:34
674
原创 电子元器件介绍——电阻(一)
接下来我们就把常用的电子元器件全部介绍给大家,这一节是电阻,电容电感在之后都有讲解。贴片电阻使用时应注意:烙铁头要尖细,直径小于3mm 3mm,烙铁加温度在219~240 219~240摄氏度,烙铁头不要直接接触陶瓷基片,否则容易损坏电阻。
2023-12-14 21:52:43
2076
原创 反激式电源
前面我们了解了非隔离的DC-DC拓扑,今天我们看一下隔离型的DC-DC拓扑1.1 反激电路简介反激型电路的结构简单,元件数少,成本较低,广泛适用于各种功率为数瓦~数十瓦的小功率开关电源,在各种家电、计算机设备、工业设备中广泛使用的小功率开关电源中基本上都采用的是反激型电路。比如常用的台式电脑的电源就是反激式。但该电路变压器的工作点也仅处于磁化曲线平面的第I象限,利用率低,而且开关元件承受的电流峰值很大,不适合用于较大功率的电源。
2023-12-12 21:30:13
3796
1
原创 隔离电源与非隔离式电源
在产品设计时,倘若没有考虑应用环境对电源隔离的要求,产品到了应用时就会出现因设计方案的不当导致的系统不稳定,甚至出现高压损坏后级负载的情况,以及出现危害人身财产安全的情况。因此产品设计是否需要隔离至关重要。“某公司员工在手机充电时打电话被电死”的新闻在网上引起广泛关注。充电器也能能危害生命?专家分析手机充电器内部变压器漏电,220VAC的交流电漏电到直流端,并通过数据线传导到了手机金属壳上,最终导致触电身亡,发生无可挽回的悲剧。那么手机充电器输出端为什么会带有220V的交流电呢?
2023-12-12 20:58:51
2730
原创 如何快速移植(从STM32F103到STM32F407)
如果移植之后发现不能用,首先检查IO的使能,如果使能没有问题进一步检查引脚配置的模式。该复用成对应功能的有没有复用。有用中断要注意F4中断时钟初始化的写法,如果用到SPI这种需要时序的,确认上面的没问题了,在检查一下时钟。如果你的SPI发现自己动一动线就有数据了,这个时候就去看引脚的模式,是不是推挽输出。该浮空输入的有没有浮空输入,那个默认无上下拉的配置直接不要,不要写那个东西。跳转链接。
2023-12-06 23:02:18
5429
2
原创 C语言指针详解
通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量或常量一样,必须在使用指针存储其他变量地址之前,对其进行声明。在这里,type 是指针的基类型,它必须是一个有效的 C 数据类型,var_name 是指针变量的名称。用来声明指针的星号 * 与乘法中使用的星号是相同的。但是,在这个语句中,星号是用来指定一个变量是指针。int *ip;
2023-12-02 15:36:08
954
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人