自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 乐鑫ESP系列芯片开发环境建立和使用

乐鑫出品的ESP系列wifi芯片,可谓国内目前最火的wifi方案。芯片不仅功能强大,而且价格低廉。尤其是最近几年新出的ESP32系列芯片,加入的蓝牙、zigbee等功能,基本可以覆盖大部分智能家居的开发。习惯单片机开发的同学都知道,一般厂家出一款单片机,正常都会出一款与之配套的编辑、编译环境,简称为IDE。但是早期的ESP芯片开发并没有配套的IDE环境,需要开发者自己寻找编辑器编辑程序,并且要在linux系统里面搭建编译环境,才能开发,因此上手门槛较高。

2023-04-28 10:07:36 692

原创 在51单片机上使用printf函数

printf函数是很好用的格式化打印函数。一般在32位机上很常用,但是在51单片机等8位机上,一般较少使用,因为它的使用很消耗内存,可能需要占到1K左右的存储空间。但是现在的8位机资源都比较丰富,如果程序空间不紧张,使用也无妨。

2023-04-22 15:35:41 1681

原创 利用DMA接收和发送不定长数据例程

DMA(Direct Memory Access:直接存储器存取)在无须 CPU 干预的情况下,可实现外设与存储器或存储器与存储器之间数据的直接传输,从而节省 CPU 资源来做其他操作。以下例程以APM32F030x6x8为主控芯片,利用DMA接收和发送不定长的数据,其他ARM内核的单片机都大同小异。

2023-04-19 17:08:24 374

原创 可位寻址和不可位寻址

所谓的可位寻址就是我们在操作一个寄存器的时候,可以单独对某一位进行操作。不可位寻址,就是操作寄存器的时候需要操作整个寄存器,不能单独对某些位进行操作。如果我们只想改变其中几个位的值,而不改变其他位的值,通常会使用 |= 和 &=,两个赋值符号来操作。这些信息需要单独查看对应芯片的规格书,不同的芯片可能情况不一样,不能一概而论。51单片机的IO口数据寄存器可以进行位寻址,那么我们就可以针对寄存器的某一位单独操作。比如:TMOD寄存器是51单片机定时器0/1的模式寄存器,它不可以位寻址。

2023-04-19 12:00:22 2819

原创 按键检测的三个方案

单片机的AD引脚就可以读取到不同的AD值,通过对AD值的大小判断,就可以分辨是哪个按键按下。通过这个方式,就可以实现一个IO检测5个按键,甚至可以更多。16个按键,只需要8个IO口就可以检测,节省了一半的IO资源。当然矩阵键盘的方式也同样可以实现对按键的短按、长按、同时按等方式的检测。除了以上两个方式,还有一个特殊的方式来检测按键,就是使用芯片的AD功能。用AD的方式,可以实现一个IO口,同时检测多个按键。这样的方式,可以很简单的实现对按键的短按、长按、同时按等方式的检测。

2023-04-18 11:25:16 2138

原创 关于导体、绝缘体、半导体的介绍

但是稳定是相对,当收到外部环境激发,比如施加外部电场力,电子会发生跃迁,形成自由电子,同时留下一个带正电的空穴。当掺杂一些三价元素,如硼、铝,3+4=7,少一个电子,最外围多了一个空穴,称为P型半导体。PN结:将两者半导体结合在一起,由于两者的电子和空穴浓度不同,便会相互扩散,在交界处形成一个面,称之为PN结。导体:一些金属元素,最外层的电子少于4个,容易失去电子,形成自由电子。绝缘体:一些元素,如氯元素,最外围是7个电子,倾向获得电子,无法形成自由电子,因此对外不导电,为绝缘体。

2023-04-15 13:46:04 1348

原创 STM32中断优先级分组

STM32单片机拥有丰富的中断资源,为了方便管理,每个可屏蔽中断都可以设置自己的中断优先级。中断优先级控制寄存器组 IP,是一组用于设置中断优先级的寄存器组。通过这个表,我们就可以清楚的看到组 0~4 对应的配置关系,例如组设置为 3,那么此时STM32所有的中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是响应优先级。第二,高抢占优先级是可以打断正在进行的低抢占优先级中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。组确定就最好不要更改。

2023-04-15 13:32:21 1299

原创 功率因素的定义

无功和有功同样重要,没有无功,变压器不能变压,电动机不能转动,电力系统不能正常执行。无功功率的消耗导致用电功率因数降低,因而占用了电力系统发供电装置提供有功功率的能力,或增加了传送无功功率的设施,同时也增加了电力系统输电过程中的有功功率损耗。比如电机运行中,无功功率小,用于维持磁场的功率就小,一旦有突发事故发生,电路可能经受不起小的扰动,影响到工作磁场,有可能造成电机失步。最基本的功率因数的定义,是用电装置的有功功率与视在功率的比值,表示用电装置(供电装置、配电装置,等等,均看作广义用电装置)的用电效率。

