- 博客(69)
- 资源 (10)
- 收藏
- 关注
原创 PCB_Layout零基础学习线路
开始学习做一件事情之前,我们一般先回去了解它的历史,从前人的视角去接近它,让它变得不再陌生。对于这些基础元件有了一定的了解之后,我们就需要知道他们的发展和分类,这里只介绍最常用的;了解了PCB之后我们再来了解,承载在其之的元件,电路中有三个基础元件。插件电解电容,贴片电解电容,贴片陶瓷电容。下列博文只需要了解,元件的样子,和基本的信息。
2025-01-17 22:25:48
302
原创 STM外设介绍2(Timer)
在 STM32 系列微控制器中,定时器(Timer)是一个非常重要的外设,它能够提供精确的时间延时、定时控制、PWM 输出、事件计数、脉冲宽度调制(PWM)等多种功能。定时器基于一个内置的时钟源(通常是系统时钟),并通过分频器将系统时钟降低为定时器时钟。定时器会不断递增计数器的值,直到计数器的值达到预设的。这里将展示如何在 STM32F103 上使用定时器生成定时中断,定时中断每秒触发一次,执行一个简单的操作(例如,切换一个 LED 的状态)。定时器生成定时中断,并在中断服务函数中切换 LED 状态。
2024-12-18 09:06:36
1249
原创 STM介绍(中断
中断是嵌入式系统中至关重要的一种机制,它允许系统在事件发生时自动响应,执行任务而不需要一直轮询设备状态。中断能够提高系统的实时性和效率,节省计算资源,使得处理器能够在执行任务的同时响应外部事件,从而更好地满足嵌入式系统对时间和资源的严格要求在 STM32 项目中,中断服务函数(Interrupt Service Routine, ISR)一般位于 startup。
2024-12-18 09:02:10
890
原创 STM外设介绍1(GPIO)
GPIO (General Purpose Input/Output) 是嵌入式系统最常用的外设之一,用于连接和控制外部设备,如 LED、按键、传感器、继电器等。以下代码使用标准外设库 (StdPeriph Library) 进行实现。:通过 GPIO 中断方式,按键每按下一次,LED 状态翻转一次。下面是基于 STM32F103 的具体应用场景和代码示例。:读取一个外部按键的状态,按下时点亮 LED。:使用 GPIO 输出控制一个 LED 灯。
2024-11-21 15:53:33
1113
原创 STM32 外设简介
STM32 是由意法半导体 (STMicroelectronics) 开发的一系列基于 ARM Cortex 内核的微控制器,广泛应用于嵌入式系统中。STM32 系列的一个重要特点是其丰富而强大的外设模块,支持多种接口和功能,能满足工业控制、物联网、消费电子等多领域需求。STM32 提供专门的电机控制外设(如高级定时器、OPAMP、COMP),广泛应用于电机驱动和能量转换。DMA 是一种数据搬运引擎,用于在内存和外设之间快速传输数据,减少 CPU 的负担。RTC 是独立的计时外设,专用于跟踪日期和时间。
2024-11-21 15:40:18
1873
1
原创 单片机编程C语言基础1(结构体,枚举,联合体)
由于硬件架构的限制,访问未对齐的数据会导致性能下降,甚至可能引发运行时错误。编译器会对结构体中的成员进行内存对齐处理。结构体是 C 和嵌入式编程中用于组织和管理数据的核心工具。它是由一组不同类型的数据组合在一起的复合数据类型。枚举是用于定义一组有意义的命名整数常量的关键字,特别适合描述状态、标志、选项等。在嵌入式系统中,解析通信协议帧是结构体、枚举和联合体的典型应用。联合体是用于高效存储和管理数据的工具,所有成员共享同一块内存。最终结构体大小为 12 字节。
2024-11-21 15:24:32
429
原创 共享内存QSharedMemory的原理
读取数据:使用QSharedMemory类的lock()函数锁定共享内存,然后使用data()函数获取共享内存的指针,从共享内存中读取数据。写入数据:使用QSharedMemory类的lock()函数锁定共享内存,然后使用data()函数获取共享内存的指针,将数据写入共享内存。释放共享内存:使用QSharedMemory类的unlock()函数解锁共享内存,然后使用detach()函数释放共享内存。创建共享内存:使用QSharedMemory类创建共享内存,并设置共享内存的key和大小。
2024-11-21 10:13:24
242
原创 TortoiseGit基础教程
是一个类似于GitHub的代码托管平台,是中国的一家提供基于Git的云端代码托管服务的公司。生成了一个文件,这个文件保存了修改历史。TortoiseGit安装完成后。下载后一直下一步直到安装完成。1.注册账号并创建代码仓库。添加文件到本地git空间。这里选择添加所有文件。
2024-11-21 10:12:22
368
原创 凌欧通用FOC框架解析(8.调试流程_ADC&运放)
使用左对齐的形式,因为只要12位,外面可以用一个无符号的16位变量来存储,加上对于符号位,负是是已补码方式存储,所以更加方便。偏置3500范围,3500/32752(右移15位)=0.10686x3.6=0.38v。五百次取值累加之后平均。
2024-11-20 09:40:35
339
原创 凌欧通用FOC框架解析(1.硬件初始化)
一.硬件初始化(1).DSP进行简单快速的运算(2).ADC和运放初始化ADCPGA运放再调试时,4个都开了,在后期不需要用到的时候可以自己解决屏蔽。(3).DAC母线过流初始化(4).中断优先级.比较强过流CMP.ADC0单电阻时提升优先级(单电阻的中断是在PWM中,其他模式都是在ADC中断中)二.系统初始化各种结构体的定义系统初始化赋值等(1).故障检测.清零故障标志位在文件fault_detection.c中进行初始化,
2024-11-15 14:03:15
1189
原创 Allegro PCB 学习之- PCB封装基本信息
文件尺寸设置,以及空洞显示,和文字大小设置。选择封装类型并指定路径,和文件名字。软件基础设置,光标设置。
2024-05-16 16:35:25
194
原创 QT图标应用ICO
在应用开发工程中,我们经常在开发完成后需要,应用程序设置图标,今天我来带大家从画图开始完成图标的设置。将转换好的图标放入,源文件中,再打开,pro文件编辑加入RC_ICONS=ioc.ico(打开AI新建文件,32X32像素,330ppi,使用矩形工具填充。应用文件左上角的图标设置,新建文件QT资源文件,并添加。软件开发环境:QT 5.14.2。填充完成后,可以使用下方红圈取消边框。绘制完成后,点击文件保存为png文件。再进行圆角处理,使用多边形画出图标。打开转换网站转换图标,并下载。
2024-03-19 09:40:28
704
原创 嵌入式SPI
SPI(Serial Peripheral Interface)是一种串行通信协议,广泛用于嵌入式系统中,特别是连接微控制器、传感器、存储器和其他外设。
2023-11-28 16:27:10
535
原创 MySql数据库基础1
RPIMARY KEY 主键约束,约束字段的值可唯一地标识对应的记录。AUTO_INCREMENT 自动增加约束,约束字段的值自动递增。NOT NULL 非空约束,约束字段的值不能为空。FOREIGN KEY 外键约束,约束表与表之间的关系。UNIQUE 唯一约束,约束字段的值是唯一的。CHECK 检查约束,限制某个字段的取值范围。DEFAULT 默认值约束,约束字段的默认值。
2023-05-11 10:44:24
94
原创 Linux IO 操作 open()read()close()write()
Linux IO的控制 open read write close 的用法,以及注意事项
2023-05-08 13:58:18
165
原创 STL 容器vector 方法API
1 vector构造函数vector v; //采用模板实现类实现,默认构造函数vector(v.begin(), v.end());//将v[begin(), end())区间中的元素拷贝给本身。vector(n, elem);//构造函数将n个elem拷贝给本身。vector(const vector &vec);//拷贝构造函数。//例子 使用第二个构造函数 我们可以…int arr[] = {2,3,4,1,9};vector v1(arr, arr + sizeof(arr) / si
2022-12-27 15:45:06
116
原创 C++ STL03String容器
1. string容器基本概念C风格字符串(以空字符结尾的字符数组)太过复杂难于掌握,不适合大程序的开发,所以C++标准库定义了一种string类,定义在头文件。String和c风格字符串对比:1.Char*是一个指针,String是一个类string封装了char*,管理这个字符串,是一个char*型的容器。2.String封装了很多实用的成员方法查找find,拷贝copy,删除delete 替换replace,插入insert3.不用考虑内存释放和越界。
2022-12-10 10:52:52
380
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人