自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 STM32F103C8T6的PB2引脚复用问题

对于PB2来说,其不仅是PB2,它也是BOOT1引脚。当系统复位之后,开始的几个系统时钟使用的是BOOT1,用来判断系统从何处读取。由于开发板设置的是从内部FLASH启动,BOOT1一直是置零的,所以PB2一直是低电平。

2023-10-11 11:43:01 1192

原创 电压与电流、水压与水流

水有压力是因为水量积累的多,电有压力是因为电荷积累的多,若要降压则需要将电荷进行泄放(电荷产生电流并通过电阻以热能的形式将电流消耗)比如说有个水库大坝,设计水位是12米深。当水量超过12米时,想把水对大坝的压力降下来则需要开闸泄洪。

2023-08-28 13:33:58 157

原创 整流电路设计

将交流电转化为直流电称为整流。大多数整流电路由变压器、整流主电路和滤波器等组成。

2023-07-25 15:27:11 335

原创 降压电路原理 12V电源是如何下降到5V?

在这里,二极管主要用于给电感续流,又称为续流二极管。我们通过上面的分析,清楚的意识到开关电源的损耗其实是一个非常重要的问题,同时大家都知道,无论电流多大,只要有电流存在,二极管的固定压降就是0.4V左右,电流1A的话意味着二极管消耗的功率就是0.4W,这其实是一个不小的损耗,因此我们可以把续流二极管使用另一个MOS管来代替,只需要保证这两个MOS关的开关状态相反即可,如下图所示,这也是所谓的同步整流电路。我们已经知道,电容具有“阻直流,通交流”的本领,而电感则有“通直流,阻交流,通低频,阻高频”的功能。

2023-07-25 15:03:30 1721

原创 电容滤波的原理及作用

整流电路是将交流电变成直流电的一种电路,但其输出的直流电的脉动成分较大,而一般电子设备所需直流电源的脉动系数要求小于0.01.故整流输出的电压必须采取一定的措施。尽量降低输出电压中的脉动成分,同时要尽量保存输出电压中的直流成分,使输出电压接近于较理想的直流电,这样的电路就是直流电源中的滤波电路。在滤波电路中,主要使用对交流电有特殊阻抗特性 的器件,如:电容器、电感器。本文对其各种形式的滤波 电路进行分析。

2023-07-21 18:00:20 3185

原创 LDO与DCDC的区别及应用场景

LDO与DCDC的区别

2023-07-21 16:06:46 1409

原创 GPIO8种工作模式

GPIO是单片机通用的输入输出引脚,基本用途可作为开关,常用于控制LED亮灭、蜂鸣器的鸣响、电机的转停,但由于驱动能力不够,常常要与三极管一起使用。其它的高级用途如I/O作为输入引脚,可检测外部的中断信号、与ADC结合可作为一个模拟的电压采集引脚,与定时器结合则作为PWM引脚。

2023-07-10 16:31:45 1560

原创 按键电路设计

按键电路设计

2023-06-12 16:01:06 809

原创 十行代码,就能真正让你理解DMA(CPU的秘书)

DMA

2023-06-12 13:21:03 684

原创 I2C通信协议,最简单的总线通信

IIC

2023-06-11 16:42:46 645

原创 串口RS232、RS485最本质区别

串口、RS232、RS485最本质区别

2023-06-11 14:24:34 4276 3

原创 【超简单的串口通信的工作原理】

串口通信原理

2023-06-10 22:07:15 877

原创 【Arduino】IDE闪退,即使删除Arduino15里的文件也无法启动

Step1:删除Arduino15整个文件夹Step2:卸载ArduinoStep3:重装Arduino附:第一次运行成功,第二次又闪退,再次执行上述操作后面就可以正常运行了。Arduino下载地址:

2020-06-10 11:05:44 1525 1

转载 STM32 HAL库 UART 串口读写功能笔记

STM32 HAL库 UART 串口读写功能笔记

2020-05-28 08:48:03 802