2023-04-15 11:32:00 330

原创 电容触摸按键原理和实现

我们把触摸焊盘连接到具有输入捕获功能的引脚上,在每次检测之前,我们先配置引脚为输出,将电容 Cs(或 Cs+Cx)放电,然后配置引脚为浮空输入,利用外部上拉电阻给电容 Cs(Cs+Cx)充电,同时开启单片机的输入捕获功能,检测上升沿,当检测到上升沿的时候,就认为电容充电完成了,完成一次捕获检测。每次扫描时,先用开关将 Cs(或 Cs+Cx)上的电放尽,然后断开开关,让 R 给 Cs(或 Cs+Cx)充电,当没有手指触摸的时候, Cs 的充电曲线如图中的 A 曲线。而当有手指触摸的时候, 手指和 TPAD。

2023-04-15 10:24:22 1519 1

原创 内存管理技术

内存管理表的项值代表的意义为:当该项值为 0 的时候,代表对应的内存块未被占用,当该项值非零的时候,代表该项对应的内存块已经被占用,其数值则代表被连续占用的内存块数。当指针 p 调用 malloc 申请内存的时候,先判断 p 要分配的内存块数(m),然后从第 n 项开始,向下查找,直到找到 m 块连续的空内存块(即对应内存管理表项为 0),然后将这 m 个内存管理表项的值都设置为 m(标记被占用),然后,把最后的这个空内存块的地址返回指针 p,完成一次分配。

2023-04-14 14:14:53 113

原创 按键消抖、长按的处理方案(中断法、延时法)

以上代码,基本逻辑就是设置一个10ms的定时中断,在中断扫描按键。按键的消抖、按下、松开、长按都可以在中断中快速检测,不会有延时函数长时间占用CPU。在中断中将标志位置一,在主循环中执行处理函数,避免因执行处理函数,占用中断过长时间。以上的代码可以起到良好的消抖作用,在一些小项目的经常运用。但是由于该方式,在消抖延时期间和松手判断期间都会长时间占用CPU,有可能影响其他功能,对系统的实时性造成影响。如果程序不采取一些算法进行消抖,会出现一次按下,多次检测到按键的情况,造成识别异常。

2023-04-11 15:56:21 3562 1

原创 C语言数组初始化为非0值

只需在定义后,加上花括号,里面放个零,不管数组有多长,都可以全部初始化为0,比如。C语言编程中,定义好数组后,通常建议将它初始化在使用。实际中,一般初始化为0,但是,如果想全部初始为1呢?是不是可以这样写:char a[20]={1}?因此如果想把数组初始化成非零的值,那么只能乖乖的把所有元素的值都写出来,比如。其他数值:只有第一个元素被初始化了。如果是0:数组全部初始化为0;

2023-04-10 09:14:35 1111 1

原创 if语句判断负数的结果是真

C语言编程中,if语句是常用的语句之一。但是如果不注意if的用法,有时会引发意想不到的结果。

2023-04-08 14:05:24 1412 1

原创 单相交流电机转动原理于启动电容的作用

单相电机是生活中一类常见的电机,比如电风扇、电吹风、榨汁机,一些早期或者便宜的大家电也是使用单相电机,比如洗衣机。单相电机跟其他电机相比,有一个特点,它必须带上一个启动电容,才能启动旋转。

2023-04-06 10:22:49 934 1

原创 Keil-51和keil-arm合并方法

Keil-51和keil-arm都是keil公式针对51单片机和ARM内核单片机开发而推出的集成开发环境。由于两种类型的单片机非常常用,很多工程师电脑里面都会同时保留这两款软件。因为都是同一个厂家出的,并且界面也很相似,一不小心就开错软件,造成不必要的麻烦。以下介绍了一种将两款软件合二为一的方案,以后打开两种单片机的工程时,不用担心开错软件。通过这个方法合并后,以后便可以直接使用kei-arm同时打开和编译51工程和arm工程。

2023-04-03 17:45:06 2487 1

本文介绍了PID算法和程序实现方式

本文介绍了PID算法和程序实现方式

2023-04-03

三相异步电机结构和VF驱动.docx

本文详细介绍了三相异步电机结构和V/F控制方法

2023-04-03

单片机裸机系统与多线程系统区别.docx

单片机裸机系统与多线程系统区别.docx

2023-04-03

keil-51和keil-arm合并方法

本文介绍了keil-51和keil-arm合并方法

2023-04-03

空空如也

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

TA关注的人

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