- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 零零散散缓缓深入HAL库
ARM跟芯片厂商共同提出的,目的就是为了不同芯片厂商生产的Cortex-M3芯片能在软件上基本兼容,各芯片厂商就得按照这个标准去编写自己芯片内核的驱动程序,比如系统函数的命名、芯片初始化启动流程等;STM32的官方库(标准库、HAL库、LL库)就是按照这个标准写的。如下图它向下负责与内核和各个外设直接打交道,向上提供实时操作系统用户程序调用的函数接口。先判断芯片的型号,然后执行__HAL_FLASH_PREFETCH_BUFFER_ENABLE()宏。2 设置中断优先级“NVIC组 设置为“4”。
2024-05-09 15:23:41
327
原创 ADC模数转换
积分型AD的转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属于中速AD,全并行/串并行型AD可达到纳秒级。还必须将取样-保持电路的输出电压,按某种近似方式归化到相应的离散电平上,这一转化过程称为数值量化,简称量化。但我以10Hz 100ms采集一次呢,一个信号周期内就采集了10个点,可以大致看出这个信号的波形;为了给后续的量化编码过程提供一个稳定值,每次取得的模拟信号必须通过保持电路保持一段时间。我以 1Hz 1s的采样率采集一次,那么完全看不出这个信号的变化和波形;全并行/串并行型是纳秒级AD。
2024-02-20 11:41:08
473
原创 电能计量芯片RN8209
RN8209 提供两路有功功率的计算和校正,分别为电流 A 和电压有功功率计算和校正、电流 B 和电压有功功率计算和校正。寄存器也包含 A/B 两套相位校正、有功 Offset 校正、有功增益校正和平均功率寄存器。电流通道 B 还包含增益校正寄存器 IBGain,该寄存器会影响通道 B 有功功率、通道 B 电流有效值。当前用于判断潜动和启动的平均有功功率(PowerP)通道,以及当前用于计算有功电能的瞬时有功功率通道(DATAP),来自哪个通道可以由特殊命令决定,见特殊命令章节。
2024-01-09 15:10:57
2026
原创 正弦交流电路
面试题(Linux)阐述对Linux中的 system、popen、fork、vfork函数的理解阐述常用的进程间的通信方式?阐述对Linux中的 system、popen、fork、vfork函数的理解fork函数fork函数是通过复制父进程来创建子进程(在当前进程中创建一个新的进程)vfork函数因为fork()操作会将当前进程的任何资源几乎完全复制一份,其中包括了地址空间。一般fork()调用后都会跟着调用execve(),用新的内存镜像取代原来的内存镜像,**当地址空间很大时,复制的
2023-12-22 17:43:37
527
原创 技术拷问大杂烩
理论上,进程可申请的堆大小为虚拟内存大小,进程栈的大小 64bits 的Windows 默认 1MB,64bits 的 Linux 默认 10MB;堆(Heap)与栈(Stack),堆与栈实际上是操作系统对进程占用的内存空间的两种管理方式,,在理解这两个概念时,需要放到具体的场景下,因为不同场景下,堆与栈代表不同的含义。栈的生长方向向下,内存地址由高到低。堆,一般情况堆顶使用一个字节的空间来存放堆的大小,而堆中具体存放内容是由程序员来填充的。栈存放的内容,函数返回地址、相关参数、局部变量和寄存器内容等。
2023-12-22 16:06:03
1236
原创 电磁学基础
它的另一个单位是伏特每米(V/m),两个单位之间的关系是1N/C=1V/m。电场的能的性质表现为:当电荷在电场中移动时,电场力对电荷做功(这说明电场具有能量)。:放入电场中某点的电荷所受电场力F跟它的电荷量Q的比值叫该点的电场强度;法拉第提出了“电荷的周围存在着由它产生的电场”这一观点。这种存在于电荷周围,能对其他电荷产生作用力的特殊的物质。单位正电荷在电场中某点受到的作用力称为该点的电场强度。向与E相同,负电荷受电场力的方向与E相反。可见电荷是产生电场的源。(2) 电场强度的定义。
2023-12-13 11:45:00
906
原创 数字电位器 AD5241/MAX5160
开辟堆的大小为 0X00000200(512B),数据段名为 Heap, NOINIT 即不初始化,READWRITE可读可写, 8(2^3)字节对齐。THUBM 是 ARM 以前的指令集, 16bit,现在 Cortex-M 系列的都使用 THUMB-2 指令集, THUMB-2 是 32 位的,__heap_base 表示堆的起始地址, __heap_limit 表示堆的结束地址。__initial_sp紧挨着SPACE语句放置,表示栈的结束地址,即栈顶地址,栈是由高向低生长的。定义一个数据段名为。
2023-10-31 18:52:45
536
原创 NRF2401
NRF24L01 是 Nordic 公司的一款无线通信通信芯片,采用 FSK 调制,内部集成自己的 Enhanced Short Burst 协议。可以实现点对点或是 1 对 6 的无线通信。无线通信速度可以达到 2M(bps)。
2023-09-07 14:52:38
226
原创 GNSS简单介绍
GNSS 即全球导航卫星系统(Global Navigation Satellite System)是所有导航定位卫星的总称,凡是可以通过捕获跟踪其卫星信号实现定位的系统,均可纳入GNSS系统的范围,包括以下:中国 BDS(北斗)美国 GPS俄罗斯 Glonass(格洛纳斯)欧盟 Galileo(伽利略)
2023-01-28 15:35:19
1832
原创 Linux 基础
每个进程必定属于某一个进程组、且只能属于一个进程组,每一个进程组有一个组长进程,组长进程的 ID 就等于进程组 ID;一个会话可包含一个或多个进程组,但只能有一个前台进程组,其它的是后台进程组;信号是事件发生时对进程的通知机制,信号的目的是用来通信的,当发生某种情况下,通过信号将情况“告知”相应的进程,从而达到同步、通信的目的。子进程和父进程各自在自己的进程空间中运行 ,父进程与子进程并不共享这些存储空间。子进程会拷贝父进程的数据段、堆、栈,并且拷贝父进程打开的所有文件描述符。PPID:父进程的ID。
2022-11-22 15:19:12
2447
原创 C语言进阶
定时器时钟系统简介通用定时器TIME2~5,时钟系统简介五个时钟源1、HSI是高速内部时钟,RC振荡器,频率为8MHz。2、HSE是高速外部时钟,可接外部时钟源,频率范围为4MHz~16MHz。3、LSI是低速内部时钟,RC振荡器,频率为40kHz。4、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。5、PLL为锁相环倍频输出。系统时钟SYSCLK:可来源三个时钟源1、HSI 2、HSE 3、PLL通用定时器TIME2~5,定时器的时钟源1、内部时钟 CK
2022-11-18 01:34:20
1146
原创 C语言 和 Linux 常识
GCC:GNU中的编译器项目。集成了多种语言的编译器,包括有gcc、g++。理查德·斯托曼提出GNU计划,一个类似于UNIX的操作系统。g++:GCC中的c++编译器。GNU:是一个自由的操作系统。gcc:GCC中的c编译器。
2022-11-01 19:36:20
1364
3
原创 FLASH—W25Qxx
W25Q64W25Q64 是华邦公司推出的大容量 SPI FLASH 产品,W25Q64 的容量为 64Mb,该系列还有 W25Q80/16/32128等。本章所选择的 W25Q64 容量为 64Mb,也就是 8M 字节。W25Q64 将 8M 的容量分为 128 个块(Block),每个块大小为 64K 字节,每个块又分为16 个扇区(Sector),每个扇区 4K 个字节。W25Q64 的最小擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。这样我们需要给 W25Q64 开辟一个至少 4K
2022-06-02 15:48:49
201
原创 MPU6050
姿态传感器—MPU6050简介寄存器数字运动处理器 DMP简介MPU6050是一款六轴(三轴加速度+三轴角速度(陀螺仪))传感器MPU6050含有一个第二IIC接口,可用于连接外部磁力传感器MPU6050自带数字运动处理器(DMP)通过主IIC接口,可以向CPU提供四元数,CPU可利用四元数得到欧拉角:航向角(yaw) 横滚角(roll) 俯仰角(pitch)寄存器1、电源管理寄存器1(0x6B)bit7位用来控制复位,设置为1 硬件自动清零该位。bit6位用于控制工作模式,1,睡眠模
2022-05-14 16:32:36
8607
1
原创 时钟传感器—DS3231
时钟传感器—DS3231DS3231概述DS3231引脚DS3231寄存器DS3231 操作DS3231概述DS3231是一款高精度I2C实时时钟器件内部带温度补偿、闰年补偿提供两个可编程日历闹钟提供秒、分、时、星期、日期、月、年等信息。RST 引脚提供外部按钮输入功能,并可用于指示电源故障。提供稳定、精确的参考时钟,在 -40 ° C 至 +85 ° C 温度范围内, RTC 的精度保持在± 0.432秒 / 天之内DS3231引脚引脚功能132.768kHz
2022-04-14 15:25:33
10402
原创 温度传感器—LM75
温度传感器—LM75简介寄存器指针寄存器 Pointer register温度寄存器 Temperature register简介LM75 温度传感器,各大半导体生产厂家都有生产,如德州仪器(TI)、恩智浦(NXP)、意法半导体(ST),本章介绍 德州仪器(TI)LM75 CIMX-3器件特点1)精度:0.5℃2)i2c3)3个地址选择引脚,同一根i2c总线上最多挂8个LM75a寄存器I2C 读写操作时,第一位字节是器件地址,第二位是指针地址(通过指针寄存器来选择操作那个寄存器),第
2022-04-14 15:18:18
2504
原创 LoRa模块(内置MCU),亿百特E22-400T30S,广播监听、定点传输、中继组网
配置三个模块,按十六进制发送(模块1因为采用透传可不选)模块1 透传消息测试,广播发送模块2 定点传输测试模块1 监听信道消息测试模块2 广播传输测试模块1 监听信道消息测试模块3 定点传输测试模块1 监听信道消息测试配置三个模块,由于在上位机中,各参数为十进制显示模式,所以模块地址和网络ID填写时需要通过转换进制。如发射端A输入的网络ID为02,接收端B输入的网络ID为10,则中继端R设置模块地址时,将十六进制数值0XO20A转换为十进制数值522作为中继端R填入的模块地址。即此时中继端R需
2022-04-11 19:55:02
2829
5
原创 霍尔传感器
这里写自定义目录标题霍尔传感器的分类1、霍尔开关2、线性霍尔霍尔传感器的分类霍尔传感器分为:1、线性型霍尔传感器由霍尔元件、线性放大器和射极跟随器组成,它输出模拟量。2、开关型霍尔传感器由稳压器、霍尔元件、差分放大器,斯密特触发器和输出级组成,它输出数字量。1、霍尔开关按照霍尔开关的感应方式可将它们分为:1、单极性霍尔开关:磁场的一个磁极靠近它,输出低电位电压(低电平)或关的信号,磁场磁极离开它输出高电位电压(高电平)或开的信号,但要注意的是,单极性霍尔开关它会指定某磁极感应才
2022-04-08 10:44:21
4296
原创 LoRa是什么
LoRa是什么LoRa是什么LoRa调制LoRa调制参数LoRaWAN网络架构LoRa终端设备划分成A/B/C三类:LoRa是什么LoRa 是LPWAN通信技术中的一种LoRa 是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案LoRa调制LoRa 采用 CSS线性扩频调频,使用线性脉冲对信息进行编码其他数字无线调制LoRa调制参数速率 DR扩频因子 SF调制带宽 BW编码率 CRLoRaWAN网络架构LoRaWAN网络架构是由终端(LoRa
2022-04-06 19:58:29
9766
原创 AD绘制规则
AD绘制规则规则分类规则推荐规则要点规则分类1、Electrical(电气规则):安全间距、线网连接等Clearance:安全间距规则Short Circuit:短路规则UnRouted Net:未布线网络规则UnConnected Pin:未连线引脚规则2、Routing(布线):线宽、过孔形状尺寸、布线拓扑、布线层、封装出线等Width:走线宽度规则Routing Topology:走线拓扑布局规则Routing Priority:布线优先级规则Routing Lay
2022-03-30 22:35:09
2754
原创 AD操作基础
Altium Designer基础操作各层的含义各层的含义信号层含义Top Layer顶层信号层,元器件布线Bootom Layer底层信号层,元器件布线丝印层含义Top Overlayer顶部丝印层,用于标注元器件的投影轮廓、元器件的标号、标称值或型号及各种注释字符。Bottom Overlayer底部丝印层,与顶部丝印层作用相同。机械层含义Mechanical 1机械一层多用来勾画线路板的边框,Mec
2022-03-30 11:02:25
1260
原创 STC8A 应用知识归纳
每个串行口有两个数据缓冲器(SBUF)、一个移位寄存器、一个串行控制寄存器和一个波特率发生器组成串口所需中断串口1寄存器串口2寄存器功能奇偶位PSW是一个8位寄存器。PSW的全称是Program Status Word,即程序状态字引脚复用ADCADC寄存器介绍ADC所需中断ADC寄存器
2022-03-12 16:21:08
3793
原创 单片机相关知识
与此同时,PC中的地址编制的程序进行自动加1跳转操作,得到下一条指今的地址。当用keil作为开发环境,创建一个工程时,需要选择所使用的单片机型号,然后Keil会将相应单片机的startup.A51文件拷贝到工程目录下,在编译时,该文件会被编译到最终的目标文件中。只能使用直接寻址模式,高128字节中,除了 程序计数器 PC以外,有21个特殊功能的寄存器,又称专用寄存器SFR,离散的分布在空间内。单周期指令的执行时间为1个机器周期,双周期指令的执行时间为2个机器周期,四周期指令的执行时间为4个机器周期。
2022-03-09 22:00:05
3636
原创 OSI七层模型、TCP/IP四层模型
例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。它对来自应用层的命令和数据进行解释,其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。第三次挥手:此时还可以传输数据,等最后的数据传完之后,服务端再次发送给客户端一个包,自己进入最后确认状态。
2022-02-16 12:51:13
1478
原创 24C02
24C02的应用基础字节写操作字节读操作基础24C02功能概述24C02是一个2KBit的串行EEPROM存储器,内部含有256个字节。在24C02里面有一个8字节的页写缓冲器。该设备的工作电压为1.8V到6.0V,芯片的第7引脚WP为写保护引脚,将该引脚接地允许正常的读写。设备地址24C02的设备地址包括固定部分和可编程部分。可编程部分需要根据硬件引脚A0、A1和A2来设置。设备地址的最后一位用于设置数据传输的方向,即读/写位。格式如下图:在IIC总线协议中,设备地址是起始
2022-02-14 22:37:48
3137
原创 数据结构的概念
没有父节点的节点称为根节点,每个节点有零个或多个子节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;栈又称为 后进先出(First In Last Out) 的线性表,简称 FILO 结构。允许删除的一端称为对头,允许插入的一端称为队尾。1、每个结点最多有两颗子树,结点的度最大为2。3、即使某结点只有一个子树,也要区分左右子树。2、左子树和右子树是有顺序的,次序不能颠倒。我们把允许插入和删除的一端称为。,不含任何任何数据元素的栈称为。一段连续的内存空间。
2022-02-09 21:04:01
609
原创 常用的排序方式
回忆数据结构,写多少算多少一 排序交换类排序 1、冒泡排序交换类排序 2、快速排序插入类排序 3、简单插入排序法插入类排序 4、希尔排序法选择类排序 5、简单选择排序法选择类排序 6、推排序法一 排序交换类排序 1、冒泡排序#include "stdio.h" void main(){ int a[10]; int i, j, temp; printf("Please input ten numbers: \n"); for (i =
2022-02-09 18:46:50
559
原创 Linux 命令
由于我们的系统软件大多放置在硬盘中,所以BIOS会指定启动的设备,好让我们可以读取磁盘中的操作系统内核文件,这时候就需要一个引导装载程序来处理内核文件加载(LOAD)的问题, 这个引导装载程序就被称为BootLoader。初始化完成后,我们的systemd会执行initrd.target目标的所有文件,这些所有的东西都包括在/sysroot.上挂载实际的root文件系统中。这时候我们的启动加载器又将系统控制权交给内核,从而传递启动加载器的内核命令行中指定的任何选项,以及initramfs在内核中的位置。
2022-01-31 21:04:17
1183
2
原创 虚拟机VMware:由于找不到vcruntime140_1.dll,无法继续执行代码
最近换了台新电脑,就开始安装虚拟机VMware,就发现虚拟机开机的时候,弹出了一个错误,下图于是,百度了一下缺少vcruntime140_1.dll,如何解决解决方法:下载 vcruntime140_1.dll 文件复制到 C:\Windows\System32 就可以解决,文件已经上传,点击下载 ,需要者免费自取...
2022-01-31 18:37:08
8155
12
原创 STM32基础知识
基础知识GPIOGPIOGPIO 是挂载在 APB2 总线上的外设, 在固件库中对挂载在 APB2 总线上的外设时钟使能是通过函数 RCC_APB2PeriphClockCmd()来实现的GPIO的八种工作模式代码模式GPIO_Mode_AIN模拟输入GPIO_Mode_IN_FLOATING浮空输入GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入GPIO_Mode_Out_OD开漏输出GPIO_Mode_Out_P
2021-08-06 20:13:59
154
原创 嵌入式实时操作系统 UCOS
UCOSIIUCOSII移植1.1 UCOSII 移植 F1任务管理UCOSII移植1.1 UCOSII 移植 F1第一步先在源代码文件新建一个UCOSII文件夹,含此三个文件夹第二步在三个文件夹中分别放入对应的文件CORE文件内CONFIG内PORT内第三步打开工程文件,添加对应文件第四步编译,解决问题第一Error: L6200E: Symbol PendSV_Handler multiply defined (by os_cpu_a.o and st
2021-08-05 19:51:10
2430
原创 C语言基础
结构体(struct)是具有相同类型或不同类型的数据构成的数据集合。结构体的声明并不会分配内存空间,构造类型定义变量时才会为其相应的变量分配内存空间。结构体共用体因为字符串不能用等号来比较大小,所以就用 strcmp 函数来比较 比较 ASCLL码比较的结果由函数值带回:指针函数,即本质是一个函数,函数返回类型是指针。函数指针,即本质是一个指针变量,是指向函数地址的指针变量。
2021-05-10 20:22:00
500
原创 STM32应用知识归纳
第一步:开启AFIO时钟第二步:设置IO口与中断线的映射关系。第三步:初始化线上中断,设置触发条件等。第四步:配置中断分组(NVIC),并使能中断。第五步:编写中断服务函数。第六步:清除中断标志位。
2021-04-28 22:59:55
1697
原创 Keil软件全面掌握(持续补充)
配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接。project > options for target>user选项卡最下面有个beep when compelet去掉钩就行了。1、使用J-Flash读单片机的Flash数据。复制进 global.prop 里。2、使用J-Flash下载程序到单片机。
2021-04-27 22:57:19
1064
原创 数字电路笔记(三)触发器
数字电路笔记(三)触发器RS触发器同步RS触发器JK触发器1、主从触发器2、边沿触发器D触发器脉冲波形产生与变换1、多谐振荡器2、单稳态振荡器3、施密特振荡器触发器是能存储二进制数码的一种电路,具有记忆功能,用于构成时序逻辑电路门电路和触发器是构成数字系统基本逻辑单元,前者没有记忆功能。RS触发器由两个与非门相互连接构成,低电平有效真值表R‾\overline{R}RS‾\overline{S}SQQ‾\overline{Q}Q00不定不定禁用0
2021-03-01 23:18:36
1440
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人