原创 枚举类型

在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。定义一个变量是枚举类型,可以先定义一个枚举类型名,然后再说明这个变量是该枚举类型。例如:enum weekday{sun,mon,tue,wed,thu,fri,sat};定义了一个枚举类型名 enum weekday,然后定义变量为该枚举类型。例如:enum weekday da

2020-05-13 17:09:24 272

原创 斗之气阶段四----字符设备驱动二

①驱动设备号:自动分配主设备号/手工指定②应用:open("/dev/xxx")打开设备文件,文件怎么来?a:手工创建 mknod /dev/xxx c 252 0b:自动创建:busybox里的mdev(根据系统信息来自动创建设备节点)也就是说如果驱动程序里的设备节点在系统信息里的话,mdev就能够识别自动创建设备节点。所以,我们在自己创建的驱动程序里的init入口函数添加两行代码:int major; int first_drv_init(void){ major=re

2020-05-11 22:26:24 138

原创 printf重定向(重新定义发送数据的方向)

1、串口使用 printf 需要对 printf 重定向,也就是需要重定义 fputc() 这个函数(这个函数是printf的底层函数)转int fputc(int ch,FILE *f){ HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xffff); }

2020-05-09 22:53:29 684

原创 斗之气阶段三----ARM板系统的基本使用(使用NFS两种方法挂接根文件系统,挂载失败问题分析)

注:网络文件系统放在服务器上,内核启动时直接识别文件系统目录当做根文件系统,避免一遍一遍烧写。Windows通过WIFI上网,开发板离无线路由器很近(Windows、Ubuntu、开发板三者一定要ping通!)手工挂接NFS1、从FLASH上启动根文件系统,再用命令挂接nfs挂接NFS条件:1):服务器“允许”那个目录可被挂接2):然后单板去挂接1)如何实现呢?① 我们通过N...

2020-04-20 22:27:02 296

原创 斗之气阶段四----字符设备驱动(附:编译驱动,make后,报错)

我们通过各种应用程序来控制硬件,这其实是相应的驱动程序来驱动硬件。那么驱动框架是如何实现app与驱动程序衔接的呢?我们来写个驱动程序看看吧。1:我们先写两个驱动程序那么如何告诉内核有这个驱动程序嘞?2:我们定义一个结构体,然后通过一个注册驱动程序把这个结构体告诉内核:那么这个注册程序由谁来调用它呢?答案是:编写驱动程序的相应驱动入口函数,即app只需要调用这个入口函数来实现相应底...

2020-04-07 22:38:49 223

原创 斗之气阶段三----ARM板系统的基本使用(Uboot+内核启动流程+创建最小根文件系统)附带错误分析

一、U-boot功能(单片机程序)二、构建根文件系统之init进程分析三、构建根文件系统(1)内核启动流程分析(2)构建根文件系统

2020-04-02 22:32:26 300

原创 斗之气阶段二----linux命令进阶

一、linux命令的进阶1、find(查找符合条件的文件)格式: find (路径) 选项 查找条件example:1) find /work/dira -name "file.txt" find /work/dira -name "*.txt"查找指定路径下所有以.txt结尾的文件,其中*是通配符说明: a)/work/dira...

2020-03-12 15:52:08 118

原创 《斗破苍穹之linux》 斗之气阶段(三周从STM32入门linux)

一、linux命令格式(命令提示符+命令格式)1、命令提示符([email protected]:/bin$),显示了:1)当前的用户名2)用户当前所在路径2、linux命令的格式:命令 [选项] [参数]注:命令说明了想要做什么,选项和参数为命令服,1)选项和参数不一定存在,可有可无2)选项和参数取决于你使用该命令的具体目的3)选项是以“-”来指明的4)命令、选项、参...

2020-03-08 22:54:12 268

原创 菜鸟《linux就该这么学》学习笔记之系统状态检测命令

