- 博客(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
原创 降压电路原理 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
原创 GPIO8种工作模式
GPIO是单片机通用的输入输出引脚,基本用途可作为开关,常用于控制LED亮灭、蜂鸣器的鸣响、电机的转停,但由于驱动能力不够,常常要与三极管一起使用。其它的高级用途如I/O作为输入引脚,可检测外部的中断信号、与ADC结合可作为一个模拟的电压采集引脚,与定时器结合则作为PWM引脚。
2023-07-10 16:31:45 1560
原创 【Arduino】IDE闪退,即使删除Arduino15里的文件也无法启动
Step1:删除Arduino15整个文件夹Step2:卸载ArduinoStep3:重装Arduino附:第一次运行成功,第二次又闪退,再次执行上述操作后面就可以正常运行了。Arduino下载地址:
2020-06-10 11:05:44 1525 1
原创 枚举类型
在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 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
原创 史上最简单详细的字符串处理函数整理
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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人