前言:作为一名合格的运维人员,想要更好的了解linux服务器,必须具备快速查看linux系统运行状态的能力(下面将会学习到:网卡网络、系统内核、系统负载、内存使用情况、当前启用终端数量、历史登录记录、命令执行记录以及救援诊断等命令)1、ifconfig查看网卡名称、inet后的IP、ether参数后的网卡物理地址(MAC地址),以及RX、TX数据包与发送数据包的个数及累积流量。2、uname...

2020-03-03 13:40:09 738 2

原创 菜鸟《linux就该这么学》学习笔记之常用系统工作命令

一、常用系统工作命令1、echo 把指定字符串输出到屏幕[linuxprobe@linuxprobe b]$ echo Linuxprobe.com使用 $ 提取变量的值[linuxprobe@linuxprobe b]$ echo $SHELL2、date"+"[linuxprobe@linuxprobe b]$ dateMon Mar 2 22:03:42 C...

2020-03-02 23:14:16 107

原创 Python---类与继承、对象的杂记

前言:我为什么要用类?上栗子:大鱼吃小鱼游戏这个游戏里有不同的鱼,要想用代码构建每一条鱼似乎很费劲;我们先制作一条鱼import random as rclass Fish(): def __init__(self,name): #实例化时传入要制作的鱼的名字 self.name = name self.x = r.randint(0,10) ...

2020-02-11 20:34:58 115

原创 实时天气----Python

2020---1/10 实时天气较为准确import urllib.request #提取网址数据import gzipimport jsonprint('------天气查询------')def get_weather_data() : city_name = input('请输入要查询的城市名称:') #网址1只需要输入城市名,网址2需要输入城市代码 ...

2020-02-10 15:15:03 579

原创 (指针数组、数组指针)、(指针函数、函数指针)、结构体指针还傻傻分不清?

一、指针的概念1、变量:变量(type name =value):声明一个变量就像盖了一间房子,假设房子地址为0x20,(计算机为变量开辟出一个内存地址空间),赋值类似于房子住进了人口。地址不变,存储内容可更改即为变量的定义。直接访问:直接更改地址里的存储内容间接访问(指针):(无法直接访问变量时,适用于跨函数,即从一个函数里改变另一个函数里变量的值)比如:有3个抽屉,第1个抽屉藏5...

2020-01-31 20:59:42 865

转载 ISO1443A/B

目前国际上与RFID相关的通信标准其中一个就是ISO/IEC 14443标准(13.56MHz)。ISO/IEC 14443 为:近耦合IC卡,最大的读取距离为10cm.国际标准ISO14443定义了两种信号接口:typeA和typeB。ISO14443A和B是不兼容的ISO 14443 Type A(也称为ISO 14443A)一般用于门禁卡、公交卡和小额储值消费卡等,具有较高的...

2020-01-26 14:12:04 3232

转载 状态机

添加链接描述什么是状态机?

2020-01-12 16:23:18 89

原创 史上最简单详细的字符串处理函数整理

1、strcpy(a,b):一个用来复制整个字符串的库函数,复制后,a内容只有b2、strcnpy(a,b,n):灵活复制字符串的库函数,可保留a数组的内容3、strcat(a,b);将字符串a,复制到字符串b后4、strstr(a,b);判断字符串b是否在字符串a内,若是则返回b在a内首次出现地址,若不是则NULL;5、memset();对指定区域进行初始化;

2019-10-29 11:33:37 1601

原创 醍醐灌顶!终于弄懂了函数的值传参与地址传参

本文讲述了在指针的学习过程中对地址传参下的(主调函数值会发生改变,与不会发生改变的讨论,以及对于指针指向一维、二维数组的见解)。1、在指针不作为函数参数的情况下,不该变变量的内容,对指针指向的地址进行交换,发现值会改变;2、指针作为函数参数,不改变变量的内容,仅交换指针指向地址,发现值不会改变;结论是:形参地址指向的变化不会影响到实参地址指向。因为实参指针与形参指针不是同一个指针,这里是将实参指针指向的地址传递给形参指针,使实参指针与形参指针指向同一个地址,故形参指针指向的变化不会影响到实参指针。3、

2019-08-03 12:35:34 1023

原创 史上最简单的《全局(局部)变量,内部(外部)函数,静态数组与const修饰符》

本文主要讲了变量,即(全局变量,局部变量,静态局部变量);变量的存储类型即(静态存储方式);函数(内部函数,外部函数);const修饰符

2019-08-02 16:39:13 280

原创 用VS2017自己写个头文件并使用(记得为工程添加文件路径)

编译只有一个函数的文件,通过在main.c里使用头文件的形式直接调用自定义的函数,免去对函数的原型进行声明。但是再添加文件路径(英文名的情况下)为啥仍然找不到文件?原来:VS2017(基于Windows的IDE编译器)是面向项目的。这种编译器要求创建项目来运行单文件程序。(即点击源代码文件,添加新建项,加入一个项目文件)此外,还应确保:所有的源代码文件都在项目列表中出现。如果添加新建...

2019-08-01 11:39:45 5900 6

原创 大一小白之USART1_中断方式(加头尾校验)、轮询方式接发数据

一、中断方式接发数据上代码:#define Max_BUFF_Len 50unsigned char Usart1_Buffer[Max_BUFF_Len];unsigned int Usart1_Rx=0;unsigned int TxCounter=0;void NVIC_Configuration(void);void USART1_IRQHandler(){ ...

2019-07-31 12:55:07 1209

原创 野火F103VET6指南者自带ESP8266模块的使用(二)(持续更新)

第二篇、ADC采集电压通过ESP8266发送到网络数据助手开篇遇到问题,将ADC(DMA单通道电压采集方式放进WiFi透传例程里便出现下面错误)解决办法这一堆东西上面可以看出有dma.h和dma.c都被注释掉了,去掉注释即可。参考例程;野火WiFi透传将采集的电压用全局变量和局部变量表示出来接着用Sprintf将这两个变量传到数组里然后用printf将数组里的电压采集值发送到PC...

2019-07-31 12:53:04 2812

原创 野火F103VET6指南者自带ESP8266模块的使用(一)(持续更新)

**一、USB转串口,USB转TTL,(转自 CSDN 博主 csshuke)首先,为什么要进行转换?因为单片机通信接口的电平逻辑和PC机通信接口的电平逻辑不同。有什么不同?PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则;而我们的单片机上的串行通信通过单片机的RXD、TXD、VCC、GND四个引脚,相应电平逻辑遵照TTL原则。当然,新手小白买的学习板上肯定都已经集成了...

2019-07-31 12:52:43 9183 3

原创 野火F103VET6指南者自带ESP8266模块的使用(三)(持续更新)

第三篇、利用中断方式实现USART1与USART3(esp8266)通信【卡上跳帽】答基于第二篇遗留问题:先回答按键按下,U3发送“+++”,透传结束,但有没有回到AT指令,为啥我发什么网络数据接收处都不接收?串口助手只与U1通信,ESP8266和板子连接的是U3,用PC给ESP8266发送AT指令)当然不回应你,因此在U1和U3只间我们需要加一个通信桥梁(中断)实现PC给U1发AT指令,U...

2019-07-31 12:52:17 2572

原创 菜鸟Debug在线调试教程的感悟

这是调试启动文件(只是进入main.c的入口,若入口死循环,可能是下列情况)Reset handlerReset_Handler PROC //这个是复位中断,上电复位后就从这个点开始执行程序EXPORT Reset_Handler [WEAK]IMPORT __mainIMPORT Sy...

2019-07-31 10:21:38 730

STM32Wifi模块与OneNetHTTP上传数据.rar

ESP8266通过HTTP协议上传温湿度至OneNET云平台,有大量注释哦!

2020-06-11

嵌入式OpenMV识别静态二维码

嵌入式OpenMV识别静态二维码,代码无需更改,有大量注释

2020-06-11

空空如也

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

TA关注的人

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